summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-03-14 18:48:00 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-03-14 18:48:00 +0100
commit054fdbdf7a1e5106725b8b5a36db99242cfa65c1 (patch)
tree1633b26e884feb1f29afedbb80cef7a6ecbdba2d /chimere/admin.py
parent8a5ba2650678ec22107a1a0a10650b6e0cc14683 (diff)
parentd02ec4246813eb0787bf3ab54af1af9ce32bd376 (diff)
downloadChimère-054fdbdf7a1e5106725b8b5a36db99242cfa65c1.tar.bz2
Chimère-054fdbdf7a1e5106725b8b5a36db99242cfa65c1.zip
Merge branch 'master' into saclay
Conflicts: chimere/locale/fr/LC_MESSAGES/django.po chimere/static/chimere/css/styles.css chimere/static/chimere/js/jquery.chimere.js chimere/templates/chimere/detail.html chimere/templatetags/chimere_tags.py chimere/utils.py chimere/views.py example_project/settings.py
Diffstat (limited to 'chimere/admin.py')
-rw-r--r--chimere/admin.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index 3c24de0..c9107a5 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2008-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2008-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
@@ -97,7 +97,8 @@ export_to_csv.short_description = _(u"Export to CSV")
def managed_modified(modeladmin, request, queryset):
# not very clean... There is must be a better way to do that
redirect_url = request.get_full_path().split('admin_modification')[0]
- if queryset.count() != 1:
+ if queryset.count() != 1 and len(set([i.ref_item or i
+ for i in queryset.all()])) != 1:
messages.error(request, _(u"Only one item can be managed at a "
u"time."))
return HttpResponseRedirect(redirect_url)
@@ -105,8 +106,9 @@ def managed_modified(modeladmin, request, queryset):
item = queryset.all()[0]
if not item.ref_item or item.ref_item == item:
try:
- item = modeladmin.model.objects.get(ref_item=item)
- except ObjectDoesNotExist:
+ item = modeladmin.model.objects.filter(ref_item=item
+ ).exclude(pk=item.pk).all()[0]
+ except IndexError:
messages.error(request, _(u"No modified item associated "
u"to the selected item."))
return HttpResponseRedirect(redirect_url)
@@ -179,8 +181,8 @@ class MarkerAdmin(admin.ModelAdmin):
Specialized the Point field.
"""
search_fields = ("name",)
- list_display = ('name', 'status')
- list_filter = ('status', 'categories')
+ list_display = ('name', 'status', 'start_date', 'end_date')
+ list_filter = ('status', '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',
@@ -208,17 +210,19 @@ class MarkerAdmin(admin.ModelAdmin):
}),
)
inlines = [MultimediaInline, PictureInline]
+ has_properties = True
def __init__(self, *args, **kwargs):
"""
Manage properties in fieldsets.
"""
- main_fields = self.fieldsets[0][1]['fields']
- for pm in PropertyModel.objects.filter(available=True).order_by('order'
+ if self.has_properties:
+ main_fields = self.fieldsets[0][1]['fields']
+ for pm in PropertyModel.objects.filter(available=True).order_by('order'
).all():
- pm_name = pm.getNamedId()
- if pm_name not in main_fields:
- main_fields.append(pm_name)
+ pm_name = pm.getNamedId()
+ if pm_name not in main_fields:
+ main_fields.append(pm_name)
super(MarkerAdmin, self).__init__(*args, **kwargs)
def queryset(self, request):
@@ -284,6 +288,7 @@ class RouteAdmin(MarkerAdmin):
}),
)
inlines = []
+ has_properties = False
def queryset(self, request):
qs = self.model._default_manager.get_query_set()