diff options
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 |
commit | d0ce06a5899ee38a6c97a00c3f3512080a6169f8 (patch) | |
tree | 61235d58ad63a44cd66ddc0c2664bc3dd0ee3fa7 /archaeological_context_records/admin.py | |
parent | 985dc2b18a551ead39a12fa0ed2601b2bda1d6e4 (diff) | |
download | Ishtar-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.py | 48 |
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) |