summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-03 18:35:50 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-03 18:35:50 +0200
commitd21ea8d69b5d1eccca7d971c70de193eaea575cb (patch)
tree981e5783944ac3d88cc29619eb5edb0ba0d22e04
parent5152dec20d1ad67fc3cd8d0013b2f3b0bb46a271 (diff)
downloadIshtar-d21ea8d69b5d1eccca7d971c70de193eaea575cb.tar.bz2
Ishtar-d21ea8d69b5d1eccca7d971c70de193eaea575cb.zip
Admin: improve operation's models forms
-rw-r--r--archaeological_operations/admin.py17
-rw-r--r--archaeological_operations/models.py2
2 files changed, 18 insertions, 1 deletions
diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py
index 85df96f6e..068758200 100644
--- a/archaeological_operations/admin.py
+++ b/archaeological_operations/admin.py
@@ -17,6 +17,8 @@
# See the file COPYING for details.
+from ajax_select import make_ajax_form
+
from django.conf import settings
from django.contrib import admin
@@ -36,6 +38,8 @@ class AdministrativeActAdmin(HistorizedObjectAdmin):
'departments_label', 'towns_label',
'history_modifier', 'history_creator')
model = models.AdministrativeAct
+ form = make_ajax_form(
+ models.AdministrativeAct, {'operation': 'operation'})
admin_site.register(models.AdministrativeAct, AdministrativeActAdmin)
@@ -49,10 +53,19 @@ class PeriodAdmin(admin.ModelAdmin):
admin_site.register(models.Period, PeriodAdmin)
+class OperationInline(admin.TabularInline):
+ model = models.Operation.archaeological_sites.through
+ form = make_ajax_form(
+ model, {'operation': 'operation'})
+ extra = 1
+
+
class ArchaeologicalSiteAdmin(HistorizedObjectAdmin):
list_display = ('name', 'reference')
search_fields = ('name', 'reference')
model = models.ArchaeologicalSite
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + ['imports']
+ inlines = [OperationInline]
admin_site.register(models.ArchaeologicalSite, ArchaeologicalSiteAdmin)
@@ -76,6 +89,10 @@ class OperationSourceAdmin(admin.ModelAdmin):
list_filter = ('source_type',)
search_fields = ('title', 'operation__common_name')
model = models.OperationSource
+ form = make_ajax_form(
+ model, {'operation': 'operation',
+ 'authors': 'author'}
+ )
admin_site.register(models.OperationSource, OperationSourceAdmin)
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 60e9ef98e..1249fcc05 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -343,7 +343,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,
null=True, blank=True)
archaeological_sites = models.ManyToManyField(
ArchaeologicalSite, verbose_name=_(u"Archaeological sites"),
- blank=True)
+ blank=True, related_name='operations')
virtual_operation = models.BooleanField(
_(u"Virtual operation"),
default=False, help_text=_(