Skip to content

Commit bafb2aa

Browse files
authored
Merge pull request #149 from cmu-delphi/pre-development
Pre development
2 parents 4627641 + fcac7a8 commit bafb2aa

File tree

7 files changed

+54
-28
lines changed

7 files changed

+54
-28
lines changed

src/fixtures/available_geography.json

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"pk": 1,
55
"fields": {
66
"name": "county",
7-
"display_name": "L2 division (e.g. U.S. counties)",
7+
"display_name": "ADM2 (e.g. U.S. counties)",
8+
"order_id": 3,
89
"created": "2023-08-09T19:23:22.597131",
910
"modified": "2023-08-09T19:23:22.597131"
1011
}
@@ -15,6 +16,7 @@
1516
"fields": {
1617
"name": "hhs",
1718
"display_name": "HHS Regions",
19+
"order_id": 4,
1820
"created": "2023-08-09T19:23:22.597131",
1921
"modified": "2023-08-09T19:23:22.597131"
2022
}
@@ -24,7 +26,8 @@
2426
"pk": 3,
2527
"fields": {
2628
"name": "hrr",
27-
"display_name": "Hospital Referral Regions (HRAs)",
29+
"display_name": "Hospital Referral Regions (HRRs)",
30+
"order_id": 6,
2831
"created": "2023-08-09T19:23:22.597131",
2932
"modified": "2023-08-09T19:23:22.597131"
3033
}
@@ -35,6 +38,7 @@
3538
"fields": {
3639
"name": "msa",
3740
"display_name": "Metropolitan Statistical Areas (MSAs)",
41+
"order_id": 5,
3842
"created": "2023-08-09T19:23:22.597131",
3943
"modified": "2023-08-09T19:23:22.597131"
4044
}
@@ -45,6 +49,7 @@
4549
"fields": {
4650
"name": "nation",
4751
"display_name": "National",
52+
"order_id": 1,
4853
"created": "2023-08-09T19:23:22.597131",
4954
"modified": "2023-08-09T19:23:22.597131"
5055
}
@@ -54,7 +59,8 @@
5459
"pk": 6,
5560
"fields": {
5661
"name": "state",
57-
"display_name": "L1 division (e.g. U.S. states)",
62+
"display_name": "ADM1 (e.g. U.S. states)",
63+
"order_id": 2,
5864
"created": "2023-08-09T19:23:22.597131",
5965
"modified": "2023-08-09T19:23:22.597131"
6066
}
@@ -65,6 +71,7 @@
6571
"fields": {
6672
"name": "dma",
6773
"display_name": "Designated Market Areas (DMAs)",
74+
"order_id": 7,
6875
"created": "2023-08-09T19:23:22.597131",
6976
"modified": "2023-08-09T19:23:22.597131"
7077
}

src/signals/filters.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from typing import Any
2+
import logging
23

34
import django_filters
45
from django.db.models import Q
@@ -20,6 +21,9 @@
2021
)
2122

2223

24+
logger = logging.getLogger(__name__)
25+
26+
2327
class NumberInFilter(BaseInFilter, NumberFilter):
2428
pass
2529

@@ -46,11 +50,13 @@ class SignalFilter(django_filters.FilterSet):
4650
severenity_pyramid_rungs = django_filters.MultipleChoiceFilter(choices=SeverityPyramidRungsChoices.choices)
4751
source = django_filters.ModelMultipleChoiceFilter(queryset=SourceSubdivision.objects.all())
4852
time_type = django_filters.MultipleChoiceFilter(choices=TimeTypeChoices.choices)
49-
base_signal = django_filters.BooleanFilter(lookup_expr='isnull', field_name='base_for')
5053

5154
def __init__(self, data, *args, **kwargs):
5255
data = data.copy()
53-
data.setdefault('geographic_scope', GeographicScope.objects.get(name='USA').id)
56+
try:
57+
data.setdefault('geographic_scope', GeographicScope.objects.get(name='USA').id)
58+
except GeographicScope.DoesNotExist:
59+
logger.warning("Default Geographic Scope was not found in the database. Using an empty list.")
5460
super().__init__(data, *args, **kwargs)
5561

5662
class Meta:
@@ -66,7 +72,6 @@ class Meta:
6672
'geographic_scope',
6773
'source',
6874
'time_type',
69-
'base_signal',
7075
]
7176

7277
def filter_search(self, queryset, name, value) -> Any:

src/signals/forms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ class SignalFilterForm(forms.ModelForm):
3030
active = forms.TypedMultipleChoiceField(choices=ActiveChoices.choices, coerce=bool, widget=forms.CheckboxSelectMultiple())
3131
source = forms.ModelMultipleChoiceField(queryset=SourceSubdivision.objects.all(), widget=forms.CheckboxSelectMultiple())
3232
time_type = forms.ChoiceField(choices=TimeTypeChoices.choices, widget=forms.CheckboxSelectMultiple())
33-
base_signal = forms.ChoiceField(choices=[('', _('All')), (True, _('Yes')), (False, _('No'))], required=False, widget=forms.RadioSelect())
3433
geographic_scope = forms.ModelMultipleChoiceField(queryset=GeographicScope.objects.all(), widget=forms.CheckboxSelectMultiple())
3534
severenity_pyramid_rungs = forms.ChoiceField(choices=SeverityPyramidRungsChoices.choices, widget=forms.CheckboxSelectMultiple())
3635

@@ -80,3 +79,5 @@ def __init__(self, *args, **kwargs) -> None:
8079
field.required = False
8180
field.help_text = ''
8281
field.label = ''
82+
if field_name == "available_geography":
83+
field.queryset = field.queryset.order_by("order_id")
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 4.2.10 on 2024-06-11 18:47
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('signals', '0017_geography_display_name'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='geography',
15+
name='order_id',
16+
field=models.IntegerField(blank=True, help_text='Order ID', null=True),
17+
),
18+
]

src/signals/models.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@ class Geography(TimeStampedModel):
160160
blank=True
161161
)
162162

163+
order_id: models.IntegerField = models.IntegerField(
164+
help_text=_('Order ID'),
165+
null=True,
166+
blank=True
167+
)
168+
163169
class Meta:
164170
verbose_name_plural: str = "geographies"
165171
ordering: list[str] = ["name"]

src/signals/views.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from typing import Any, Dict
2+
import logging
23

34
from django.conf import settings
45
from django.views.generic import DetailView, ListView
@@ -12,6 +13,9 @@
1213
from signals.serializers import SignalSerializer
1314

1415

16+
logger = logging.getLogger(__name__)
17+
18+
1519
class SignalsListView(ListView):
1620
"""
1721
ListView for displaying a list of Signal objects.
@@ -53,7 +57,6 @@ def get_url_params(self):
5357
else None,
5458
"source": [int(el) for el in self.request.GET.getlist("source")],
5559
"time_type": [el for el in self.request.GET.getlist("time_type")],
56-
"base_signal": self.request.GET.get("base_signal"),
5760
}
5861
url_params_str = ""
5962
for param_name, param_value in url_params_dict.items():
@@ -76,7 +79,12 @@ def get_context_data(self, **kwargs) -> Dict[str, Any]:
7679
context: Dict[str, Any] = super().get_context_data(**kwargs)
7780
url_params_dict, url_params_str = self.get_url_params()
7881
if not url_params_dict.get("geographic_scope"):
79-
url_params_dict["geographic_scope"] = [GeographicScope.objects.get(name="USA").id]
82+
default_geographic_scope = []
83+
try:
84+
default_geographic_scope = [GeographicScope.objects.get(name="USA").id]
85+
except GeographicScope.DoesNotExist:
86+
logger.warning("Default Geographic Scope was not found in the database. Using an empty list.")
87+
url_params_dict["geographic_scope"] = default_geographic_scope
8088
context["url_params_dict"] = url_params_dict
8189
context["form"] = SignalFilterForm(initial=url_params_dict)
8290
context["url_params_str"] = url_params_str

src/templates/signals/signals.html

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -189,25 +189,6 @@ <h2 class="accordion-header" id="time_type-heading">
189189
</div>
190190
</div>
191191
</div>
192-
<div class="accordion-item">
193-
<h2 class="accordion-header">
194-
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#base_signal-collapse" aria-expanded="false" aria-controls="active-collapse">
195-
<label for="id_base_signal" class="form-label">
196-
Base Signal
197-
<a tabindex="0" role="button" class="info-button" data-bs-toggle="popover" data-bs-title="Base Signal" data-bs-content="{{ filters_descriptions.SignalFilter.base_signal }}"><i class="bi bi-info-circle"></i></a>
198-
</label>
199-
</button>
200-
</h2>
201-
{% if form.base_signal.value %}
202-
<div id="base_signal-collapse" class="accordion-collapse" aria-labelledby="base_signal-heading">
203-
{% else %}
204-
<div id="base_signal-collapse" class="accordion-collapse collapse" aria-labelledby="base_signal-heading">
205-
{% endif %}
206-
<div class="accordion-body">
207-
{{ form.base_signal|as_crispy_field }}
208-
</div>
209-
</div>
210-
</div>
211192
</div>
212193
<div class="card-body">
213194
<div class="d-grid gap-2 mt-3">

0 commit comments

Comments
 (0)