|
@@ -37,6 +37,24 @@ class ResourceInUseFilter(admin.SimpleListFilter):
|
|
|
return queryset.filter(available_filter)
|
|
|
|
|
|
|
|
|
+class RouteFilter(admin.SimpleListFilter):
|
|
|
+ title = 'route'
|
|
|
+ parameter_name = 'route'
|
|
|
+
|
|
|
+ def lookups(self, request, model_admin):
|
|
|
+ return ServiceAllocation.objects.filter(active=True).values_list('route__pk', 'route__name')
|
|
|
+
|
|
|
+ def queryset(self, request, queryset):
|
|
|
+ try:
|
|
|
+ route = int(self.value())
|
|
|
+ except (TypeError, ValueError):
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ allocations = ServiceAllocation.objects.filter(active=True, route__pk=route).values_list('pk', flat=True)
|
|
|
+ queryset = queryset.filter(service_allocation__in=allocations)
|
|
|
+ return queryset
|
|
|
+
|
|
|
+
|
|
|
class AntennaPrefixFilter(admin.SimpleListFilter):
|
|
|
title = 'préfix'
|
|
|
parameter_name = 'prefix'
|
|
@@ -49,7 +67,7 @@ class AntennaPrefixFilter(admin.SimpleListFilter):
|
|
|
def queryset(self, request, queryset):
|
|
|
try:
|
|
|
prefix = int(self.value())
|
|
|
- except TypeError:
|
|
|
+ except (TypeError, ValueError):
|
|
|
pass
|
|
|
else:
|
|
|
allocations = AntennaAllocation.objects.filter(active=True, resource__prefixes__pk=prefix).values_list('pk', flat=True)
|
|
@@ -168,6 +186,7 @@ class IPResourceAdmin(admin.ModelAdmin):
|
|
|
'category',
|
|
|
ResourceInUseFilter,
|
|
|
('prefixes', admin.RelatedOnlyFieldListFilter),
|
|
|
+ RouteFilter,
|
|
|
)
|
|
|
fields = ('ip', 'reserved', 'notes')
|
|
|
readonly_fields = ('ip', 'reserved',)
|