summaryrefslogtreecommitdiff
path: root/archaeological_context_records/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-04 17:11:52 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-04 17:11:52 +0200
commitd0ce06a5899ee38a6c97a00c3f3512080a6169f8 (patch)
tree61235d58ad63a44cd66ddc0c2664bc3dd0ee3fa7 /archaeological_context_records/admin.py
parent985dc2b18a551ead39a12fa0ed2601b2bda1d6e4 (diff)
downloadIshtar-d0ce06a5899ee38a6c97a00c3f3512080a6169f8.tar.bz2
Ishtar-d0ce06a5899ee38a6c97a00c3f3512080a6169f8.zip
Admin context records: add context record lookup, improve admin forms
Diffstat (limited to 'archaeological_context_records/admin.py')
-rw-r--r--archaeological_context_records/admin.py48
1 files changed, 41 insertions, 7 deletions
diff --git a/archaeological_context_records/admin.py b/archaeological_context_records/admin.py
index 9b8cae4e2..f20a9aebf 100644
--- a/archaeological_context_records/admin.py
+++ b/archaeological_context_records/admin.py
@@ -17,7 +17,15 @@
# See the file COPYING for details.
+from ajax_select import make_ajax_form
+from ajax_select.fields import AutoCompleteSelectField, \
+ AutoCompleteSelectMultipleField
+
+from django import forms
+from django.conf import settings
from django.contrib import admin
+from django.contrib.gis.forms import PointField, PolygonField, OSMWidget
+from django.utils.translation import ugettext_lazy as _
from ishtar_common.apps import admin_site
from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin
@@ -26,21 +34,38 @@ import models
class DatingAdmin(admin.ModelAdmin):
- list_display = ('period', 'start_date', 'end_date', 'dating_type',
- 'quality')
+ list_display = ('period', 'context_records_lbl', 'finds_lbl')
list_filter = ("period", 'dating_type', 'quality')
model = models.Dating
+ search_fields = ['context_records__cached_label', 'period__label',
+ 'find__cached_label']
+ readonly_fields = ['context_records_lbl', 'finds_lbl']
admin_site.register(models.Dating, DatingAdmin)
+class AdminContextRecordForm(forms.ModelForm):
+ class Meta:
+ model = models.Operation
+ exclude = []
+ point = PointField(label=_(u"Point"), required=False,
+ widget=OSMWidget)
+ polygon = PolygonField(label=_(u"Polygon"), required=False,
+ widget=OSMWidget)
+ operation = AutoCompleteSelectField('operation')
+ parcel = AutoCompleteSelectField('parcel')
+
+
class ContextRecordAdmin(HistorizedObjectAdmin):
- list_display = ('label', 'length', 'width',
- 'thickness', 'depth')
- list_filter = ('documentations',)
- search_fields = ('label', 'parcel__operation__common_name',
- 'datings__period__label')
+ list_display = ('label', 'operation', 'parcel')
+ list_filter = ('unit',)
+ search_fields = ('label', 'parcel__operation__cached_label',
+ 'parcel__section', 'parcel__parcel_number')
model = models.ContextRecord
+ form = AdminContextRecordForm
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'imports', 'cached_label', 'datings'
+ ]
admin_site.register(models.ContextRecord, ContextRecordAdmin)
@@ -50,6 +75,10 @@ class ContextRecordSourceAdmin(admin.ModelAdmin):
list_filter = ('source_type',)
search_fields = ('title', )
model = models.ContextRecordSource
+ form = make_ajax_form(model, {
+ "context_record": 'context_record',
+ 'authors': 'author'
+ })
admin_site.register(models.ContextRecordSource, ContextRecordSourceAdmin)
@@ -57,6 +86,11 @@ admin_site.register(models.ContextRecordSource, ContextRecordSourceAdmin)
class RecordRelationsAdmin(admin.ModelAdmin):
list_display = ('left_record', 'relation_type', 'right_record')
list_filter = ('relation_type',)
+ model = models.RecordRelations
+ form = make_ajax_form(model, {
+ 'left_record': 'context_record',
+ 'right_record': 'context_record',
+ })
admin_site.register(models.RecordRelations, RecordRelationsAdmin)