7699 filterset

This commit is contained in:
Arthur Hanson 2024-10-23 12:55:13 -07:00
parent dcb3c7c113
commit 33b4beba10

View File

@ -3,13 +3,13 @@ from django.db.models import Q
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from dcim.filtersets import CommonInterfaceFilterSet from dcim.filtersets import CommonInterfaceFilterSet
from dcim.models import Device, DeviceRole, Platform, Region, Site, SiteGroup from dcim.models import Device, DeviceRole, Platform, Location, Region, Site, SiteGroup
from extras.filtersets import LocalConfigContextFilterSet from extras.filtersets import LocalConfigContextFilterSet
from extras.models import ConfigTemplate from extras.models import ConfigTemplate
from ipam.filtersets import PrimaryIPFilterSet from ipam.filtersets import PrimaryIPFilterSet
from netbox.filtersets import OrganizationalModelFilterSet, NetBoxModelFilterSet from netbox.filtersets import OrganizationalModelFilterSet, NetBoxModelFilterSet
from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet
from utilities.filters import MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter from utilities.filters import ContentTypeFilter, MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter
from .choices import * from .choices import *
from .models import * from .models import *
@ -38,42 +38,57 @@ class ClusterGroupFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet)
class ClusterFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilterSet): class ClusterFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
# region_id = TreeNodeMultipleChoiceFilter( scope_type = ContentTypeFilter()
# queryset=Region.objects.all(), region_id = TreeNodeMultipleChoiceFilter(
# field_name='site__region', queryset=Region.objects.all(),
# lookup_expr='in', field_name='_region',
# label=_('Region (ID)'), lookup_expr='in',
# ) label=_('Region (ID)'),
# region = TreeNodeMultipleChoiceFilter( )
# queryset=Region.objects.all(), region = TreeNodeMultipleChoiceFilter(
# field_name='site__region', queryset=Region.objects.all(),
# lookup_expr='in', field_name='_region',
# to_field_name='slug', lookup_expr='in',
# label=_('Region (slug)'), to_field_name='slug',
# ) label=_('Region (slug)'),
# site_group_id = TreeNodeMultipleChoiceFilter( )
# queryset=SiteGroup.objects.all(), site_group_id = TreeNodeMultipleChoiceFilter(
# field_name='site__group', queryset=SiteGroup.objects.all(),
# lookup_expr='in', field_name='_sitegroup',
# label=_('Site group (ID)'), lookup_expr='in',
# ) label=_('Site group (ID)'),
# site_group = TreeNodeMultipleChoiceFilter( )
# queryset=SiteGroup.objects.all(), site_group = TreeNodeMultipleChoiceFilter(
# field_name='site__group', queryset=SiteGroup.objects.all(),
# lookup_expr='in', field_name='_sitegroup',
# to_field_name='slug', lookup_expr='in',
# label=_('Site group (slug)'), to_field_name='slug',
# ) label=_('Site group (slug)'),
# site_id = django_filters.ModelMultipleChoiceFilter( )
# queryset=Site.objects.all(), site_id = django_filters.ModelMultipleChoiceFilter(
# label=_('Site (ID)'), queryset=Site.objects.all(),
# ) field_name='_site',
# site = django_filters.ModelMultipleChoiceFilter( label=_('Site (ID)'),
# field_name='site__slug', )
# queryset=Site.objects.all(), site = django_filters.ModelMultipleChoiceFilter(
# to_field_name='slug', field_name='_site__slug',
# label=_('Site (slug)'), queryset=Site.objects.all(),
# ) to_field_name='slug',
label=_('Site (slug)'),
)
location_id = TreeNodeMultipleChoiceFilter(
queryset=Location.objects.all(),
field_name='_location',
lookup_expr='in',
label=_('Location (ID)'),
)
location = TreeNodeMultipleChoiceFilter(
queryset=Location.objects.all(),
field_name='_location',
lookup_expr='in',
to_field_name='slug',
label=_('Location (slug)'),
)
group_id = django_filters.ModelMultipleChoiceFilter( group_id = django_filters.ModelMultipleChoiceFilter(
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
label=_('Parent group (ID)'), label=_('Parent group (ID)'),