diff options
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():  | 
