diff options
Diffstat (limited to 'archaeological_context_records/admin.py')
-rw-r--r-- | archaeological_context_records/admin.py | 63 |
1 files changed, 48 insertions, 15 deletions
diff --git a/archaeological_context_records/admin.py b/archaeological_context_records/admin.py index 567f50014..2733fa2ff 100644 --- a/archaeological_context_records/admin.py +++ b/archaeological_context_records/admin.py @@ -17,31 +17,55 @@ # See the file COPYING for details. +from ajax_select import make_ajax_form +from ajax_select.fields import AutoCompleteSelectField + +from django import forms 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 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) + -admin.site.register(models.Dating, DatingAdmin) +class AdminContextRecordForm(forms.ModelForm): + class Meta: + model = models.ContextRecord + exclude = [] + point_2d = 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) +admin_site.register(models.ContextRecord, ContextRecordAdmin) class ContextRecordSourceAdmin(admin.ModelAdmin): @@ -49,41 +73,50 @@ 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) +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) +admin_site.register(models.RecordRelations, RecordRelationsAdmin) class RelationTypeAdmin(admin.ModelAdmin): list_display = ('label', 'txt_idx', 'tiny_label', 'available', 'symmetrical', 'inverse_relation', 'order', 'comment') -admin.site.register(models.RelationType, RelationTypeAdmin) +admin_site.register(models.RelationType, RelationTypeAdmin) class UnitAdmin(admin.ModelAdmin): list_display = ['label', 'txt_idx', 'parent', 'available', 'order', 'comment'] -admin.site.register(models.Unit, UnitAdmin) +admin_site.register(models.Unit, UnitAdmin) class IdentificationTypeAdmin(admin.ModelAdmin): list_display = ['label', 'txt_idx', 'available', 'order', 'comment'] -admin.site.register(models.IdentificationType, IdentificationTypeAdmin) +admin_site.register(models.IdentificationType, IdentificationTypeAdmin) general_models = [ models.DatingType, models.DatingQuality, models.DocumentationType, models.ActivityType, models.ExcavationTechnicType] for model in general_models: - admin.site.register(model, GeneralTypeAdmin) + admin_site.register(model, GeneralTypeAdmin) |