From 7415a3b157dfbb45b30fc59addd1f6497fc8057c Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 6 May 2024 14:51:22 -0700 Subject: [PATCH] 15496 filterset --- netbox/circuits/forms/filtersets.py | 33 ++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/netbox/circuits/forms/filtersets.py b/netbox/circuits/forms/filtersets.py index c592ae06a..355b09c98 100644 --- a/netbox/circuits/forms/filtersets.py +++ b/netbox/circuits/forms/filtersets.py @@ -1,7 +1,7 @@ from django import forms from django.utils.translation import gettext as _ -from circuits.choices import CircuitCommitRateChoices, CircuitStatusChoices +from circuits.choices import CircuitCommitRateChoices, CircuitStatusChoices, CircuitTerminationSideChoices from circuits.models import * from dcim.models import Region, Site, SiteGroup from ipam.models import ASN @@ -193,5 +193,36 @@ class CircuitTerminationFilterForm(NetBoxModelFilterSetForm): model = CircuitTermination fieldsets = ( FieldSet('q', 'filter_id', 'tag'), + FieldSet('circuit_id', 'term_side', name=_('Circuit')), + FieldSet('region_id', 'site_group_id', 'site_id', name=_('Location')), + ) + region_id = DynamicModelMultipleChoiceField( + queryset=Region.objects.all(), + required=False, + label=_('Region') + ) + site_group_id = DynamicModelMultipleChoiceField( + queryset=SiteGroup.objects.all(), + required=False, + label=_('Site group') + ) + site_id = DynamicModelMultipleChoiceField( + queryset=Site.objects.all(), + required=False, + query_params={ + 'region_id': '$region_id', + 'site_group_id': '$site_group_id', + }, + label=_('Site') + ) + circuit_id = DynamicModelMultipleChoiceField( + queryset=Circuit.objects.all(), + required=False, + label=_('Circuit') + ) + term_side = forms.MultipleChoiceField( + label=_('Term Side'), + choices=CircuitTerminationSideChoices, + required=False ) tag = TagFilterField(model)