Commit fd482195 authored by Skia's avatar Skia
Browse files

Merge branch 'sli' into 'master'

AutoCompleteSelectField on clubs

See merge request !10
parents f152791d 8ef45bf0
Pipeline #256 failed with stage
in 12 seconds
......@@ -9,6 +9,7 @@ from django.core.urlresolvers import reverse
from django.utils import timezone
from django.utils.translation import ugettext as _
from django.conf import settings
from ajax_select.fields import AutoCompleteSelectField
from datetime import timedelta
......@@ -98,20 +99,7 @@ class ClubMemberForm(forms.ModelForm):
class Meta:
model = Membership
fields = ['user', 'role', 'description']
def clean(self):
Validates the permissions
e.g.: the president can add anyone anywhere, but a member can not make someone become president
ret = super(ClubMemberForm, self).clean()
ms =
if (self.cleaned_data['role'] <= SITH_MAXIMUM_FREE_ROLE or
(ms is not None and ms.role >= self.cleaned_data['role']) or
self._user.is_in_group(SITH_MAIN_BOARD_GROUP) or
return ret
raise ValidationError("You do not have the permission to do that")
user = AutoCompleteSelectField('users', required=True, label=_("Select user"), help_text=None)
def save(self, *args, **kwargs):
......@@ -140,10 +128,28 @@ class ClubMembersView(ClubTabsMixin, CanViewMixin, UpdateView):
form.instance = Membership.objects.filter(club=self.object).filter('user')).filter(end_date=None).first()
if form.instance is None: # Instanciate a new membership
form.instance = Membership(club=self.object, user=self.request.user)
form.initial = {'user': self.request.user}
form._user = self.request.user
# form.initial = {'user': self.request.user}
# form._user = self.request.user
return form
def post(self, request, *args, **kwargs):
Check user rights
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
ms = self.object.get_membership_for(request.user)
if (form.cleaned_data['role'] <= SITH_MAXIMUM_FREE_ROLE or
(ms is not None and ms.role >= form.cleaned_data['role']) or
request.user.is_board_member or
return self.form_valid(form)
return self.form_invalid(form)
return self.form_invalid(form)
class ClubOldMembersView(ClubTabsMixin, CanViewMixin, DetailView):
Old members of a club
......@@ -7,9 +7,14 @@ from club.models import Club
from counter.models import Product, Counter
from accounting.models import ClubAccount, Company
def check_token(request):
return ('counter_token' in request.session.keys() and
request.session['counter_token'] and
class RightManagedLookupChannel(LookupChannel):
def check_auth(self, request):
if not request.user.subscribed:
if not request.user.subscribed and not check_token(request):
raise PermissionDenied
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment