diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-09-09 11:07:01 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:20:58 +0100 |
commit | 3297cdadc31ea857ed51317081d7d3174af7dbc9 (patch) | |
tree | 206966ec7684d85811f7a8686fd781d3ab9d9fd4 /archaeological_finds | |
parent | 07e3e2e9c3da9f05634a45f65723504c229f2baa (diff) | |
download | Ishtar-3297cdadc31ea857ed51317081d7d3174af7dbc9.tar.bz2 Ishtar-3297cdadc31ea857ed51317081d7d3174af7dbc9.zip |
Migration to Django 2.2 - fixes
- remove django-ajax-select
- fix migrations
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/admin.py | 99 | ||||
-rw-r--r-- | archaeological_finds/lookups.py | 89 | ||||
-rw-r--r-- | archaeological_finds/migrations/0101_squashed.py | 8 |
3 files changed, 41 insertions, 155 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'] diff --git a/archaeological_finds/lookups.py b/archaeological_finds/lookups.py deleted file mode 100644 index 439bda3a4..000000000 --- a/archaeological_finds/lookups.py +++ /dev/null @@ -1,89 +0,0 @@ -from ajax_select import register - -from ishtar_common.lookups import LookupChannel, TypeLookupChannel - -from django.db.models import Q -from django.utils.encoding import force_text -from django.utils.html import escape - -from archaeological_finds import models - - -@register("base_find") -class BaseFindLookup(LookupChannel): - model = models.BaseFind - - def get_query(self, q, request): - query = Q() - for term in q.strip().split(" "): - subquery = Q(cache_complete_id__icontains=term) | Q(label__icontains=term) - query &= subquery - return self.model.objects.filter(query).order_by("cache_complete_id")[:20] - - def format_item_display(self, item): - return "<span class='ajax-label'>%s</span>" % item.cache_complete_id - - -@register("find") -class FindLookup(LookupChannel): - model = models.Find - - def get_query(self, q, request): - query = Q() - for term in q.strip().split(" "): - subquery = Q(cached_label__icontains=term) | Q( - base_finds__cache_complete_id__icontains=term - ) - query &= subquery - return self.model.objects.filter(query).order_by("cached_label")[:20] - - def format_item_display(self, item): - return "<span class='ajax-label'>%s</span>" % item.full_label - - def format_match(self, obj): - return escape(force_text(obj.full_label)) - - -@register("treatment") -class TreatmentLookup(LookupChannel): - model = models.Treatment - - def get_query(self, q, request): - query = Q() - for term in q.strip().split(" "): - subquery = Q(cached_label__icontains=term) - query &= subquery - return self.model.objects.filter(query).order_by("cached_label")[:20] - - def format_item_display(self, item): - return "<span class='ajax-label'>%s</span>" % item.cached_label - - -@register("treatment_file") -class TreatmentFileLookup(LookupChannel): - model = models.TreatmentFile - - def get_query(self, q, request): - query = Q() - for term in q.strip().split(" "): - subquery = Q(cached_label__icontains=term) - query &= subquery - return self.model.objects.filter(query).order_by("cached_label")[:20] - - def format_item_display(self, item): - return "<span class='ajax-label'>%s</span>" % item.cached_label - - -@register("material_type") -class MaterialTypeLookup(TypeLookupChannel): - model = models.MaterialType - - -@register("object_type") -class MaterialTypeLookup(TypeLookupChannel): - model = models.ObjectType - - -@register("functional_area") -class FunctionalAreaLookup(TypeLookupChannel): - model = models.FunctionalArea diff --git a/archaeological_finds/migrations/0101_squashed.py b/archaeological_finds/migrations/0101_squashed.py index 7f4df1aa9..ef74d0e9e 100644 --- a/archaeological_finds/migrations/0101_squashed.py +++ b/archaeological_finds/migrations/0101_squashed.py @@ -101,7 +101,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'Base find', 'verbose_name_plural': 'Base finds', - 'permissions': (('view_basefind', 'Can view all Base finds'), ('view_own_basefind', 'Can view own Base find'), ('add_own_basefind', 'Can add own Base find'), ('change_own_basefind', 'Can change own Base find'), ('delete_own_basefind', 'Can delete own Base find')), + 'permissions': (('view_own_basefind', 'Can view own Base find'), ('add_own_basefind', 'Can add own Base find'), ('change_own_basefind', 'Can change own Base find'), ('delete_own_basefind', 'Can delete own Base find')), }, bases=(ishtar_common.models.BulkUpdatedItem, ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models_common.FixAssociated, ishtar_common.models.CascasdeUpdate, ishtar_common.models.OwnPerms, ishtar_common.models.ValueGetter), @@ -234,7 +234,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Find', 'verbose_name_plural': 'Finds', 'ordering': ('cached_label',), - 'permissions': (('view_find', 'Can view all Finds'), ('view_own_find', 'Can view own Find'), ('add_own_find', 'Can add own Find'), ('change_own_find', 'Can change own Find'), ('delete_own_find', 'Can delete own Find')), + 'permissions': (('view_own_find', 'Can view own Find'), ('add_own_find', 'Can add own Find'), ('change_own_find', 'Can change own Find'), ('delete_own_find', 'Can delete own Find')), }, bases=(ishtar_common.models.BulkUpdatedItem, ishtar_common.models.ValueGetter, ishtar_common.models.DocumentItem, ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models_common.FixAssociated, ishtar_common.models.CascasdeUpdate, ishtar_common.models.ImageContainerModel, ishtar_common.models.OwnPerms, ishtar_common.models.MainItem), @@ -602,7 +602,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Treatment', 'verbose_name_plural': 'Treatments', 'ordering': ('-year', '-index', '-start_date'), - 'permissions': (('view_treatment', 'Can view all Treatments'), ('view_own_treatment', 'Can view own Treatment'), ('add_own_treatment', 'Can add own Treatment'), ('change_own_treatment', 'Can change own Treatment'), ('delete_own_treatment', 'Can delete own Treatment')), + 'permissions': (('view_own_treatment', 'Can view own Treatment'), ('add_own_treatment', 'Can add own Treatment'), ('change_own_treatment', 'Can change own Treatment'), ('delete_own_treatment', 'Can delete own Treatment')), }, bases=(ishtar_common.models.DashboardFormItem, ishtar_common.models.ValueGetter, @@ -663,7 +663,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Treatment request', 'verbose_name_plural': 'Treatment requests', 'ordering': ('cached_label',), - 'permissions': (('view_treatmentfile', 'Can view all Treatment requests'), ('view_own_treatmentfile', 'Can view own Treatment request'), ('add_own_treatmentfile', 'Can add own Treatment request'), ('change_own_treatmentfile', 'Can change own Treatment request'), ('delete_own_treatmentfile', 'Can delete own Treatment request')), + 'permissions': (('view_own_treatmentfile', 'Can view own Treatment request'), ('add_own_treatmentfile', 'Can add own Treatment request'), ('change_own_treatmentfile', 'Can change own Treatment request'), ('delete_own_treatmentfile', 'Can delete own Treatment request')), }, bases=(ishtar_common.models.DashboardFormItem, archaeological_operations.models.ClosedItem, |