summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/admin.py')
-rw-r--r--chimere/admin.py32
1 files changed, 27 insertions, 5 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index e94f22f..60d1141 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -40,6 +40,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,\
@@ -177,6 +178,28 @@ 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 HasCategoriesListFilter(SimpleListFilter):
title = _('Has categories')
parameter_name = 'has_category'
@@ -200,8 +223,8 @@ class MarkerAdmin(admin.ModelAdmin):
"""
search_fields = ("name",)
list_display = ('name', 'status', 'start_date', 'end_date')
- list_filter = ('status', 'categories', HasCategoriesListFilter,
- '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',
@@ -211,7 +234,7 @@ class MarkerAdmin(admin.ModelAdmin):
form = MarkerAdminForm
fieldsets = ((None, {
'fields': ['point', 'name', 'status', 'categories',
- 'description', 'start_date', 'end_date']
+ 'description', 'keywords', 'start_date', 'end_date']
}),
(_(u"Submitter"), {
'classes':('collapse',),
@@ -274,14 +297,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')