summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
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
commit3d3d618fc627fc4568c826e11a296a5e75e2ebb9 (patch)
tree0e4c24d715b9d4a678eff9015f498b256a466c2b /chimere/admin.py
parentcf03b1eea89f4a7a0c0b03629a81a0d8d588a35f (diff)
parent5d2cac2cb5a03c8f55a2396e4c4ce13911a9149c (diff)
downloadChimè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.py22
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',