mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-26 18:38:38 -06:00
feature - Allow for filtering by market and virtual circuit
This commit is contained in:
parent
e3eff85a5c
commit
6d6e556419
@ -4,12 +4,14 @@ from django.db.models import Q
|
|||||||
from extras.filters import CustomFieldFilterSet
|
from extras.filters import CustomFieldFilterSet
|
||||||
from utilities.filters import NameSlugSearchFilterSet, TagFilter, MultiValueNumberFilter
|
from utilities.filters import NameSlugSearchFilterSet, TagFilter, MultiValueNumberFilter
|
||||||
from tenancy.models import Tenant, TenantGroup
|
from tenancy.models import Tenant, TenantGroup
|
||||||
from dcim.models import Site, Device, DeviceRole, Interface
|
from dcim.models import Site, Device, DeviceRole, Interface, Region
|
||||||
from dcim.choices import (
|
from dcim.choices import (
|
||||||
InterfaceTypeChoices,
|
InterfaceTypeChoices,
|
||||||
)
|
)
|
||||||
from dcim.filters import MultiValueMACAddressFilter
|
from dcim.filters import MultiValueMACAddressFilter
|
||||||
|
|
||||||
|
from netbox_virtual_circuit_plugin.models import VirtualCircuit
|
||||||
|
|
||||||
|
|
||||||
class CustomerFilter(CustomFieldFilterSet):
|
class CustomerFilter(CustomFieldFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
@ -117,6 +119,34 @@ class InterfaceFilter(django_filters.FilterSet):
|
|||||||
label='Customer (slug)',
|
label='Customer (slug)',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
market = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='device__site__region__slug',
|
||||||
|
queryset=Region.objects.all(),
|
||||||
|
to_field_name='slug',
|
||||||
|
label='Region (slug)',
|
||||||
|
)
|
||||||
|
|
||||||
|
vc_context = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='tagged_vlans__vlan_of__virtual_circuit__context',
|
||||||
|
queryset=VirtualCircuit.objects.all(),
|
||||||
|
to_field_name='context',
|
||||||
|
label='Virtual Circuit (context)',
|
||||||
|
)
|
||||||
|
|
||||||
|
vc_name = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='tagged_vlans__vlan_of__virtual_circuit__name',
|
||||||
|
queryset=VirtualCircuit.objects.all(),
|
||||||
|
to_field_name='name',
|
||||||
|
label='Virtual Circuit (name)',
|
||||||
|
)
|
||||||
|
|
||||||
|
vc_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='tagged_vlans__vlan_of__virtual_circuit__vcid',
|
||||||
|
queryset=VirtualCircuit.objects.all(),
|
||||||
|
to_field_name='vcid',
|
||||||
|
label='Virtual Circuit (vcid)',
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Interface
|
model = Interface
|
||||||
fields = ['id', 'name', 'connection_status', 'type', 'enabled', 'mtu', 'mgmt_only', 'mode', 'description']
|
fields = ['id', 'name', 'connection_status', 'type', 'enabled', 'mtu', 'mgmt_only', 'mode', 'description']
|
||||||
|
Loading…
Reference in New Issue
Block a user