diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-03 20:56:56 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-03 20:56:56 +0200 |
commit | 135341351687453f5a36cb36045ad80b2de3c538 (patch) | |
tree | 0e342a579be32b7d2b276dc75b7db7876a569739 /archaeological_operations/admin.py | |
parent | d21ea8d69b5d1eccca7d971c70de193eaea575cb (diff) | |
download | Ishtar-135341351687453f5a36cb36045ad80b2de3c538.tar.bz2 Ishtar-135341351687453f5a36cb36045ad80b2de3c538.zip |
Admin: improve operation form
Diffstat (limited to 'archaeological_operations/admin.py')
-rw-r--r-- | archaeological_operations/admin.py | 55 |
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) |