Skip to content

Commit 3e21d5d

Browse files
authored
Implement Filtering by Location (#58)
* Update filters.py * Update forms.py
1 parent c19b8c4 commit 3e21d5d

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

nextbox_ui_plugin/filters.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import django_filters
2-
from dcim.models import Device, Site, Region
2+
from dcim.models import Device, Location, Site, Region
33

44

55
class TopologyFilterSet(django_filters.FilterSet):
@@ -10,6 +10,10 @@ class TopologyFilterSet(django_filters.FilterSet):
1010
field_name='id',
1111
label='Device (ID)',
1212
)
13+
location_id = django_filters.ModelMultipleChoiceFilter(
14+
queryset=Location.objects.all(),
15+
label='Location (ID)',
16+
)
1317
site_id = django_filters.ModelMultipleChoiceFilter(
1418
queryset=Site.objects.all(),
1519
label='Site (ID)',

nextbox_ui_plugin/forms.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
BootstrapMixin, DynamicModelMultipleChoiceField,
44
)
55
from .models import SavedTopology
6-
from dcim.models import Device, Site, Region
6+
from dcim.models import Device, Location, Site, Region
77

88

99
class TopologyFilterForm(BootstrapMixin, forms.Form):
@@ -16,6 +16,12 @@ class TopologyFilterForm(BootstrapMixin, forms.Form):
1616
required=False,
1717
null_option='None',
1818
)
19+
location_id = DynamicModelMultipleChoiceField(
20+
queryset=Location.objects.all(),
21+
required=False,
22+
to_field_name='id',
23+
null_option='None',
24+
)
1925
site_id = DynamicModelMultipleChoiceField(
2026
queryset=Site.objects.all(),
2127
required=False,

0 commit comments

Comments
 (0)