diff options
Diffstat (limited to 'archaeological_finds/admin.py')
-rw-r--r-- | archaeological_finds/admin.py | 99 |
1 files changed, 37 insertions, 62 deletions
diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py index 717422573..f56c108d8 100644 --- a/archaeological_finds/admin.py +++ b/archaeological_finds/admin.py @@ -17,10 +17,6 @@ # 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, MultiPolygonField, \ @@ -43,7 +39,6 @@ class AdminBaseFindForm(forms.ModelForm): widget=OSMWidget) multi_polygon = MultiPolygonField(label=_("Multi polygon"), required=False, widget=OSMWidget) - context_record = AutoCompleteSelectField('context_record') class BaseFindAdmin(HistorizedObjectAdmin): @@ -51,6 +46,7 @@ class BaseFindAdmin(HistorizedObjectAdmin): search_fields = ('label', 'cache_complete_id',) model = models.BaseFind form = AdminBaseFindForm + autocomplete_fields = ("context_record",) readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'cache_short_id', 'cache_complete_id', ] @@ -66,12 +62,12 @@ class FindBasketAdmin(admin.ModelAdmin): list_display = ["label", "user"] search_fields = ('label', 'user__person__raw_name',) readonly_fields = ["search_vector"] - form = make_ajax_form(models.FindBasket, { - 'user': 'ishtaruser', - 'shared_with': 'ishtaruser', - 'shared_write_with': 'ishtaruser', - 'items': 'find', - }) + autocomplete_fields = ( + 'user', + 'shared_with', + 'shared_write_with', + 'items', + ) admin_site.register(models.FindBasket, FindBasketAdmin) @@ -81,22 +77,19 @@ class FindAdmin(HistorizedObjectAdmin): 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") + search_fields = ('cached_label', "base_finds__cache_complete_id") model = models.Find - ajax_form_dict = HistorizedObjectAdmin.AJAX_FORM_DICT.copy() - ajax_form_dict.update({ - 'base_finds': 'base_find', - 'container': 'container', - 'container_ref': 'container', - 'material_types': 'material_type', - 'upstream_treatment': 'treatment', - 'downstream_treatment': 'treatment', - 'treatments': 'treatment', - 'main_image': 'document', - 'documents': 'document', - }) - form = make_ajax_form(model, ajax_form_dict) + autocomplete_fields = HistorizedObjectAdmin.autocomplete_fields + [ + 'base_finds', + 'container', + 'container_ref', + 'material_types', + 'upstream_treatment', + 'downstream_treatment', + 'treatments', + 'main_image', + 'documents', + ] readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'datings', 'cached_label' ] @@ -109,10 +102,7 @@ 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', - }) + autocomplete_fields = ("find", "person") readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'administrative_act'] @@ -123,31 +113,24 @@ class PropertyAdmin(HistorizedObjectAdmin): admin_site.register(models.Property, PropertyAdmin) -class AdminTreatmentForm(forms.ModelForm): - class Meta: - model = models.Treatment - exclude = [] - person = AutoCompleteSelectField('person', required=False) - organization = AutoCompleteSelectField('organization', required=False) - file = AutoCompleteSelectField('treatment_file', required=False) - location = AutoCompleteSelectField("warehouse", required=False) - container = AutoCompleteSelectField("container", required=False) - scientific_monitoring_manager = AutoCompleteSelectField("person", - required=False) - # finds = AutoCompleteSelectMultipleField("find", required=False) - lock_user = AutoCompleteSelectField("user", required=False) - - class TreatmentAdmin(HistorizedObjectAdmin): 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 = AdminTreatmentForm readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'cached_label', 'downstream_lbl', 'upstream_lbl', ] exclude = ["documents", "main_image"] + search_fields = ("cached_label",) + autocomplete_fields = HistorizedObjectAdmin.autocomplete_fields + [ + "person", + "organization", + "file", + "location", + "container", + "scientific_monitoring_manager", + ] def has_add_permission(self, request): return False @@ -164,13 +147,11 @@ class TreatmentFileAdmin(HistorizedObjectAdmin): 'applicant__raw_name', 'applicant_organisation__name', 'cached_label') model = models.TreatmentFile - ajax_form_dict = HistorizedObjectAdmin.AJAX_FORM_DICT.copy() - ajax_form_dict.update({ - 'in_charge': 'person', - 'applicant': 'person', - 'applicant_organisation': 'organization', - }) - form = make_ajax_form(model, ajax_form_dict) + autocomplete_fields = HistorizedObjectAdmin.autocomplete_fields + [ + 'in_charge', + 'applicant', + 'applicant_organisation', + ] readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'cached_label', ] @@ -182,9 +163,7 @@ admin_site.register(models.TreatmentFile, TreatmentFileAdmin) class ObjectTypeAdmin(GeneralTypeAdmin): model = models.ObjectType - form = make_ajax_form(model, { - 'parent': 'object_type', - }) + autocomplete_fields = ("parent",) admin_site.register(models.ObjectType, ObjectTypeAdmin) @@ -192,9 +171,7 @@ admin_site.register(models.ObjectType, ObjectTypeAdmin) class FunctionalAreaAdmin(GeneralTypeAdmin): model = models.FunctionalArea - form = make_ajax_form(model, { - 'parent': 'functional_area', - }) + autocomplete_fields = ("parent",) admin_site.register(models.FunctionalArea, FunctionalAreaAdmin) @@ -203,9 +180,7 @@ admin_site.register(models.FunctionalArea, FunctionalAreaAdmin) class MaterialTypeAdmin(GeneralTypeAdmin): search_fields = ('label', 'parent__label', 'comment',) model = models.MaterialType - form = make_ajax_form(model, { - 'parent': 'material_type', - }) + autocomplete_fields = ("parent",) extra_list_display = ['recommendation'] |