diff options
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 |
commit | 054fdbdf7a1e5106725b8b5a36db99242cfa65c1 (patch) | |
tree | 1633b26e884feb1f29afedbb80cef7a6ecbdba2d /chimere/admin.py | |
parent | 8a5ba2650678ec22107a1a0a10650b6e0cc14683 (diff) | |
parent | d02ec4246813eb0787bf3ab54af1af9ce32bd376 (diff) | |
download | Chimè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.py | 27 |
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() |