diff --git a/src/signals/filters.py b/src/signals/filters.py index c95d40f..0b38d96 100644 --- a/src/signals/filters.py +++ b/src/signals/filters.py @@ -48,7 +48,9 @@ class SignalFilter(django_filters.FilterSet): ) format_type = django_filters.MultipleChoiceFilter(choices=FormatChoices.choices) severenity_pyramid_rungs = django_filters.MultipleChoiceFilter(choices=SeverityPyramidRungsChoices.choices) - source = django_filters.ModelMultipleChoiceFilter(queryset=SourceSubdivision.objects.all()) + source = django_filters.ModelMultipleChoiceFilter(queryset=SourceSubdivision.objects.all(), + field_name="source_id__external_name", + to_field_name='external_name') time_type = django_filters.MultipleChoiceFilter(choices=TimeTypeChoices.choices) def __init__(self, data, *args, **kwargs): diff --git a/src/signals/forms.py b/src/signals/forms.py index 7aacaf9..83688bd 100644 --- a/src/signals/forms.py +++ b/src/signals/forms.py @@ -28,7 +28,10 @@ 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.MultipleChoiceField(choices=SourceSubdivision.objects.values_list('id', 'external_name'), widget=forms.CheckboxSelectMultiple()) + source = forms.MultipleChoiceField( + choices=set(SourceSubdivision.objects.values_list('external_name', 'external_name')), + widget=forms.CheckboxSelectMultiple() + ) time_type = forms.ChoiceField(choices=TimeTypeChoices.choices, widget=forms.CheckboxSelectMultiple()) geographic_scope = forms.ModelMultipleChoiceField(queryset=GeographicScope.objects.all(), widget=forms.CheckboxSelectMultiple()) severenity_pyramid_rungs = forms.ChoiceField(choices=SeverityPyramidRungsChoices.choices, widget=forms.CheckboxSelectMultiple()) diff --git a/src/signals/views.py b/src/signals/views.py index 170759f..a1acb29 100644 --- a/src/signals/views.py +++ b/src/signals/views.py @@ -55,7 +55,7 @@ def get_url_params(self): "geographic_scope": [el for el in self.request.GET.getlist("geographic_scope")] if self.request.GET.get("geographic_scope") else None, - "source": [int(el) for el in self.request.GET.getlist("source")], + "source": [el for el in self.request.GET.getlist("source")], "time_type": [el for el in self.request.GET.getlist("time_type")], } url_params_str = ""