diff --git a/accounts/decorators.py b/accounts/decorators.py index fb769de..3e88d72 100644 --- a/accounts/decorators.py +++ b/accounts/decorators.py @@ -1,15 +1,16 @@ from functools import wraps + from django.core.exceptions import PermissionDenied from accounts.utils import is_orga, is_staff -def orga_required(func): +def orga_required(view_func): def _is_orga(request, *args, **kwargs): if is_orga(request, request.user): return view_func(request, *args, **kwargs) raise PermissionDenied - return wraps(func)(_is_orga) + return wraps(view_func)(_is_orga) def staff_required(view_func): diff --git a/accounts/forms.py b/accounts/forms.py index c523106..926ee7a 100644 --- a/accounts/forms.py +++ b/accounts/forms.py @@ -1,26 +1,28 @@ +from django import forms from django.contrib.auth.models import User from django.forms.models import modelform_factory -from django import forms -from django_select2.forms import Select2Widget, Select2MultipleWidget +from django_select2.forms import Select2Widget from .models import Participation, Profile -__all__ = ['UserForm', 'ProfileForm', 'ProfileOrgaForm', 'ParticipationOrgaForm'] - - UserForm = modelform_factory(User, fields=['first_name', 'last_name', 'email', 'username']) ProfileForm = modelform_factory(Profile, fields=['biography']) -ParticipationForm = modelform_factory(Participation, fields=['transport', 'connector', 'sound', 'videotaped', 'video_licence', 'constraints'], - widgets={'transport': forms.CheckboxSelectMultiple(), 'connector': forms.CheckboxSelectMultiple()}) +ParticipationForm = modelform_factory(Participation, fields=['transport', 'connector', 'sound', 'videotaped', + 'video_licence', 'constraints'], + widgets={'transport': forms.CheckboxSelectMultiple(), + 'connector': forms.CheckboxSelectMultiple()}) ProfileOrgaForm = modelform_factory(Profile, fields=['biography', 'notes']) ParticipationOrgaForm = modelform_factory(Participation, - fields=['transport', 'connector', 'sound', 'videotaped', 'video_licence', 'constraints', 'orga'], - widgets={'transport': forms.CheckboxSelectMultiple(), 'connector': forms.CheckboxSelectMultiple()}) + fields=['transport', 'connector', 'sound', 'videotaped', 'video_licence', + 'constraints', 'orga'], + widgets={'transport': forms.CheckboxSelectMultiple(), + 'connector': forms.CheckboxSelectMultiple()}) + class ParticipationField(forms.ModelChoiceField): def label_from_instance(self, obj): @@ -29,4 +31,5 @@ class ParticipationField(forms.ModelChoiceField): class NewParticipationForm(forms.Form): - participant = ParticipationField(User.objects.all(), widget=Select2Widget(), label='Add participant from existing account') + participant = ParticipationField(User.objects.all(), widget=Select2Widget(), + label='Add participant from existing account') diff --git a/accounts/models.py b/accounts/models.py index 95607f1..f2eef40 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -9,8 +9,6 @@ from ponyconf.utils import PonyConfModel, enum_to_choices from .utils import generate_user_uid -__all__ = ['Profile'] - class Profile(PonyConfModel): @@ -46,8 +44,6 @@ class Connector(Option): class Participation(PonyConfModel): - TRANSPORTS = IntEnum('Transport', 'train plane others') - CONNECTORS = IntEnum('Connector', 'VGA HDMI miniDP') LICENCES = IntEnum('Video licence', 'CC-Zero CC-BY CC-BY-SA CC-BY-ND CC-BY-NC CC-BY-NC-SA CC-BY-NC-ND') site = models.ForeignKey(Site, on_delete=models.CASCADE) @@ -78,8 +74,3 @@ class Participation(PonyConfModel): def is_staff(self): return self.is_orga() or self.user.topic_set.exists() - - @property - def reviewed_topics(self): - from proposals.models import Topic - return Topic.objects.filter(reviewers=self.user).all() diff --git a/accounts/signals.py b/accounts/signals.py index 666c703..0e3eab5 100644 --- a/accounts/signals.py +++ b/accounts/signals.py @@ -5,7 +5,7 @@ from django.contrib.sites.shortcuts import get_current_site from django.db.models.signals import post_save from django.dispatch import receiver -from .models import Participation, Profile, Transport, Connector +from .models import Connector, Participation, Profile, Transport def create_default_options(sender, **kwargs): diff --git a/accounts/templates/accounts/participation_list.html b/accounts/templates/accounts/participation_list.html index 9f4198d..aba6801 100644 --- a/accounts/templates/accounts/participation_list.html +++ b/accounts/templates/accounts/participation_list.html @@ -26,7 +26,7 @@ {{ participation.user.username }} {{ participation.user.get_full_name }} {{ participation.is_orga|yesno:"✔,✘" }} - {% for topic in participation.reviewed_topics %}{{ topic.get_link }}{% if not forloop.last %}, + {% for topic in participation.user.topic_set.all %}{{ topic.get_link }}{% if not forloop.last %}, {% endif %}{% endfor %}