diff options
Diffstat (limited to 'archaeological_finds/admin.py')
| -rw-r--r-- | archaeological_finds/admin.py | 99 | 
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) | 
