summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-08-13 10:48:09 +0200
committerÉtienne Loks <etienne.loks@proxience.com>2015-08-13 10:48:09 +0200
commit4dc29d3286a34b8dc428d69a138b6eb6ac97461e (patch)
treeecc0cc944e85ff4ad47072142661338128208d9e /chimere/admin.py
parenta1e080dc1e0de5e7673fe19a471cd3e8116e3889 (diff)
downloadChimère-4dc29d3286a34b8dc428d69a138b6eb6ac97461e.tar.bz2
Chimère-4dc29d3286a34b8dc428d69a138b6eb6ac97461e.zip
Admin: add a filter when no category is available
Diffstat (limited to 'chimere/admin.py')
-rw-r--r--chimere/admin.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index b8414dc..47e7e25 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -25,6 +25,7 @@ import datetime
from django import forms
from django.conf import settings
from django.contrib import admin, messages
+from django.contrib.admin import SimpleListFilter
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q
from django.http import HttpResponse, HttpResponseRedirect
@@ -176,13 +177,30 @@ class MultimediaInline(admin.TabularInline):
ordering = ('order',)
form = MultimediaFileAdminForm
+class HasCategoriesListFilter(SimpleListFilter):
+ title = _('Has categories')
+ parameter_name = 'has_category'
+
+ def lookups(self, request, model_admin):
+ return (
+ ('true', _('Yes')),
+ ('false', _('No')),
+ )
+
+ def queryset(self, request, queryset):
+ if self.value() == 'false':
+ return queryset.filter(categories__isnull=True)
+ else:
+ return queryset.exclude(categories__isnull=True)
+
class MarkerAdmin(admin.ModelAdmin):
"""
Specialized the Point field.
"""
search_fields = ("name",)
list_display = ('name', 'status', 'start_date', 'end_date')
- list_filter = ('status', 'categories', 'start_date', 'end_date')
+ list_filter = ('status', 'categories', HasCategoriesListFilter,
+ 'start_date', 'end_date')
actions = [validate, disable, managed_modified, export_to_kml,
export_to_shapefile, export_to_csv]
exclude = ['submiter_session_key', 'import_key', 'import_version',