From 5f4bac60769adfe37c8ba6c0aaa2981b761c0f89 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 28 Aug 2019 12:12:27 -0400 Subject: [PATCH] Closes #3454: Enable filtering circuits by region --- CHANGELOG.md | 1 + netbox/circuits/filters.py | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c973390e..107df5457 100644 --- a/CHANGELOG.md +++ b/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 --- diff --git a/netbox/circuits/filters.py b/netbox/circuits/filters.py index 4323feafc..33005b830 100644 --- a/netbox/circuits/filters.py +++ b/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: