summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commitdf1f9c87d8267b7702e13038b57eb6c78e9770e2 (patch)
treefcfb6a9cd9d20da4ed0943a90edf475dfaf4422a /ishtar_common
parent3936fb6fcd9beb96e19b975c75aeec9dcd0ae266 (diff)
downloadIshtar-df1f9c87d8267b7702e13038b57eb6c78e9770e2.tar.bz2
Ishtar-df1f9c87d8267b7702e13038b57eb6c78e9770e2.zip
Town relationship: manage in admin (refs #3753)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/admin.py25
-rw-r--r--ishtar_common/models.py3
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')