diff --git a/club/views.py b/club/views.py
index 0a944b10..25d936b9 100644
--- a/club/views.py
+++ b/club/views.py
@@ -8,7 +8,6 @@ from django.core.exceptions import ValidationError
from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin
from club.models import Club, Membership
-from subscription.views import SubscriberMixin
class ClubListView(CanViewMixin, ListView):
"""
diff --git a/core/models.py b/core/models.py
index 96681eff..611d8732 100644
--- a/core/models.py
+++ b/core/models.py
@@ -201,6 +201,10 @@ class User(AbstractBaseUser, PermissionsMixin):
return True
return False
+ 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'])
+
+
class AnonymousUser(AuthAnonymousUser):
def __init__(self, request):
super(AnonymousUser, self).__init__()
diff --git a/core/templates/core/user_detail.jinja b/core/templates/core/user_detail.jinja
index 5e4603a2..8f16ba75 100644
--- a/core/templates/core/user_detail.jinja
+++ b/core/templates/core/user_detail.jinja
@@ -24,8 +24,16 @@
You're seeing the profile of {{ profile.get_full_name() }}
{{ profile.nick_name }}
{{ profile.date_of_birth|date("d/m/Y") }}
-
+
+
+{% if get_subscriber(profile).is_subscribed() %}
+User is subscriber until {{ get_subscriber(profile).subscriptions.last().subscription_end }}
+{% else %}
+User is not subscribed. New subscription
+{% endif %}
+
+
{% endblock %}
diff --git a/core/templates/core/user_tools.jinja b/core/templates/core/user_tools.jinja
index 7db4670d..2ee9d738 100644
--- a/core/templates/core/user_tools.jinja
+++ b/core/templates/core/user_tools.jinja
@@ -9,9 +9,12 @@
Back to profile
-{% if user.has_perms('core.add_group') %}
+{% if user.is_in_group(settings.AE_GROUPS['root']['name']) %}
- Groups
{% endif %}
+{% if user.is_in_group(settings.AE_GROUPS['root']['name']) or user.is_in_group(settings.AE_GROUPS['board']['name']) %}
+ - Subscriptions
+{% endif %}
{% endblock %}
diff --git a/sith/settings.py b/sith/settings.py
index 97d1b579..55c899e0 100644
--- a/sith/settings.py
+++ b/sith/settings.py
@@ -97,6 +97,8 @@ TEMPLATES = [
"can_edit_prop": "core.views.can_edit_prop",
"can_edit": "core.views.can_edit",
"can_view": "core.views.can_view",
+ "get_subscriber": "subscription.views.get_subscriber",
+ "settings": "sith.settings",
},
"bytecode_cache": {
"name": "default",
diff --git a/subscription/models.py b/subscription/models.py
index bc4ccbad..49bbb152 100644
--- a/subscription/models.py
+++ b/subscription/models.py
@@ -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
diff --git a/subscription/templates/subscription/subscription.html b/subscription/templates/subscription/subscription.html
deleted file mode 100644
index 2e87e5a6..00000000
--- a/subscription/templates/subscription/subscription.html
+++ /dev/null
@@ -1,18 +0,0 @@
-{% extends "core/base.html" %}
-
-{% block title %}
-{% if profile %}
-Edit {{ member.user.get_display_name }}'s subscription
-{% endif %}
-{% endblock %}
-
-{% block content %}
-Edit subscription
-{# Go to profile
#}
-{# You're editing the subscription of {{ member.user.get_display_name }}
#}
-
-{% endblock %}
diff --git a/subscription/templates/subscription/subscription.jinja b/subscription/templates/subscription/subscription.jinja
new file mode 100644
index 00000000..dd894c5c
--- /dev/null
+++ b/subscription/templates/subscription/subscription.jinja
@@ -0,0 +1,14 @@
+{% extends "core/base.jinja" %}
+
+{% block title %}
+New subscription
+{% endblock %}
+
+{% block content %}
+New subscription
+
+{% endblock %}
diff --git a/subscription/views.py b/subscription/views.py
index 083f9609..d08bc781 100644
--- a/subscription/views.py
+++ b/subscription/views.py
@@ -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 {}