From 89963168cb968022a480b5ac2f9d489baa56b19f Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Thu, 16 May 2024 15:28:01 +0100 Subject: [PATCH] fixup! basic bulk assignment page --- crowdsourcer/forms.py | 8 +++++--- crowdsourcer/views/volunteers.py | 6 ++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/crowdsourcer/forms.py b/crowdsourcer/forms.py index ec066a1c..100da7c2 100644 --- a/crowdsourcer/forms.py +++ b/crowdsourcer/forms.py @@ -449,14 +449,16 @@ class VolunteerBulkAssignForm(Form): required=True, label="Number of assignments per volunteer", ) - response_type = ChoiceField( - required=True, choices=[(rt.type, rt.type) for rt in ResponseType.objects.all()] - ) + response_type = ChoiceField(required=True, choices=[]) session = CharField(required=True, widget=HiddenInput) always_assign = BooleanField( required=False, help_text="Override checks and assign as much as possible" ) + def __init__(self, response_choices, **kwargs): + super().__init__(**kwargs) + self.fields["response_type"].choices = response_choices + def clean(self): data = self.cleaned_data.get("volunteer_list") diff --git a/crowdsourcer/views/volunteers.py b/crowdsourcer/views/volunteers.py index 34476ff3..b8b43d0c 100644 --- a/crowdsourcer/views/volunteers.py +++ b/crowdsourcer/views/volunteers.py @@ -174,6 +174,12 @@ def get_initial(self): kwargs["session"] = self.request.current_session.label return kwargs + def get_form(self, form_class=None): + if form_class is None: + form_class = self.form_class + + return form_class([(rt.type, rt.type) for rt in ResponseType.objects.all()]) + def get_success_url(self): return reverse( "session_urls:list_volunteers",