summaryrefslogtreecommitdiff
path: root/archaeological_operations/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/admin.py')
-rw-r--r--archaeological_operations/admin.py55
1 files changed, 44 insertions, 11 deletions
diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py
index 068758200..3cfd91d5e 100644
--- a/archaeological_operations/admin.py
+++ b/archaeological_operations/admin.py
@@ -18,9 +18,14 @@
# 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, MultiPolygonField, OSMWidget
+from django.utils.translation import ugettext_lazy as _
from ishtar_common.apps import admin_site
from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin
@@ -33,13 +38,13 @@ class AdministrativeActAdmin(HistorizedObjectAdmin):
'act_type')
list_filter = ('act_type',)
search_fields = ('year', 'index')
- readonly_fields = ('in_charge', 'operator', 'scientist', 'signatory',
- 'associated_file', 'imports',
- 'departments_label', 'towns_label',
- 'history_modifier', 'history_creator')
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'in_charge', 'operator', 'scientist', 'signatory', 'associated_file',
+ 'imports', 'departments_label', 'towns_label']
model = models.AdministrativeAct
form = make_ajax_form(
- models.AdministrativeAct, {'operation': 'operation'})
+ models.AdministrativeAct, {'operation': 'operation'}
+ )
admin_site.register(models.AdministrativeAct, AdministrativeActAdmin)
@@ -70,16 +75,38 @@ class ArchaeologicalSiteAdmin(HistorizedObjectAdmin):
admin_site.register(models.ArchaeologicalSite, ArchaeologicalSiteAdmin)
+class AdminOperationForm(forms.ModelForm):
+ class Meta:
+ model = models.Operation
+ exclude = []
+ point = PointField(label=_(u"Point"), required=False,
+ widget=OSMWidget)
+ multi_polygon = MultiPolygonField(label=_(u"Multi polygon"), required=False,
+ widget=OSMWidget)
+ in_charge = AutoCompleteSelectField('person', required=False)
+ scientist = AutoCompleteSelectField('person', required=False)
+ associated_file = AutoCompleteSelectField('file', required=False)
+ operator = AutoCompleteSelectField('organization', required=False)
+ collaborators = AutoCompleteSelectMultipleField('person', required=False)
+ towns = AutoCompleteSelectMultipleField('town', required=False)
+ archaeological_sites = AutoCompleteSelectMultipleField(
+ 'archaeological_site', required=False)
+ if settings.COUNTRY == 'fr':
+ cira_rapporteur = AutoCompleteSelectField('person', required=False)
+
+
class OperationAdmin(HistorizedObjectAdmin):
- list_display = ['year', 'operation_code', 'start_date',
- 'excavation_end_date', 'end_date',
- 'operation_type']
- list_filter = ("year", "operation_type",)
- search_fields = ['towns__name', 'operation_code']
+ list_display = ['year', 'operation_code',
+ 'operation_type', 'common_name']
+ list_filter = ("operation_type", "year",)
+ search_fields = ['towns__name', 'cached_label']
if settings.COUNTRY == 'fr':
- list_display += ['code_patriarche']
+ list_display.insert(2, 'code_patriarche')
search_fields += ['code_patriarche']
model = models.Operation
+ readonly_fields = HistorizedObjectAdmin.readonly_fields + [
+ 'imports', 'cached_label']
+ form = AdminOperationForm
admin_site.register(models.Operation, OperationAdmin)
@@ -108,6 +135,12 @@ admin_site.register(models.Parcel, ParcelAdmin)
class RecordRelationsAdmin(admin.ModelAdmin):
list_display = ('left_record', 'relation_type', 'right_record')
list_filter = ('relation_type',)
+ model = models.RecordRelations
+ search_fields = ['left_record__cached_label',
+ 'right_record__cached_label']
+ form = make_ajax_form(
+ model, {'left_record': 'operation',
+ 'right_record': 'operation'})
admin_site.register(models.RecordRelations, RecordRelationsAdmin)