summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/admin.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index a93f96d..521c5a2 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -39,6 +39,7 @@ except ImportError:
from chimere.forms import MarkerAdminForm, RouteAdminForm, AreaAdminForm,\
NewsAdminForm, CategoryAdminForm, ImporterAdminForm, OSMForm, \
PageAdminForm, PictureFileAdminForm, MultimediaFileAdminForm
+from chimere import models
from chimere.models import Category, Icon, SubCategory, Marker, \
PropertyModel, News, Route, Area, ColorTheme, Color, \
MultimediaFile, PictureFile, Importer, Layer, AreaLayers,\
@@ -176,13 +177,36 @@ class MultimediaInline(admin.TabularInline):
ordering = ('order',)
form = MultimediaFileAdminForm
+class AreaMarkerListFilter(admin.SimpleListFilter):
+ title = _('area')
+ parameter_name = 'area'
+
+ def lookups(self, request, model_admin):
+ return [(area.urn, area.name) for area in models.Area.objects.all()]
+
+ def queryset(self, request, queryset):
+ try:
+ area = models.Area.objects.get(urn=self.value())
+ except models.Area.DoesNotExist:
+ return queryset
+ return queryset.filter(area.getIncludeMarker())
+
+class AreaRouteListFilter(AreaMarkerListFilter):
+ def queryset(self, request, queryset):
+ try:
+ area = models.Area.objects.get(urn=self.value())
+ except models.Area.DoesNotExist:
+ return queryset
+ return queryset.filter(area.getIncludeRoute())
+
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', AreaMarkerListFilter, 'categories', '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',
@@ -255,14 +279,13 @@ class MarkerAdmin(admin.ModelAdmin):
)
return my_urls + urls
-
class RouteAdmin(MarkerAdmin):
"""
Specialized the Route field.
"""
search_fields = ("name",)
list_display = ('name', 'status')
- list_filter = ('status', 'categories')
+ list_filter = ('status', AreaRouteListFilter, 'categories')
exclude = ['height', 'width']
form = RouteAdminForm
readonly_fields = ('associated_file', 'ref_item', 'has_associated_marker')