From cf27fa71dc14d30e102ee990a19405449a4f37f9 Mon Sep 17 00:00:00 2001 From: Dmytro Trotsko Date: Wed, 19 Jun 2024 18:47:11 +0300 Subject: [PATCH] Fixed 'Data Source' filter. --- src/signals/forms.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/signals/forms.py b/src/signals/forms.py index e6d32ac..25e94c8 100644 --- a/src/signals/forms.py +++ b/src/signals/forms.py @@ -28,8 +28,8 @@ class SignalFilterForm(forms.ModelForm): search = forms.CharField(min_length=3) pathogen = forms.ModelChoiceField(queryset=Pathogen.objects.all(), widget=forms.CheckboxSelectMultiple()) active = forms.TypedMultipleChoiceField(choices=ActiveChoices.choices, coerce=bool, widget=forms.CheckboxSelectMultiple()) - source = forms.ModelMultipleChoiceField( - queryset=SourceSubdivision.objects.values_list('external_name', 'external_name').distinct(), + source = forms.MultipleChoiceField( + choices=[], widget=forms.CheckboxSelectMultiple() ) time_type = forms.ChoiceField(choices=TimeTypeChoices.choices, widget=forms.CheckboxSelectMultiple()) @@ -78,9 +78,12 @@ def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) # Set required attribute to False and disable helptext for all fields + self.fields["available_geography"].queryset = self.fields["available_geography"].queryset.order_by("order_id") + try: + self.fields["source"].choices = set(SourceSubdivision.objects.values_list('external_name', 'external_name')) + except SourceSubdivision.DoesNotExist: + self.fields["source"].choices = [] for field_name, field in self.fields.items(): field.required = False field.help_text = '' field.label = '' - if field_name == "available_geography": - field.queryset = field.queryset.order_by("order_id")