Browse Source

autocompletion avec select2

Élie Bouttier 7 years ago
parent
commit
03e09fce47
1 changed files with 16 additions and 4 deletions
  1. 16 4
      services/admin.py

+ 16 - 4
services/admin.py

@@ -191,7 +191,7 @@ class AllocationInline(admin.TabularInline):
 
     def get_queryset(self, request):
         qs = super().get_queryset(request)
-        qs = qs.select_related('resource', 'route')
+        qs = qs.select_related('resource')
         return qs
 
     def get_formset(self, request, obj=None, **kwargs):
@@ -227,13 +227,25 @@ class InactiveAllocationMixin:
 class ServiceAllocationMixin:
     model = ServiceAllocation
     fields = ('id', 'service', 'resource', 'route', 'start', 'end')
-    raw_id_fields = ('service', 'resource',)
+    raw_id_fields = ('resource',)
+    autocomplete_fields = ('service',)
+
+    def get_queryset(self, request):
+        qs = super().get_queryset(request)
+        qs = qs.select_related('route')
+        return qs
 
 
 class AntennaAllocationMixin:
     model = AntennaAllocation
     fields = ('id', 'antenna', 'resource', 'start', 'end')
-    raw_id_fields = ('antenna', 'resource',)
+    raw_id_fields = ('resource',)
+    autocomplete_fields = ('antenna',)
+
+    def get_queryset(self, request):
+        qs = super().get_queryset(request)
+        qs = qs.select_related('antenna')
+        return qs
 
 
 class ActiveServiceAllocationInline(ServiceAllocationMixin, ActiveAllocationMixin, AllocationInline):
@@ -265,7 +277,7 @@ class PortInline(admin.TabularInline):
 class SwitchPortInline(PortInline):
     fields = ('port', 'reserved', 'service', 'notes',)
     readonly_fields = ('port',)
-    raw_id_fields = ('service',)
+    autocomplete_fields = ('service',)
 
     def get_queryset(self, request):
         qs = super().get_queryset(request)