Skip to content

Commit 264552d

Browse files
committed
๐Ÿ› ๏ธ src/signal_documentation/settings.py -> Added strtobool import
๐Ÿ› ๏ธ src/signals/filters.py -> Added base_signal filter ๐Ÿ› ๏ธ src/signals/forms.py -> Added base_signal field ๐Ÿ› ๏ธ src/signals/views.py -> Added base_signal to URL params ๐Ÿ› ๏ธ src/templates/signals/signals.html -> Added base_signal accordion
1 parent 22be36a commit 264552d

File tree

5 files changed

+46
-1
lines changed

5 files changed

+46
-1
lines changed

โ€Žsrc/signal_documentation/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"""
1212
import os
1313
import sys
14+
from distutils.util import strtobool
1415
from pathlib import Path
1516
from typing import Any
1617

โ€Žsrc/signals/filters.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class SignalFilter(django_filters.FilterSet):
4343
format_type = django_filters.MultipleChoiceFilter(choices=FormatChoices.choices)
4444
source = django_filters.ModelMultipleChoiceFilter(queryset=SourceSubdivision.objects.all())
4545
time_type = django_filters.MultipleChoiceFilter(choices=TimeTypeChoices.choices)
46+
base_signal = django_filters.BooleanFilter(lookup_expr='isnull', field_name='base_for')
4647

4748
class Meta:
4849
model = Signal
@@ -57,6 +58,7 @@ class Meta:
5758
'format_type',
5859
'source',
5960
'time_type',
61+
'base_signal',
6062
]
6163

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

โ€Žsrc/signals/forms.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class SignalFilterForm(forms.ModelForm):
3030
format_type = forms.ChoiceField(choices=FormatChoices.choices, 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())
3334

3435
class Meta:
3536
model = Signal
@@ -79,6 +80,7 @@ class Meta:
7980
'data-bs-toggle': 'tooltip',
8081
'data-bs-placement': 'bottom',
8182
}),
83+
8284
}
8385

8486
def __init__(self, *args, **kwargs) -> None:

โ€Žsrc/signals/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ def get_url_params(self):
5353
else None,
5454
"format_type": [el for el in self.request.GET.getlist("format_type")],
5555
"source": [int(el) for el in self.request.GET.getlist("source")],
56-
"time_type": [el for el in self.request.GET.getlist("time_type")]
56+
"time_type": [el for el in self.request.GET.getlist("time_type")],
57+
"base_signal": self.request.GET.get("base_signal"),
5758
}
5859
url_params_str = ""
5960
for param_name, param_value in url_params_dict.items():

โ€Žsrc/templates/signals/signals.html

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,27 @@ <h2 class="accordion-header" id="available_geography-heading">
212212
</div>
213213
</div>
214214
</div>
215+
<div class="accordion-item">
216+
<h2 class="accordion-header">
217+
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#base_signal-collapse" aria-expanded="false" aria-controls="active-collapse">
218+
<label for="id_base_signal" class="form-label">
219+
Base Signal
220+
<a href="#" data-bs-toggle="modal" data-bs-target="#base_signal_modal">
221+
<i class="bi bi-info-circle"></i>
222+
</a>
223+
</label>
224+
</button>
225+
</h2>
226+
{% if form.base_signal.value %}
227+
<div id="base_signal-collapse" class="accordion-collapse" aria-labelledby="base_signal-heading">
228+
{% else %}
229+
<div id="base_signal-collapse" class="accordion-collapse collapse" aria-labelledby="base_signal-heading">
230+
{% endif %}
231+
<div class="accordion-body">
232+
{{ form.base_signal|as_crispy_field }}
233+
</div>
234+
</div>
235+
</div>
215236
</div>
216237
<div class="card-body">
217238
<div class="d-grid gap-2 mt-3">
@@ -456,6 +477,24 @@ <h5 class="modal-title">Time Type</h5>
456477
</div>
457478
</div>
458479
</div>
480+
<div class="modal fade" id="base_signal_modal" tabindex="-1" style="display: none;" aria-hidden="true">
481+
<div class="modal-dialog modal-lg">
482+
<div class="modal-content">
483+
<div class="modal-header">
484+
<h5 class="modal-title">Base Signal</h5>
485+
<button type="button" class="btn-close" data-bs-dismiss="modal"
486+
aria-label="Close"></button>
487+
</div>
488+
<div class="modal-body">
489+
{{ filters_descriptions.SignalFilter.base_signal }}
490+
</div>
491+
<div class="modal-footer">
492+
<button type="button" class="btn btn-secondary"
493+
data-bs-dismiss="modal">Close</button>
494+
</div>
495+
</div>
496+
</div>
497+
</div>
459498
</form>
460499

461500
<script>

0 commit comments

Comments
ย (0)