Browse Source

Never display full list in admin service list

Jocelyn Delande 9 years ago
parent
commit
2c9d7a8189
1 changed files with 12 additions and 1 deletions
  1. 12 1
      costs/admin.py

+ 12 - 1
costs/admin.py

@@ -1,5 +1,6 @@
 from django.contrib import admin
 from django.core.urlresolvers import reverse
+from django.utils.encoding import force_text
 from django.utils.safestring import mark_safe
 
 from .models import (
@@ -68,7 +69,7 @@ class DirectDocumentFilter(admin.SimpleListFilter):
     def queryset(self, request, queryset):
         document = self.value()
         if not document:
-            return queryset
+            return queryset.none()
         else:
             return queryset.filter(document=document)
 
@@ -76,6 +77,16 @@ class DirectDocumentFilter(admin.SimpleListFilter):
         for i in Document.objects.all():
             yield i.pk, str(i)
 
+    def choices(self, changelist):
+        """ Same as base SimpleListFilter but do not display the "All" choice
+        """
+        for lookup, title in self.lookup_choices:
+            yield {
+                'selected': self.value() == force_text(lookup),
+                'query_string': changelist.get_query_string(
+                    {self.parameter_name: lookup}, []),
+                'display': title,
+            }
 
 
 @admin.register(Service)