diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-09-23 23:38:21 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-09-23 23:38:21 +0200 |
commit | 3d3d618fc627fc4568c826e11a296a5e75e2ebb9 (patch) | |
tree | 0e4c24d715b9d4a678eff9015f498b256a466c2b /chimere/admin.py | |
parent | cf03b1eea89f4a7a0c0b03629a81a0d8d588a35f (diff) | |
parent | 5d2cac2cb5a03c8f55a2396e4c4ce13911a9149c (diff) | |
download | Chimère-3d3d618fc627fc4568c826e11a296a5e75e2ebb9.tar.bz2 Chimère-3d3d618fc627fc4568c826e11a296a5e75e2ebb9.zip |
Merge branch 'v2.1' into v2.2
Conflicts:
chimere/admin.py
chimere/models.py
Diffstat (limited to 'chimere/admin.py')
-rw-r--r-- | chimere/admin.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/chimere/admin.py b/chimere/admin.py index 521c5a2..60d1141 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 @@ -199,14 +200,31 @@ class AreaRouteListFilter(AreaMarkerListFilter): return queryset return queryset.filter(area.getIncludeRoute()) +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) + elif self.value() == 'true': + return queryset.exclude(categories__isnull=True) + return queryset + class MarkerAdmin(admin.ModelAdmin): """ Specialized the Point field. """ search_fields = ("name",) list_display = ('name', 'status', 'start_date', 'end_date') - list_filter = ('status', AreaMarkerListFilter, 'categories', 'start_date', - 'end_date') + list_filter = ('status', AreaMarkerListFilter, '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', |