Browse Source

découverte de RelatedOnlyFieldListFilter

Élie Bouttier 8 years ago
parent
commit
06781be2d6
1 changed files with 4 additions and 13 deletions
  1. 4 13
      services/admin.py

+ 4 - 13
services/admin.py

@@ -49,18 +49,6 @@ class AllocationStatusFilter(admin.SimpleListFilter):
             return queryset.filter(active_filter)
             return queryset.filter(active_filter)
 
 
 
 
-class ServiceTypeFilter(admin.SimpleListFilter):
-    title = 'type de service'
-    parameter_name = 'type'
-
-    def lookups(self, request, model_admin):
-        return ServiceType.objects.values_list('pk', 'name')
-
-    def queryset(self, request, queryset):
-        if self.value():
-            return queryset.filter(service_type__pk=self.value())
-
-
 ### Helpers
 ### Helpers
 
 
 def get_foreignkey_link_func(field):
 def get_foreignkey_link_func(field):
@@ -104,7 +92,10 @@ ends_resource.short_description = 'Terminer les allocations sélectionnées'
 
 
 class ServiceAdmin(admin.ModelAdmin):
 class ServiceAdmin(admin.ModelAdmin):
     list_display = ('id', 'adhesion_link', 'service_type', 'label', 'active')
     list_display = ('id', 'adhesion_link', 'service_type', 'label', 'active')
-    list_filter = ('active', ServiceTypeFilter,)
+    list_filter = (
+        'active',
+        ('service_type', admin.RelatedOnlyFieldListFilter),
+    )
     inlines = (AllocationInline,)
     inlines = (AllocationInline,)
     search_fields = ('id', 'service_type__name', 'label')
     search_fields = ('id', 'service_type__name', 'label')
     raw_id_fields = ('adhesion',)
     raw_id_fields = ('adhesion',)