summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-01-30 17:10:03 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-01-30 17:10:03 +0100
commit78e45b506e70114a98a05157aff9fd33c0b9703a (patch)
tree026e12da3a2464ac7fb5a3ffa32f0ef720d1983b /chimere/admin.py
parent207f3f59280d23dbee3d7192e992c082b3008ad8 (diff)
downloadChimère-78e45b506e70114a98a05157aff9fd33c0b9703a.tar.bz2
Chimère-78e45b506e70114a98a05157aff9fd33c0b9703a.zip
Fix modification link in admin
Diffstat (limited to 'chimere/admin.py')
-rw-r--r--chimere/admin.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/chimere/admin.py b/chimere/admin.py
index 0f17d30..4b83878 100644
--- a/chimere/admin.py
+++ b/chimere/admin.py
@@ -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)