participation creation: smart users list

exclude users already participating
This commit is contained in:
Élie Bouttier 2016-07-23 19:47:09 +02:00
parent 8f9e1942ea
commit 7d0ca9b22a
2 changed files with 6 additions and 3 deletions

View File

@ -30,6 +30,9 @@ class ParticipationField(forms.ModelChoiceField):
class NewParticipationForm(forms.Form):
participant = ParticipationField(User.objects.all(), widget=Select2Widget(),
def __init__(self, *args, **kwargs):
site = kwargs.pop('site')
super().__init__(*args, **kwargs)
queryset = User.objects.exclude(participation__site=site).all()
self.fields['participant'] = ParticipationField(queryset, widget=Select2Widget(),
label='Add participant from existing account')

View File

@ -39,7 +39,7 @@ def profile(request):
@staff_required
def participation_list(request):
participation_list = Participation.objects.filter(site=get_current_site(request)).all()
form = NewParticipationForm(request.POST or None)
form = NewParticipationForm(request.POST or None, site=get_current_site(request))
if request.method == 'POST' and form.is_valid():
if not Participation.objects.get(user=request.user, site=get_current_site(request)).is_orga():