Przeglądaj źródła

Closes #3454: Enable filtering circuits by region

Jeremy Stretch 6 lat temu
rodzic
commit
5f4bac6076
2 zmienionych plików z 14 dodań i 2 usunięć
  1. 1 0
      CHANGELOG.md
  2. 13 2
      netbox/circuits/filters.py

+ 1 - 0
CHANGELOG.md

@@ -16,6 +16,7 @@ v2.6.3 (FUTURE)
 * [#3405](https://github.com/netbox-community/netbox/issues/3405) - Fix population of power port/outlet details on device creation
 * [#3422](https://github.com/netbox-community/netbox/issues/3422) - Prevent navigation menu from overlapping page content
 * [#3430](https://github.com/netbox-community/netbox/issues/3430) - Linkify platform field on device view
+* [#3454](https://github.com/netbox-community/netbox/issues/3454) - Enable filtering circuits by region
 * [#3456](https://github.com/netbox-community/netbox/issues/3456) - Enable bulk editing of tag color
 
 ---

+ 13 - 2
netbox/circuits/filters.py

@@ -1,10 +1,10 @@
 import django_filters
 from django.db.models import Q
 
-from dcim.models import Site
+from dcim.models import Region, Site
 from extras.filters import CustomFieldFilterSet
 from tenancy.filtersets import TenancyFilterSet
-from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter
+from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter, TreeNodeMultipleChoiceFilter
 from .constants import CIRCUIT_STATUS_CHOICES
 from .models import Provider, Circuit, CircuitTermination, CircuitType
 
@@ -98,6 +98,17 @@ class CircuitFilter(CustomFieldFilterSet, TenancyFilterSet):
         to_field_name='slug',
         label='Site (slug)',
     )
+    region_id = TreeNodeMultipleChoiceFilter(
+        queryset=Region.objects.all(),
+        field_name='terminations__site__region__in',
+        label='Region (ID)',
+    )
+    region = TreeNodeMultipleChoiceFilter(
+        queryset=Region.objects.all(),
+        field_name='terminations__site__region__in',
+        to_field_name='slug',
+        label='Region (slug)',
+    )
     tag = TagFilter()
 
     class Meta: