summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
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
commit8631cdccea4ae3564a598736652d65a8f0b9f85b (patch)
tree9eb06f689fb6c642b7c341e741728f5c0ab0ab71 /chimere/admin.py
parent786141bc3d411fdf5b5529fa4bc37f454e52a82d (diff)
downloadChimè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.py11
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():