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 | dc37c72d10b5358ef692e73f671c15c083693c05 (patch) | |
tree | 206966ec7684d85811f7a8686fd781d3ab9d9fd4 /archaeological_operations | |
parent | e046ed00e790fbb82b43de9404d8ca3955c8de2f (diff) | |
download | Ishtar-dc37c72d10b5358ef692e73f671c15c083693c05.tar.bz2 Ishtar-dc37c72d10b5358ef692e73f671c15c083693c05.zip |
Migration to Django 2.2 - fixes
- remove django-ajax-select
- fix migrations
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/admin.py | 73 | ||||
-rw-r--r-- | archaeological_operations/lookups.py | 82 | ||||
-rw-r--r-- | archaeological_operations/migrations/0101_squashed.py | 6 |
3 files changed, 32 insertions, 129 deletions
diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py index 0650d4711..68264b97e 100644 --- a/archaeological_operations/admin.py +++ b/archaeological_operations/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.conf import settings from django.contrib import admin @@ -43,9 +39,7 @@ class AdministrativeActAdmin(HistorizedObjectAdmin): 'in_charge', 'operator', 'scientist', 'signatory', 'associated_file', 'departments_label', 'towns_label'] model = models.AdministrativeAct - form = make_ajax_form( - models.AdministrativeAct, {'operation': 'operation'} - ) + autocomplete_fields = ("operation",) admin_site.register(models.AdministrativeAct, AdministrativeActAdmin) @@ -63,8 +57,7 @@ admin_site.register(models.Period, PeriodAdmin) class OperationInline(admin.TabularInline): model = models.Operation.archaeological_sites.through - form = make_ajax_form( - model, {'operation': 'operation'}) + autocomplete_fields = ("operation",) extra = 1 @@ -73,12 +66,7 @@ class ArchaeologicalSiteAdmin(HistorizedObjectAdmin): search_fields = ('name', 'reference') model = models.ArchaeologicalSite inlines = [OperationInline] - ajax_form_dict = HistorizedObjectAdmin.AJAX_FORM_DICT.copy() - ajax_form_dict.update({ - 'towns': 'town', - }) - form = make_ajax_form( - models.ArchaeologicalSite, ajax_form_dict) + autocomplete_fields = HistorizedObjectAdmin.autocomplete_fields + ["towns"] exclude = ["documents", "main_image"] @@ -87,8 +75,7 @@ admin_site.register(models.ArchaeologicalSite, ArchaeologicalSiteAdmin) class ArchaeologicalSiteInline(admin.TabularInline): model = models.Operation.archaeological_sites.through - form = make_ajax_form( - model, {'archaeologicalsite': 'archaeological_site'}) + autocomplete_fields = ["archaeologicalsite"] extra = 1 @@ -100,17 +87,6 @@ class AdminOperationForm(forms.ModelForm): widget=OSMWidget) multi_polygon = MultiPolygonField(label=_("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) - lock_user = AutoCompleteSelectField('user', required=False) class OperationAdmin(HistorizedObjectAdmin): @@ -124,6 +100,17 @@ class OperationAdmin(HistorizedObjectAdmin): model = models.Operation readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'cached_label', 'top_sites'] + autocomplete_fields = HistorizedObjectAdmin.autocomplete_fields + [ + "in_charge", + "scientist", + "associated_file", + "operator", + "collaborators", + "towns", + "archaeological_sites", + "cira_rapporteur", + "lock_user", + ] form = AdminOperationForm inlines = [ArchaeologicalSiteInline] exclude = ["documents", "main_image"] @@ -136,13 +123,13 @@ class ParcelAdmin(MergeActionAdmin, HistorizedObjectAdmin): list_display = ['section', 'parcel_number', 'operation', 'associated_file'] search_fields = ('operation__cached_label', 'associated_file__cached_label', - 'year', 'section', 'parcel_number') + 'year', 'section', 'parcel_number', 'town__name') model = models.Parcel - form = make_ajax_form( - model, {'associated_file': 'file', - 'operation': 'operation', - 'town': 'town'} - ) + autocomplete_fields = [ + 'associated_file', + 'operation', + 'town', + ] readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'history_date' ] @@ -157,9 +144,10 @@ class RecordRelationsAdmin(admin.ModelAdmin): model = models.RecordRelations search_fields = ['left_record__cached_label', 'right_record__cached_label'] - form = make_ajax_form( - model, {'left_record': 'operation', - 'right_record': 'operation'}) + autocomplete_fields = [ + 'left_record', + 'right_record' + ] admin_site.register(models.RecordRelations, RecordRelationsAdmin) @@ -204,10 +192,9 @@ class ParcelOwnerAdmin(HistorizedObjectAdmin): 'owner__name', 'owner__surname', 'parcel__section', 'parcel__parcel_number') model = models.ParcelOwner - form = make_ajax_form( - model, {'owner': 'person', - 'parcel': 'parcel'} - ) + autocomplete_fields = HistorizedObjectAdmin.autocomplete_fields + [ + "owner", "parcel" + ] readonly_fields = HistorizedObjectAdmin.readonly_fields + [ 'history_date' ] @@ -219,9 +206,7 @@ admin_site.register(models.ParcelOwner, ParcelOwnerAdmin) class CulturalAttributionTypeAdmin(GeneralTypeAdmin): search_fields = ('label', 'parent__label', ) model = models.CulturalAttributionType - form = make_ajax_form(model, { - 'parent': 'cultural_attribution_type', - }) + autocomplete_fields = ['parent'] admin_site.register(models.CulturalAttributionType, diff --git a/archaeological_operations/lookups.py b/archaeological_operations/lookups.py deleted file mode 100644 index 0b590374e..000000000 --- a/archaeological_operations/lookups.py +++ /dev/null @@ -1,82 +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_operations.models import ( - Operation, - ArchaeologicalSite, - Parcel, - CulturalAttributionType, -) - - -@register("operation") -class OperationLookup(LookupChannel): - model = Operation - - 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("archaeological_site") -class ArchaeologicalSiteLookup(LookupChannel): - model = ArchaeologicalSite - - def get_query(self, q, request): - query = Q() - for term in q.strip().split(" "): - subquery = Q(reference__icontains=term) | Q(name__icontains=term) - query &= subquery - return self.model.objects.filter(query).order_by("reference", "name")[:20] - - def format_item_display(self, item): - return "<span class='ajax-label'>%s</span>".format(item) - - -@register("parcel") -class ParcelLookup(LookupChannel): - model = Parcel - - def get_query(self, q, request): - query = Q() - for term in q.strip().split(" "): - subquery = ( - Q(associated_file__cached_label__icontains=term) - | Q(operation__cached_label__icontains=term) - | Q(section__icontains=term) - | Q(parcel_number__icontains=term) - | Q(town__name__icontains=term) - ) - try: - subquery |= Q(year=int(term)) - except ValueError: - pass - query &= subquery - return self.model.objects.filter(query).order_by( - "-associated_file__cached_label", - "-operation__cached_label", - "section", - "parcel_number", - )[:20] - - def format_match(self, obj): - return escape(force_text(obj.long_label())) - - def format_item_display(self, item): - return "<span class='ajax-label'>%s</span>" % item.long_label() - - -@register("cultural_attribution_type") -class CulturalAttributionTypeLookup(TypeLookupChannel): - model = CulturalAttributionType diff --git a/archaeological_operations/migrations/0101_squashed.py b/archaeological_operations/migrations/0101_squashed.py index 7027406b8..b5b983460 100644 --- a/archaeological_operations/migrations/0101_squashed.py +++ b/archaeological_operations/migrations/0101_squashed.py @@ -86,7 +86,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Administrative act', 'verbose_name_plural': 'Administrative acts', 'ordering': ('year', 'signature_date', 'index', 'act_type'), - 'permissions': (('view_administrativeact', 'Can view all Administrative acts'), ('view_own_administrativeact', 'Can view own Administrative act'), ('add_own_administrativeact', 'Can add own Administrative act'), ('change_own_administrativeact', 'Can change own Administrative act'), ('delete_own_administrativeact', 'Can delete own Administrative act')), + 'permissions': (('view_own_administrativeact', 'Can view own Administrative act'), ('add_own_administrativeact', 'Can add own Administrative act'), ('change_own_administrativeact', 'Can change own Administrative act'), ('delete_own_administrativeact', 'Can delete own Administrative act')), }, bases=(ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, @@ -139,7 +139,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'Archaeological site', 'verbose_name_plural': 'Archaeological sites', - 'permissions': (('view_archaeologicalsite', 'Can view all Archaeological sites'), ('view_own_archaeologicalsite', 'Can view own Archaeological site'), ('add_own_archaeologicalsite', 'Can add own Archaeological site'), ('change_own_archaeologicalsite', 'Can change own Archaeological site'), ('delete_own_archaeologicalsite', 'Can delete own Archaeological site')), + 'permissions': (('view_own_archaeologicalsite', 'Can view own Archaeological site'), ('add_own_archaeologicalsite', 'Can add own Archaeological site'), ('change_own_archaeologicalsite', 'Can change own Archaeological site'), ('delete_own_archaeologicalsite', 'Can delete own Archaeological site')), }, bases=(ishtar_common.models.DocumentItem, ishtar_common.models.StatisticItem, @@ -446,7 +446,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Operation', 'verbose_name_plural': 'Operations', 'ordering': ('cached_label',), - 'permissions': (('view_operation', 'Can view all Operations'), ('view_own_operation', 'Can view own Operation'), ('add_own_operation', 'Can add own Operation'), ('change_own_operation', 'Can change own Operation'), ('delete_own_operation', 'Can delete own Operation'), ('close_operation', 'Can close Operation')), + 'permissions': (('view_own_operation', 'Can view own Operation'), ('add_own_operation', 'Can add own Operation'), ('change_own_operation', 'Can change own Operation'), ('delete_own_operation', 'Can delete own Operation'), ('close_operation', 'Can close Operation')), }, bases=(archaeological_operations.models.ClosedItem, ishtar_common.models.DocumentItem, |