diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-08-03 18:31:09 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-08-03 18:54:02 +0200 |
commit | 8631cdccea4ae3564a598736652d65a8f0b9f85b (patch) | |
tree | 9eb06f689fb6c642b7c341e741728f5c0ab0ab71 /chimere/admin.py | |
parent | 786141bc3d411fdf5b5529fa4bc37f454e52a82d (diff) | |
download | Chimère-8631cdccea4ae3564a598736652d65a8f0b9f85b.tar.bz2 Chimère-8631cdccea4ae3564a598736652d65a8f0b9f85b.zip |
Change mean populating dynamically forms with properties in order to allow tests
Diffstat (limited to 'chimere/admin.py')
-rw-r--r-- | chimere/admin.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/chimere/admin.py b/chimere/admin.py index ce1f2b9..a30f0df 100644 --- a/chimere/admin.py +++ b/chimere/admin.py @@ -26,6 +26,7 @@ from copy import deepcopy from django.conf import settings from django.contrib import admin, messages from django.contrib.admin import SimpleListFilter +from django.contrib.admin.util import flatten_fieldsets from django.contrib.auth.admin import UserAdmin as VanillaUserAdmin from django.contrib.auth.models import User from django.core.exceptions import ObjectDoesNotExist @@ -341,18 +342,20 @@ class MarkerAdmin(admin.ModelAdmin): inlines = [MultimediaInline, PictureInline] has_properties = True - def __init__(self, *args, **kwargs): + def get_fieldsets(self, request, obj=None): """ Manage properties in fieldsets. """ + fieldsets = super(MarkerAdmin, self).get_fieldsets(request, obj) + newfieldsets = list(fieldsets) if self.has_properties: - main_fields = self.fieldsets[0][1]['fields'] + main_fields = newfieldsets[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) - super(MarkerAdmin, self).__init__(*args, **kwargs) + return newfieldsets def queryset(self, request): qs = self.model._default_manager.get_query_set() @@ -381,6 +384,8 @@ class MarkerAdmin(admin.ModelAdmin): return my_urls + urls def get_form(self, request, obj=None, **kwargs): + # remove dynamic field to prevent admin check + kwargs['fields'] = flatten_fieldsets(self.declared_fieldsets) form = super(MarkerAdmin, self).get_form(request, obj, **kwargs) q = request.user.subcategory_limit_to if not q.count(): |