|
@@ -443,42 +443,58 @@ class ConsoleConnectionFilter(django_filters.FilterSet):
|
|
method='filter_site',
|
|
method='filter_site',
|
|
label='Site (slug)',
|
|
label='Site (slug)',
|
|
)
|
|
)
|
|
-
|
|
|
|
- class Meta:
|
|
|
|
- model = ConsoleServerPort
|
|
|
|
- fields = []
|
|
|
|
|
|
+ device = django_filters.CharFilter(
|
|
|
|
+ method='filter_device',
|
|
|
|
+ label='Device',
|
|
|
|
+ )
|
|
|
|
|
|
def filter_site(self, queryset, name, value):
|
|
def filter_site(self, queryset, name, value):
|
|
if not value.strip():
|
|
if not value.strip():
|
|
return queryset
|
|
return queryset
|
|
return queryset.filter(cs_port__device__site__slug=value)
|
|
return queryset.filter(cs_port__device__site__slug=value)
|
|
|
|
|
|
|
|
+ def filter_device(self, queryset, name, value):
|
|
|
|
+ if not value.strip():
|
|
|
|
+ return queryset
|
|
|
|
+ return queryset.filter(
|
|
|
|
+ Q(device__name__icontains=value) |
|
|
|
|
+ Q(cs_port__device__name__icontains=value)
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
|
|
class PowerConnectionFilter(django_filters.FilterSet):
|
|
class PowerConnectionFilter(django_filters.FilterSet):
|
|
site = django_filters.CharFilter(
|
|
site = django_filters.CharFilter(
|
|
method='filter_site',
|
|
method='filter_site',
|
|
label='Site (slug)',
|
|
label='Site (slug)',
|
|
)
|
|
)
|
|
-
|
|
|
|
- class Meta:
|
|
|
|
- model = PowerOutlet
|
|
|
|
- fields = []
|
|
|
|
|
|
+ device = django_filters.CharFilter(
|
|
|
|
+ method='filter_device',
|
|
|
|
+ label='Device',
|
|
|
|
+ )
|
|
|
|
|
|
def filter_site(self, queryset, name, value):
|
|
def filter_site(self, queryset, name, value):
|
|
if not value.strip():
|
|
if not value.strip():
|
|
return queryset
|
|
return queryset
|
|
return queryset.filter(power_outlet__device__site__slug=value)
|
|
return queryset.filter(power_outlet__device__site__slug=value)
|
|
|
|
|
|
|
|
+ def filter_device(self, queryset, name, value):
|
|
|
|
+ if not value.strip():
|
|
|
|
+ return queryset
|
|
|
|
+ return queryset.filter(
|
|
|
|
+ Q(device__name__icontains=value) |
|
|
|
|
+ Q(power_outlet__device__name__icontains=value)
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
|
|
class InterfaceConnectionFilter(django_filters.FilterSet):
|
|
class InterfaceConnectionFilter(django_filters.FilterSet):
|
|
site = django_filters.CharFilter(
|
|
site = django_filters.CharFilter(
|
|
method='filter_site',
|
|
method='filter_site',
|
|
label='Site (slug)',
|
|
label='Site (slug)',
|
|
)
|
|
)
|
|
-
|
|
|
|
- class Meta:
|
|
|
|
- model = InterfaceConnection
|
|
|
|
- fields = []
|
|
|
|
|
|
+ device = django_filters.CharFilter(
|
|
|
|
+ method='filter_device',
|
|
|
|
+ label='Device',
|
|
|
|
+ )
|
|
|
|
|
|
def filter_site(self, queryset, name, value):
|
|
def filter_site(self, queryset, name, value):
|
|
if not value.strip():
|
|
if not value.strip():
|
|
@@ -487,3 +503,11 @@ class InterfaceConnectionFilter(django_filters.FilterSet):
|
|
Q(interface_a__device__site__slug=value) |
|
|
Q(interface_a__device__site__slug=value) |
|
|
Q(interface_b__device__site__slug=value)
|
|
Q(interface_b__device__site__slug=value)
|
|
)
|
|
)
|
|
|
|
+
|
|
|
|
+ def filter_device(self, queryset, name, value):
|
|
|
|
+ if not value.strip():
|
|
|
|
+ return queryset
|
|
|
|
+ return queryset.filter(
|
|
|
|
+ Q(interface_a__device__name__icontains=value) |
|
|
|
|
+ Q(interface_b__device__name__icontains=value)
|
|
|
|
+ )
|