summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
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
commitdc37c72d10b5358ef692e73f671c15c083693c05 (patch)
tree206966ec7684d85811f7a8686fd781d3ab9d9fd4 /archaeological_operations
parente046ed00e790fbb82b43de9404d8ca3955c8de2f (diff)
downloadIshtar-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.py73
-rw-r--r--archaeological_operations/lookups.py82
-rw-r--r--archaeological_operations/migrations/0101_squashed.py6
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,