summaryrefslogtreecommitdiff
path: root/archaeological_context_records/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/admin.py')
-rw-r--r--archaeological_context_records/admin.py63
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)