summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
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
commit62912cc4ec70bf5ec9dc3183ce83e85ad72373fb (patch)
tree5a0d3b6d1b8eb2b8f0eda6b65eff6bc30eaf5f47 /ishtar_common/admin.py
parent0b5e3b51cbd842df2fb8c01f36636c6d040aae00 (diff)
downloadIshtar-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.py18
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]