summaryrefslogtreecommitdiff
path: root/archaeological_finds/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-04 20:03:40 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-04 20:03:40 +0200
commit871f45bac5b1f7ccbdb167fe96c67bc16db4420b (patch)
tree8c7cc809273250ba9e2c06389cf05add162edd61 /archaeological_finds/admin.py
parent70f0ee9c5d7e5250ba5af7469158a8ff04dd4830 (diff)
downloadIshtar-871f45bac5b1f7ccbdb167fe96c67bc16db4420b.tar.bz2
Ishtar-871f45bac5b1f7ccbdb167fe96c67bc16db4420b.zip
Admin: improve forms, lists for finds, base finds, treatements, treatment requests, etc.
Diffstat (limited to 'archaeological_finds/admin.py')
-rw-r--r--archaeological_finds/admin.py99
1 files changed, 89 insertions, 10 deletions
diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py
index 9727e9d0e..733d5ba5f 100644
--- a/archaeological_finds/admin.py
+++ b/archaeological_finds/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.contrib import admin
+from django.contrib.gis.forms import PointField, PolygonField, \
+ LineStringField, OSMWidget
+from django.utils.translation import ugettext_lazy as _
from ishtar_common.apps import admin_site
from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin
@@ -25,19 +33,45 @@ from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin
import models
+class AdminBaseFindForm(forms.ModelForm):
+ class Meta:
+ model = models.BaseFind
+ exclude = []
+ point_2d = PointField(label=_(u"Point (2D)"), required=False,
+ widget=OSMWidget)
+ line = LineStringField(label=_(u"Line"), required=False,
+ widget=OSMWidget)
+ polygon = PolygonField(label=_(u"Polygon"), required=False,
+ widget=OSMWidget)
+ context_record = AutoCompleteSelectField('context_record')
+
+
class BaseFindAdmin(HistorizedObjectAdmin):
- list_display = ('label', 'context_record', 'batch')
+ list_display = ('label', 'context_record', 'index')
search_fields = ('label', 'context_record__parcel__operation__name',)
model = models.BaseFind
+ form = AdminBaseFindForm
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'cache_short_id', 'cache_complete_id', 'imports'
+ ]
admin_site.register(models.BaseFind, BaseFindAdmin)
class FindAdmin(HistorizedObjectAdmin):
- list_display = ('label', 'dating', 'volume', 'weight',
- 'find_number',)
- search_fields = ('label', "datings__period__label")
+ list_display = ('label', 'operations_lbl', 'context_records_lbl', 'index',
+ 'dating', 'materials')
+ list_filter = ('datings__period', 'material_types')
+ search_fields = ('label', "base_finds__cache_complete_id",
+ "base_finds__context_record__operation__cached_label")
model = models.Find
+ form = make_ajax_form(model, {
+ 'base_finds': 'base_find',
+ 'container': 'container'
+ })
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'imports', 'datings', 'cached_label'
+ ]
admin_site.register(models.Find, FindAdmin)
@@ -47,38 +81,83 @@ class FindSourceAdmin(admin.ModelAdmin):
list_filter = ('source_type',)
search_fields = ('title', )
model = models.FindSource
+ form = make_ajax_form(model, {
+ 'authors': 'author',
+ 'find': 'find'
+ })
admin_site.register(models.FindSource, FindSourceAdmin)
-class PropertyAdmin(admin.ModelAdmin):
+class PropertyAdmin(HistorizedObjectAdmin):
list_display = ['find', 'person', 'start_date', 'end_date']
search_fields = ('find__label', 'person__name')
model = models.Property
+ form = make_ajax_form(model, {
+ 'find': 'find',
+ 'person': 'person',
+ })
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'administrative_act', 'imports', ]
+
+ def has_add_permission(self, request):
+ return False
admin_site.register(models.Property, PropertyAdmin)
class TreatmentAdmin(HistorizedObjectAdmin):
- list_display = ('location', 'treatment_types_lbl', 'container', 'person')
+ list_display = ('year', 'index', 'label','treatment_types_lbl', 'location',
+ 'downstream_lbl', 'upstream_lbl', 'container', 'person')
+ list_filter = ('treatment_types', 'treatment_state', 'year')
model = models.Treatment
+ form = make_ajax_form(model, {
+ 'person': 'person',
+ 'organization': 'organization',
+ 'file': 'treatment_file',
+ 'location': 'warehouse',
+ 'container': 'container',
+ })
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'imports', 'cached_label', 'downstream_lbl', 'upstream_lbl'
+ ]
+
+ def has_add_permission(self, request):
+ return False
admin_site.register(models.Treatment, TreatmentAdmin)
class TreatmentFileAdmin(HistorizedObjectAdmin):
- list_display = ('year', 'index', 'name', 'internal_reference')
- search_fields = ('cached_label',)
+ list_display = ('type', 'year', 'index', 'name',
+ 'applicant', 'in_charge', 'internal_reference')
+ list_filter = ('type', 'year')
+ search_fields = ('name', 'applicant__name', 'applicant__surname',
+ 'applicant__raw_name', 'applicant_organisation__name',
+ 'cached_label')
model = models.TreatmentFile
+ form = make_ajax_form(model,{
+ 'in_charge': 'person',
+ 'applicant': 'person',
+ 'applicant_organisation': 'organization',
+ })
+ exclude = ['imports']
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'cached_label',
+ ]
admin_site.register(models.TreatmentFile, TreatmentFileAdmin)
class TreatmentSourceAdmin(admin.ModelAdmin):
- list_display = ('treatment', 'title', 'source_type',)
+ list_display = ('title', 'treatment', 'source_type',)
list_filter = ('source_type',)
- search_fields = ('title',)
+ search_fields = ('title', 'treatment__cached_label')
model = models.TreatmentSource
+ form = make_ajax_form(model, {
+ 'treatment': 'treatment',
+ 'authors': 'author'
+ })
admin_site.register(models.TreatmentSource, TreatmentSourceAdmin)