diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-10-20 16:55:07 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-10-20 16:55:07 +0200 | 
| commit | 62912cc4ec70bf5ec9dc3183ce83e85ad72373fb (patch) | |
| tree | 5a0d3b6d1b8eb2b8f0eda6b65eff6bc30eaf5f47 /ishtar_common/admin.py | |
| parent | 0b5e3b51cbd842df2fb8c01f36636c6d040aae00 (diff) | |
| download | Ishtar-62912cc4ec70bf5ec9dc3183ce83e85ad72373fb.tar.bz2 Ishtar-62912cc4ec70bf5ec9dc3183ce83e85ad72373fb.zip | |
Fix automatic add of model on admin "add" page access
Diffstat (limited to 'ishtar_common/admin.py')
| -rw-r--r-- | ishtar_common/admin.py | 18 | 
1 files changed, 13 insertions, 5 deletions
| diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 7cb02e1b3..2df910ffd 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -123,6 +123,16 @@ class HistorizedObjectAdmin(admin.ModelAdmin):          obj.history_modifier = request.user          obj.save() +    def get_readonly_fields(self, request, obj=None): +        if obj:  # editing an existing object +            return tuple(self.readonly_fields or []) + tuple(['imports']) +        return self.readonly_fields + +    def get_exclude(self, request, obj=None): +        if not obj: +            return tuple(self.exclude or []) + tuple(['imports']) +        return self.exclude +  class MyGroupAdmin(GroupAdmin):      class Media: @@ -156,7 +166,6 @@ class OrganizationAdmin(HistorizedObjectAdmin):      list_filter = ("organization_type",)      search_fields = ('name',)      exclude = ('merge_key', 'merge_exclusion', 'merge_candidate', ) -    readonly_fields = HistorizedObjectAdmin.readonly_fields + ['imports']      model = models.Organization  admin_site.register(models.Organization, OrganizationAdmin) @@ -167,7 +176,6 @@ class PersonAdmin(HistorizedObjectAdmin):      list_filter = ("person_types",)      search_fields = ('name', 'surname', 'email', 'raw_name')      exclude = ('merge_key', 'merge_exclusion', 'merge_candidate', ) -    readonly_fields = HistorizedObjectAdmin.readonly_fields + ['imports']      form = make_ajax_form(models.Person, {'attached_to': 'organization'})      model = models.Person @@ -185,7 +193,7 @@ class AdminRelatedTownForm(forms.ModelForm):  class AdminTownForm(forms.ModelForm):      class Meta:          model = models.Town -        exclude = [] +        exclude = ['imports']      center = PointField(label=_(u"center"), required=False,                          widget=OSMWidget)      children = AutoCompleteSelectMultipleField('town', required=False, @@ -202,14 +210,14 @@ class TownParentInline(admin.TabularInline):  class TownAdmin(admin.ModelAdmin): +    model = models.Town      list_display = ['name', ]      search_fields = ['name'] +    readonly_fields = ['cached_label']      if settings.COUNTRY == 'fr':          list_display += ['numero_insee', 'departement', ]          search_fields += ['numero_insee', 'departement__label', ]          list_filter = ("departement",) -    readonly_fields = ['cached_label', 'imports'] -    model = models.Town      form = AdminTownForm      inlines = [TownParentInline] | 
