From c3c09c16740cd26fff8f32e29da59d6f547ba743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Mon, 18 Jul 2016 00:36:34 +0200 Subject: [PATCH] fix bug: TalkForm proposes topics of current site --- proposals/forms.py | 12 ++++++++++-- proposals/views.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/proposals/forms.py b/proposals/forms.py index dbd60ae..285238f 100644 --- a/proposals/forms.py +++ b/proposals/forms.py @@ -7,8 +7,16 @@ from django_select2.forms import Select2TagWidget from proposals.models import Talk, Topic -TalkForm = modelform_factory(Talk, fields=['title', 'description', 'topics', 'event', 'speakers'], - widgets={'topics': CheckboxSelectMultiple(), 'speakers': Select2TagWidget()}) +class TalkForm(ModelForm): + def __init__(self, *args, **kwargs): + site = kwargs.pop('site') + super(TalkForm, self).__init__(*args, **kwargs) + self.fields['topics'].queryset = Topic.objects.filter(site=site) + + class Meta: + model = Talk + fields = ['title', 'description', 'topics', 'event', 'speakers'] + widgets = {'topics': CheckboxSelectMultiple(), 'speakers': Select2TagWidget()} class TopicCreateForm(ModelForm): diff --git a/proposals/views.py b/proposals/views.py index 13194c4..6998e62 100644 --- a/proposals/views.py +++ b/proposals/views.py @@ -43,7 +43,7 @@ def talk_edit(request, talk=None): talk = get_object_or_404(Talk, slug=talk, site=get_current_site(request)) if not talk.is_editable_by(request.user): raise PermissionDenied() - form = TalkForm(request.POST or None, instance=talk) + form = TalkForm(request.POST or None, instance=talk, site=get_current_site(request)) if talk: form.fields['title'].disabled = True form.fields['topics'].disabled = True