|
@@ -22,6 +22,7 @@ from utilities.filters import (
|
|
|
ContentTypeFilter, MultiValueCharFilter, MultiValueMACAddressFilter, MultiValueNumberFilter, MultiValueWWNFilter,
|
|
ContentTypeFilter, MultiValueCharFilter, MultiValueMACAddressFilter, MultiValueNumberFilter, MultiValueWWNFilter,
|
|
|
NumericArrayFilter, TreeNodeMultipleChoiceFilter,
|
|
NumericArrayFilter, TreeNodeMultipleChoiceFilter,
|
|
|
)
|
|
)
|
|
|
|
|
+from utilities.filtersets import register_filterset
|
|
|
from virtualization.models import Cluster, ClusterGroup, VirtualMachine, VMInterface
|
|
from virtualization.models import Cluster, ClusterGroup, VirtualMachine, VMInterface
|
|
|
from vpn.models import L2VPN
|
|
from vpn.models import L2VPN
|
|
|
from wireless.choices import WirelessChannelChoices, WirelessRoleChoices
|
|
from wireless.choices import WirelessChannelChoices, WirelessRoleChoices
|
|
@@ -84,6 +85,7 @@ __all__ = (
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class RegionFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|
class RegionFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=Region.objects.all(),
|
|
queryset=Region.objects.all(),
|
|
@@ -114,6 +116,7 @@ class RegionFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|
|
fields = ('id', 'name', 'slug', 'description')
|
|
fields = ('id', 'name', 'slug', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class SiteGroupFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|
class SiteGroupFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=SiteGroup.objects.all(),
|
|
queryset=SiteGroup.objects.all(),
|
|
@@ -144,6 +147,7 @@ class SiteGroupFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|
|
fields = ('id', 'name', 'slug', 'description')
|
|
fields = ('id', 'name', 'slug', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
|
class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
|
|
status = django_filters.MultipleChoiceFilter(
|
|
status = django_filters.MultipleChoiceFilter(
|
|
|
choices=SiteStatusChoices,
|
|
choices=SiteStatusChoices,
|
|
@@ -208,6 +212,7 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterS
|
|
|
return queryset.filter(qs_filter).distinct()
|
|
return queryset.filter(qs_filter).distinct()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class LocationFilterSet(TenancyFilterSet, ContactModelFilterSet, NestedGroupModelFilterSet):
|
|
class LocationFilterSet(TenancyFilterSet, ContactModelFilterSet, NestedGroupModelFilterSet):
|
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
|
queryset=Region.objects.all(),
|
|
queryset=Region.objects.all(),
|
|
@@ -287,6 +292,7 @@ class LocationFilterSet(TenancyFilterSet, ContactModelFilterSet, NestedGroupMode
|
|
|
return queryset
|
|
return queryset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class RackRoleFilterSet(OrganizationalModelFilterSet):
|
|
class RackRoleFilterSet(OrganizationalModelFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -294,6 +300,7 @@ class RackRoleFilterSet(OrganizationalModelFilterSet):
|
|
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class RackTypeFilterSet(PrimaryModelFilterSet):
|
|
class RackTypeFilterSet(PrimaryModelFilterSet):
|
|
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=Manufacturer.objects.all(),
|
|
queryset=Manufacturer.objects.all(),
|
|
@@ -332,6 +339,7 @@ class RackTypeFilterSet(PrimaryModelFilterSet):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
|
class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
|
queryset=Region.objects.all(),
|
|
queryset=Region.objects.all(),
|
|
@@ -448,6 +456,7 @@ class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterS
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|
class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|
|
rack_id = django_filters.ModelMultipleChoiceFilter(
|
|
rack_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=Rack.objects.all(),
|
|
queryset=Rack.objects.all(),
|
|
@@ -537,6 +546,7 @@ class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ManufacturerFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
|
class ManufacturerFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -544,6 +554,7 @@ class ManufacturerFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet)
|
|
|
fields = ('id', 'name', 'slug', 'description')
|
|
fields = ('id', 'name', 'slug', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class DeviceTypeFilterSet(PrimaryModelFilterSet):
|
|
class DeviceTypeFilterSet(PrimaryModelFilterSet):
|
|
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=Manufacturer.objects.all(),
|
|
queryset=Manufacturer.objects.all(),
|
|
@@ -687,6 +698,7 @@ class DeviceTypeFilterSet(PrimaryModelFilterSet):
|
|
|
return queryset.exclude(inventoryitemtemplates__isnull=value)
|
|
return queryset.exclude(inventoryitemtemplates__isnull=value)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ModuleTypeProfileFilterSet(PrimaryModelFilterSet):
|
|
class ModuleTypeProfileFilterSet(PrimaryModelFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -703,6 +715,7 @@ class ModuleTypeProfileFilterSet(PrimaryModelFilterSet):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ModuleTypeFilterSet(AttributeFiltersMixin, PrimaryModelFilterSet):
|
|
class ModuleTypeFilterSet(AttributeFiltersMixin, PrimaryModelFilterSet):
|
|
|
profile_id = django_filters.ModelMultipleChoiceFilter(
|
|
profile_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=ModuleTypeProfile.objects.all(),
|
|
queryset=ModuleTypeProfile.objects.all(),
|
|
@@ -819,6 +832,7 @@ class ModularDeviceTypeComponentFilterSet(DeviceTypeComponentFilterSet):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ConsolePortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class ConsolePortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -826,6 +840,7 @@ class ConsolePortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceType
|
|
|
fields = ('id', 'name', 'label', 'type', 'description')
|
|
fields = ('id', 'name', 'label', 'type', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ConsoleServerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class ConsoleServerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -833,6 +848,7 @@ class ConsoleServerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDevi
|
|
|
fields = ('id', 'name', 'label', 'type', 'description')
|
|
fields = ('id', 'name', 'label', 'type', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class PowerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class PowerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -840,6 +856,7 @@ class PowerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|
|
fields = ('id', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description')
|
|
fields = ('id', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class PowerOutletTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class PowerOutletTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
feed_leg = django_filters.MultipleChoiceFilter(
|
|
feed_leg = django_filters.MultipleChoiceFilter(
|
|
|
choices=PowerOutletFeedLegChoices,
|
|
choices=PowerOutletFeedLegChoices,
|
|
@@ -855,6 +872,7 @@ class PowerOutletTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceType
|
|
|
fields = ('id', 'name', 'label', 'type', 'color', 'feed_leg', 'description')
|
|
fields = ('id', 'name', 'label', 'type', 'color', 'feed_leg', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class InterfaceTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class InterfaceTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=InterfaceTypeChoices,
|
|
choices=InterfaceTypeChoices,
|
|
@@ -879,6 +897,7 @@ class InterfaceTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|
|
fields = ('id', 'name', 'label', 'type', 'enabled', 'mgmt_only', 'description')
|
|
fields = ('id', 'name', 'label', 'type', 'enabled', 'mgmt_only', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class FrontPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class FrontPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=PortTypeChoices,
|
|
choices=PortTypeChoices,
|
|
@@ -893,6 +912,7 @@ class FrontPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|
|
fields = ('id', 'name', 'label', 'type', 'color', 'rear_port_position', 'description')
|
|
fields = ('id', 'name', 'label', 'type', 'color', 'rear_port_position', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class RearPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class RearPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=PortTypeChoices,
|
|
choices=PortTypeChoices,
|
|
@@ -904,6 +924,7 @@ class RearPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCom
|
|
|
fields = ('id', 'name', 'label', 'type', 'color', 'positions', 'description')
|
|
fields = ('id', 'name', 'label', 'type', 'color', 'positions', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ModuleBayTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
class ModuleBayTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -911,6 +932,7 @@ class ModuleBayTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|
|
fields = ('id', 'name', 'label', 'position', 'description')
|
|
fields = ('id', 'name', 'label', 'position', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class DeviceBayTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
|
class DeviceBayTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -918,6 +940,7 @@ class DeviceBayTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponent
|
|
|
fields = ('id', 'name', 'label', 'description')
|
|
fields = ('id', 'name', 'label', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class InventoryItemTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
|
class InventoryItemTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=InventoryItemTemplate.objects.all(),
|
|
queryset=InventoryItemTemplate.objects.all(),
|
|
@@ -961,6 +984,7 @@ class InventoryItemTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeCompo
|
|
|
return queryset.filter(qs_filter)
|
|
return queryset.filter(qs_filter)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class DeviceRoleFilterSet(NestedGroupModelFilterSet):
|
|
class DeviceRoleFilterSet(NestedGroupModelFilterSet):
|
|
|
config_template_id = django_filters.ModelMultipleChoiceFilter(
|
|
config_template_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=ConfigTemplate.objects.all(),
|
|
queryset=ConfigTemplate.objects.all(),
|
|
@@ -995,6 +1019,7 @@ class DeviceRoleFilterSet(NestedGroupModelFilterSet):
|
|
|
fields = ('id', 'name', 'slug', 'color', 'vm_role', 'description')
|
|
fields = ('id', 'name', 'slug', 'color', 'vm_role', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class PlatformFilterSet(NestedGroupModelFilterSet):
|
|
class PlatformFilterSet(NestedGroupModelFilterSet):
|
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=Platform.objects.all(),
|
|
queryset=Platform.objects.all(),
|
|
@@ -1052,6 +1077,7 @@ class PlatformFilterSet(NestedGroupModelFilterSet):
|
|
|
return queryset.filter(Q(manufacturer=None) | Q(manufacturer__device_types=value))
|
|
return queryset.filter(Q(manufacturer=None) | Q(manufacturer__device_types=value))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class DeviceFilterSet(
|
|
class DeviceFilterSet(
|
|
|
PrimaryModelFilterSet,
|
|
PrimaryModelFilterSet,
|
|
|
TenancyFilterSet,
|
|
TenancyFilterSet,
|
|
@@ -1354,6 +1380,7 @@ class DeviceFilterSet(
|
|
|
return queryset.exclude(params)
|
|
return queryset.exclude(params)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class VirtualDeviceContextFilterSet(PrimaryModelFilterSet, TenancyFilterSet, PrimaryIPFilterSet):
|
|
class VirtualDeviceContextFilterSet(PrimaryModelFilterSet, TenancyFilterSet, PrimaryIPFilterSet):
|
|
|
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
field_name='device',
|
|
field_name='device',
|
|
@@ -1403,6 +1430,7 @@ class VirtualDeviceContextFilterSet(PrimaryModelFilterSet, TenancyFilterSet, Pri
|
|
|
return queryset.exclude(params)
|
|
return queryset.exclude(params)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ModuleFilterSet(PrimaryModelFilterSet):
|
|
class ModuleFilterSet(PrimaryModelFilterSet):
|
|
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
field_name='module_type__manufacturer',
|
|
field_name='module_type__manufacturer',
|
|
@@ -1691,6 +1719,7 @@ class PathEndpointFilterSet(django_filters.FilterSet):
|
|
|
return queryset.filter(Q(_path__isnull=True) | Q(_path__is_active=False))
|
|
return queryset.filter(Q(_path__isnull=True) | Q(_path__is_active=False))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ConsolePortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
class ConsolePortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=ConsolePortTypeChoices,
|
|
choices=ConsolePortTypeChoices,
|
|
@@ -1702,6 +1731,7 @@ class ConsolePortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSe
|
|
|
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
|
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ConsoleServerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
class ConsoleServerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=ConsolePortTypeChoices,
|
|
choices=ConsolePortTypeChoices,
|
|
@@ -1713,6 +1743,7 @@ class ConsoleServerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFi
|
|
|
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
|
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class PowerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
class PowerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=PowerPortTypeChoices,
|
|
choices=PowerPortTypeChoices,
|
|
@@ -1727,6 +1758,7 @@ class PowerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class PowerOutletFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
class PowerOutletFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=PowerOutletTypeChoices,
|
|
choices=PowerOutletTypeChoices,
|
|
@@ -1753,6 +1785,7 @@ class PowerOutletFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSe
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class MACAddressFilterSet(PrimaryModelFilterSet):
|
|
class MACAddressFilterSet(PrimaryModelFilterSet):
|
|
|
mac_address = MultiValueMACAddressFilter()
|
|
mac_address = MultiValueMACAddressFilter()
|
|
|
assigned_object_type = ContentTypeFilter()
|
|
assigned_object_type = ContentTypeFilter()
|
|
@@ -1934,6 +1967,7 @@ class CommonInterfaceFilterSet(django_filters.FilterSet):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class InterfaceFilterSet(
|
|
class InterfaceFilterSet(
|
|
|
ModularDeviceComponentFilterSet,
|
|
ModularDeviceComponentFilterSet,
|
|
|
CabledObjectFilterSet,
|
|
CabledObjectFilterSet,
|
|
@@ -2096,6 +2130,7 @@ class InterfaceFilterSet(
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class FrontPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
|
class FrontPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=PortTypeChoices,
|
|
choices=PortTypeChoices,
|
|
@@ -2113,6 +2148,7 @@ class FrontPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet)
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class RearPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
|
class RearPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
|
|
type = django_filters.MultipleChoiceFilter(
|
|
type = django_filters.MultipleChoiceFilter(
|
|
|
choices=PortTypeChoices,
|
|
choices=PortTypeChoices,
|
|
@@ -2127,6 +2163,7 @@ class RearPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class ModuleBayFilterSet(ModularDeviceComponentFilterSet):
|
|
class ModuleBayFilterSet(ModularDeviceComponentFilterSet):
|
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=ModuleBay.objects.all(),
|
|
queryset=ModuleBay.objects.all(),
|
|
@@ -2143,6 +2180,7 @@ class ModuleBayFilterSet(ModularDeviceComponentFilterSet):
|
|
|
fields = ('id', 'name', 'label', 'position', 'description')
|
|
fields = ('id', 'name', 'label', 'position', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class DeviceBayFilterSet(DeviceComponentFilterSet):
|
|
class DeviceBayFilterSet(DeviceComponentFilterSet):
|
|
|
installed_device_id = django_filters.ModelMultipleChoiceFilter(
|
|
installed_device_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=Device.objects.all(),
|
|
queryset=Device.objects.all(),
|
|
@@ -2160,6 +2198,7 @@ class DeviceBayFilterSet(DeviceComponentFilterSet):
|
|
|
fields = ('id', 'name', 'label', 'description')
|
|
fields = ('id', 'name', 'label', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class InventoryItemFilterSet(DeviceComponentFilterSet):
|
|
class InventoryItemFilterSet(DeviceComponentFilterSet):
|
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=InventoryItem.objects.all(),
|
|
queryset=InventoryItem.objects.all(),
|
|
@@ -2212,6 +2251,7 @@ class InventoryItemFilterSet(DeviceComponentFilterSet):
|
|
|
return queryset.filter(qs_filter)
|
|
return queryset.filter(qs_filter)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class InventoryItemRoleFilterSet(OrganizationalModelFilterSet):
|
|
class InventoryItemRoleFilterSet(OrganizationalModelFilterSet):
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -2219,6 +2259,7 @@ class InventoryItemRoleFilterSet(OrganizationalModelFilterSet):
|
|
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class VirtualChassisFilterSet(PrimaryModelFilterSet):
|
|
class VirtualChassisFilterSet(PrimaryModelFilterSet):
|
|
|
master_id = django_filters.ModelMultipleChoiceFilter(
|
|
master_id = django_filters.ModelMultipleChoiceFilter(
|
|
|
queryset=Device.objects.all(),
|
|
queryset=Device.objects.all(),
|
|
@@ -2295,6 +2336,7 @@ class VirtualChassisFilterSet(PrimaryModelFilterSet):
|
|
|
return queryset.filter(qs_filter).distinct()
|
|
return queryset.filter(qs_filter).distinct()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class CableFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
|
|
class CableFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
|
|
|
termination_a_type = ContentTypeFilter(
|
|
termination_a_type = ContentTypeFilter(
|
|
|
field_name='terminations__termination_type'
|
|
field_name='terminations__termination_type'
|
|
@@ -2467,6 +2509,7 @@ class CableFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
|
|
|
return self.filter_by_termination_object(queryset, CircuitTermination, value)
|
|
return self.filter_by_termination_object(queryset, CircuitTermination, value)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class CableTerminationFilterSet(ChangeLoggedModelFilterSet):
|
|
class CableTerminationFilterSet(ChangeLoggedModelFilterSet):
|
|
|
termination_type = ContentTypeFilter()
|
|
termination_type = ContentTypeFilter()
|
|
|
|
|
|
|
@@ -2475,6 +2518,7 @@ class CableTerminationFilterSet(ChangeLoggedModelFilterSet):
|
|
|
fields = ('id', 'cable', 'cable_end', 'position', 'termination_type', 'termination_id')
|
|
fields = ('id', 'cable', 'cable_end', 'position', 'termination_type', 'termination_id')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class PowerPanelFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
|
class PowerPanelFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
|
queryset=Region.objects.all(),
|
|
queryset=Region.objects.all(),
|
|
@@ -2533,6 +2577,7 @@ class PowerPanelFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
|
|
return queryset.filter(qs_filter)
|
|
return queryset.filter(qs_filter)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@register_filterset
|
|
|
class PowerFeedFilterSet(PrimaryModelFilterSet, CabledObjectFilterSet, PathEndpointFilterSet, TenancyFilterSet):
|
|
class PowerFeedFilterSet(PrimaryModelFilterSet, CabledObjectFilterSet, PathEndpointFilterSet, TenancyFilterSet):
|
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
region_id = TreeNodeMultipleChoiceFilter(
|
|
|
queryset=Region.objects.all(),
|
|
queryset=Region.objects.all(),
|