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 | 11b43326d43d43bfdfb6e900ecca1016d87b9482 (patch) | |
tree | fcfb6a9cd9d20da4ed0943a90edf475dfaf4422a | |
parent | aaccdce8e7ebe6bc3a14e180c765a00dfee33991 (diff) | |
download | Ishtar-11b43326d43d43bfdfb6e900ecca1016d87b9482.tar.bz2 Ishtar-11b43326d43d43bfdfb6e900ecca1016d87b9482.zip |
Town relationship: manage in admin (refs #3753)
-rw-r--r-- | ishtar_common/admin.py | 25 | ||||
-rw-r--r-- | ishtar_common/models.py | 3 |
2 files changed, 26 insertions, 2 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) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 3c2972cab..9629ae4dd 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2577,7 +2577,8 @@ class Town(Imported, models.Model): blank=True) year = models.IntegerField( _("Year of creation"), null=True, blank=True, - help_text=_("If not filled considered as the older town known.")) + help_text=_(u"Filling this field is relevant to distinguish old towns " + u"to new towns.")) children = models.ManyToManyField( 'Town', verbose_name=_(u"Town children"), blank=True, related_name='parents') |