diff options
Diffstat (limited to 'chimere/admin.py')
-rw-r--r-- | chimere/admin.py | 32 |
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') |