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 | 6044b3522b2511eae088a40338115c902a9b0f82 (patch) | |
| tree | 0e342a579be32b7d2b276dc75b7db7876a569739 /archaeological_operations/admin.py | |
| parent | bcfad74d5033491a65f8310c258cb0163242b282 (diff) | |
| download | Ishtar-6044b3522b2511eae088a40338115c902a9b0f82.tar.bz2 Ishtar-6044b3522b2511eae088a40338115c902a9b0f82.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) | 
