Fix subscription and improve views

This commit is contained in:
Skia
2016-03-22 11:42:00 +01:00
parent 0dba76e02e
commit 2e84ee7d4f
9 changed files with 46 additions and 33 deletions

View File

@ -35,6 +35,7 @@ class Subscription(models.Model):
subscription_start = models.DateField(_('subscription start'))
subscription_end = models.DateField(_('subscription end'))
payment_method = models.CharField(_('payment method'), max_length=255, choices=settings.AE_PAYMENT_METHOD)
# TODO add location!
class Meta:
permissions = (
@ -112,6 +113,9 @@ class Subscription(models.Model):
return start.replace(month=(start.month+6*duration)%12,
year=start.year+int(duration/2)+(1 if start.month > 6 and duration%2 == 1 else 0))
def can_be_edited_by(self, user):
return user.is_in_group(settings.AE_GROUPS['board']['name']) or user.is_in_group(settings.AE_GROUPS['root']['name'])
def is_valid_now(self):
return self.subscription_start <= date.today() and date.today() <= self.subscription_end

View File

@ -1,18 +0,0 @@
{% extends "core/base.html" %}
{% block title %}
{% if profile %}
Edit {{ member.user.get_display_name }}'s subscription
{% endif %}
{% endblock %}
{% block content %}
<h3>Edit subscription</h3>
{# <p><a href="{% url 'core:user_profile' object.member.user.id %}">Go to profile</a></p> #}
{# <p>You're editing the subscription of <strong>{{ member.user.get_display_name }}</strong></p>#}
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<p><input type="submit" value="Save!" /></p>
</form>
{% endblock %}

View File

@ -0,0 +1,14 @@
{% extends "core/base.jinja" %}
{% block title %}
New subscription
{% endblock %}
{% block content %}
<h3>New subscription</h3>
<form action="" method="post">
{% csrf_token %}
{{ form.as_p() }}
<p><input type="submit" value="Save!" /></p>
</form>
{% endblock %}

View File

@ -10,23 +10,20 @@ from subscription.models import Subscriber, Subscription
from core.views import CanEditMixin, CanEditPropMixin, CanViewMixin
from core.models import User
class SubscriberMixin(View):
def dispatch(self, request, *arg, **kwargs):
res = super(SubscriberMixin, self).dispatch(request, *arg, **kwargs)
subscriber = Subscriber.objects.filter(pk=request.user.pk).first()
if subscriber is not None and subscriber.is_subscribed():
return ret
raise PermissionDenied
def get_subscriber(user):
s = Subscriber.objects.filter(pk=user.pk).first()
return s
class SubscriptionForm(forms.ModelForm):
class Meta:
model = Subscription
fields = ['member', 'subscription_type', 'payment_method']
#widgets = {
# 'subscription_type': Select(choices={(k.lower(), k+" - "+str(v['price'])+"€"+str(Subscription.compute_end(2))) for k,v in settings.AE_SUBSCRIPTIONS.items()}),
#}
class NewSubscription(CanEditMixin, CreateView):
template_name = 'subscription/subscription.html'
template_name = 'subscription/subscription.jinja'
form_class = SubscriptionForm
def get_initial(self):
if 'member' in self.request.GET.keys():
return {'member': self.request.GET['member']}
return {}