Skip to content

Commit 5d478f7

Browse files
committed
๐Ÿ› ๏ธ admin.py -> Added 'time_label' to list_filter
๐Ÿ› ๏ธ filters.py -> Modified filter choices and added imports ๐Ÿ› ๏ธ forms.py -> Modified source field to be a ModelMultipleChoiceField ๐Ÿ› ๏ธ views.py -> Modified format_type, source, and time_label handling
1 parent acf3a3e commit 5d478f7

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed

โ€Žsrc/signals/admin.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,12 @@ class SignalAdmin(ImportExportModelAdmin):
5757
list_display: tuple[Literal['name']] = ('name',)
5858
search_fields: tuple[Literal['name'], Literal['description'], Literal['short_description']]
5959
search_fields = ('name', 'description', 'short_description')
60-
list_filter: tuple[Literal['pathogen'], Literal['available_geography'], Literal['signal_type'], Literal['format_type'],
61-
Literal['is_smoothed'], Literal['is_weighted'], Literal['is_cumulative'], Literal['has_stderr'], Literal['has_sample_size']]
6260
list_filter = (
6361
'pathogen',
6462
'available_geography',
6563
'signal_type',
6664
'format_type',
65+
'time_label',
6766
'is_smoothed',
6867
'is_weighted',
6968
'is_cumulative',

โ€Žsrc/signals/filters.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@
1010
)
1111
from django_filters.widgets import QueryArrayWidget
1212

13-
from signals.models import Signal, TimeLabelChoices
13+
from datasources.models import SourceSubdivision
14+
from signals.models import (
15+
FormatChoices,
16+
Signal,
17+
TimeLabelChoices,
18+
)
1419

1520

1621
class NumberInFilter(BaseInFilter, NumberFilter):
@@ -35,9 +40,9 @@ class SignalFilter(django_filters.FilterSet):
3540
('last_updated', 'last_updated'),
3641
)
3742
)
38-
time_label = django_filters.MultipleChoiceFilter(
39-
choices=TimeLabelChoices.choices,
40-
)
43+
format_type = django_filters.MultipleChoiceFilter(choices=FormatChoices.choices)
44+
source = django_filters.ModelMultipleChoiceFilter(queryset=SourceSubdivision.objects.all())
45+
time_label = django_filters.MultipleChoiceFilter(choices=TimeLabelChoices.choices)
4146

4247
class Meta:
4348
model = Signal

โ€Žsrc/signals/forms.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class SignalFilterForm(forms.ModelForm):
2828
pathogen = forms.ModelChoiceField(queryset=Pathogen.objects.all(), widget=forms.CheckboxSelectMultiple())
2929
active = forms.TypedMultipleChoiceField(choices=ActiveChoices.choices, coerce=bool, widget=forms.CheckboxSelectMultiple())
3030
format_type = forms.ChoiceField(choices=FormatChoices.choices, widget=forms.CheckboxSelectMultiple())
31-
source = forms.ModelChoiceField(queryset=SourceSubdivision.objects.all(), widget=forms.CheckboxSelectMultiple())
31+
source = forms.ModelMultipleChoiceField(queryset=SourceSubdivision.objects.all(), widget=forms.CheckboxSelectMultiple())
3232
time_label = forms.ChoiceField(choices=TimeLabelChoices.choices, widget=forms.CheckboxSelectMultiple())
3333

3434
class Meta:
@@ -79,7 +79,6 @@ class Meta:
7979
'data-bs-toggle': 'tooltip',
8080
'data-bs-placement': 'bottom',
8181
}),
82-
'time_label': forms.Select(attrs={'class': 'form-select'}),
8382
}
8483

8584
def __init__(self, *args, **kwargs):

โ€Žsrc/signals/views.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from signals.filters import SignalFilter
1111
from signals.forms import SignalFilterForm
12-
from signals.models import Signal, Pathogen
12+
from signals.models import Pathogen, Signal
1313
from signals.serializers import SignalSerializer
1414

1515

@@ -55,14 +55,11 @@ def get_url_params(self):
5555
"category": self.request.GET._getlist("category")
5656
if self.request.GET.get("category")
5757
else None,
58-
"format_type": self.request.GET.get("format_type"),
59-
"source": int(self.request.GET.get("source"))
60-
if self.request.GET.get("source")
61-
else "",
62-
"time_label": self.request.GET.get("time_label")
63-
if self.request.GET.get("time_label")
64-
else "",
58+
"format_type": [el for el in self.request.GET._getlist("format_type")],
59+
"source": [int(el) for el in self.request.GET._getlist("source")],
60+
"time_label": [el for el in self.request.GET._getlist("time_label")]
6561
}
62+
print(url_params_dict)
6663
url_params_str = ""
6764
for param_name, param_value in url_params_dict.items():
6865
if isinstance(param_value, list):

0 commit comments

Comments
ย (0)