diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-10-16 13:16:43 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-10-16 13:16:43 +0200 |
commit | df1f9c87d8267b7702e13038b57eb6c78e9770e2 (patch) | |
tree | fcfb6a9cd9d20da4ed0943a90edf475dfaf4422a /ishtar_common/admin.py | |
parent | 3936fb6fcd9beb96e19b975c75aeec9dcd0ae266 (diff) | |
download | Ishtar-df1f9c87d8267b7702e13038b57eb6c78e9770e2.tar.bz2 Ishtar-df1f9c87d8267b7702e13038b57eb6c78e9770e2.zip |
Town relationship: manage in admin (refs #3753)
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r-- | ishtar_common/admin.py | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index cec61a51e..fbd9f4d29 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -20,6 +20,8 @@ import csv from ajax_select import make_ajax_form +from ajax_select.fields import AutoCompleteSelectField, \ + AutoCompleteSelectMultipleField from django.conf import settings from django.contrib import admin @@ -171,12 +173,31 @@ class PersonAdmin(HistorizedObjectAdmin): admin_site.register(models.Person, PersonAdmin) +class AdminRelatedTownForm(forms.ModelForm): + class Meta: + model = models.Town.children.through + exclude = [] + from_town = AutoCompleteSelectField( + 'town', required=True, label=_(u"Parent")) + + class AdminTownForm(forms.ModelForm): class Meta: model = models.Town exclude = [] center = PointField(label=_(u"center"), required=False, widget=OSMWidget) + children = AutoCompleteSelectMultipleField('town', required=False, + label=_(u"Town children")) + + +class TownParentInline(admin.TabularInline): + model = models.Town.children.through + fk_name = 'to_town' + form = AdminRelatedTownForm + verbose_name = _(u"Parent") + verbose_name_plural = _(u"Parents") + extra = 1 class TownAdmin(admin.ModelAdmin): @@ -186,9 +207,11 @@ class TownAdmin(admin.ModelAdmin): list_display += ['numero_insee', 'departement', ] search_fields += ['numero_insee', 'departement__label', ] list_filter = ("departement",) - readonly_fields = ['imports'] + readonly_fields = ['cached_label', 'imports'] model = models.Town form = AdminTownForm + inlines = [TownParentInline] + admin_site.register(models.Town, TownAdmin) |