summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_context_records/models.py2
-rw-r--r--archaeological_files/models.py2
-rw-r--r--archaeological_finds/models_finds.py2
-rw-r--r--archaeological_finds/models_treatments.py5
-rw-r--r--archaeological_operations/models.py7
-rw-r--r--archaeological_warehouse/models.py6
-rw-r--r--ishtar_common/models.py8
-rw-r--r--ishtar_common/models_common.py12
-rw-r--r--ishtar_common/views.py3
9 files changed, 46 insertions, 1 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 30d2d9ad7..cfa9b2b52 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -748,6 +748,8 @@ class ContextRecord(
ALT_NAMES.update(GeoItem.ALT_NAMES)
ALT_NAMES.update(Imported.ALT_NAMES)
+ DEFAULT_SEARCH_FORM = ("archaeological_context_records.forms", "RecordSelect")
+
BASE_SEARCH_VECTORS = [
SearchVectorConfig("label", "raw"),
SearchVectorConfig("location"),
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 5a5f4947e..1aeb191cf 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -618,6 +618,8 @@ class File(
ALT_NAMES.update(DocumentItem.ALT_NAMES)
ALT_NAMES.update(Imported.ALT_NAMES)
+ DEFAULT_SEARCH_FORM = ("archaeological_files.forms", "FileSelect")
+
POST_PROCESS_REQUEST = {
"towns__numero_insee__startswith": "_get_department_code",
}
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index d10494483..4ec0742dd 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -1832,6 +1832,8 @@ class Find(
ALT_NAMES.update(GeoItem.ALT_NAMES_FOR_FIND())
ALT_NAMES.update(Imported.ALT_NAMES)
+ DEFAULT_SEARCH_FORM = ("archaeological_finds.forms", "FindSelect")
+
"""
# kept as an example
DYNAMIC_REQUESTS = {
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 69a8b899c..c332a6aa3 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -296,6 +296,9 @@ class Treatment(
}
ALT_NAMES.update(BaseHistorizedItem.ALT_NAMES)
ALT_NAMES.update(DocumentItem.ALT_NAMES)
+
+ DEFAULT_SEARCH_FORM = ("archaeological_finds.forms_treatments", "TreatmentSelect")
+
HISTORICAL_M2M = [
"treatment_types",
]
@@ -1351,6 +1354,8 @@ class TreatmentFile(
ALT_NAMES.update(DocumentItem.ALT_NAMES)
SHEET_EMPTY_KEYS = ["name"]
+ DEFAULT_SEARCH_FORM = ("archaeological_finds.forms_treatments", "TreatmentFileSelect")
+
# fields
year = models.IntegerField(_("Year"), default=get_current_year)
index = models.IntegerField(_("Index"), default=1)
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index fe6ed584e..63ad61c76 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -560,6 +560,8 @@ class ArchaeologicalSite(
ALT_NAMES.update(GeoItem.ALT_NAMES)
ALT_NAMES.update(Imported.ALT_NAMES)
+ DEFAULT_SEARCH_FORM = ("archaeological_operations.forms", "SiteSelect")
+
UP_MODEL_QUERY = {
"operation": (
pgettext_lazy("key for text search", "operation"),
@@ -1489,6 +1491,8 @@ class Operation(
ALT_NAMES.update(GeoItem.ALT_NAMES)
ALT_NAMES.update(Imported.ALT_NAMES)
+ DEFAULT_SEARCH_FORM = ("archaeological_operations.forms", "OperationSelect")
+
QA_EDIT = QuickAction(
url="operation-qa-bulk-update",
icon_class="fa fa-pencil",
@@ -3100,6 +3104,9 @@ class AdministrativeAct(DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter,
ALT_NAMES.update(BaseHistorizedItem.ALT_NAMES)
ALT_NAMES.update(DocumentItem.ALT_NAMES)
+ DEFAULT_SEARCH_FORM = ("archaeological_operations.forms",
+ "AdministrativeActOpeSelect")
+
UP_MODEL_QUERY = {}
POST_PROCESS_REQUEST = {
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 943d8e49c..2c6feaffc 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -335,6 +335,9 @@ class Warehouse(
),
}
ALT_NAMES.update(BaseHistorizedItem.ALT_NAMES)
+
+ DEFAULT_SEARCH_FORM = ("archaeological_warehouse.forms", "WarehouseSelect")
+
GEO_LABEL = "name"
CACHED_LABELS = ["cached_town_label"]
@@ -1070,6 +1073,9 @@ class Container(
"location__precise_town__areas__label__iexact"
),
}
+
+ DEFAULT_SEARCH_FORM = ("archaeological_warehouse.forms", "ContainerSelect")
+
REVERSED_BOOL_FIELDS = [
"children__isnull",
"documents__image__isnull",
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 9197d4839..3a3fd70c1 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2715,6 +2715,9 @@ class Organization(Address, Merge, OwnPerms, BaseGenderedType, ValueGetter, Main
),
}
ALT_NAMES.update(Address.ALT_NAMES)
+
+ DEFAULT_SEARCH_FORM = ("ishtar_common.forms_common", "OrganizationSelect")
+
QA_EDIT = QuickAction(
url="organization-qa-bulk-update",
icon_class="fa fa-pencil",
@@ -2996,6 +2999,9 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem):
),
}
ALT_NAMES.update(Address.ALT_NAMES)
+
+ DEFAULT_SEARCH_FORM = ("ishtar_common.forms_common", "PersonSelect")
+
QA_EDIT = QuickAction(
url="person-qa-bulk-update",
icon_class="fa fa-pencil",
@@ -4998,6 +5004,8 @@ class Document(
}
ALT_NAMES.update(BaseHistorizedItem.ALT_NAMES)
+ DEFAULT_SEARCH_FORM = ("ishtar_common.forms_common", "DocumentSelect")
+
# search parameters
REVERSED_BOOL_FIELDS = ["image__isnull", "associated_file__isnull"]
DATED_FIELDS = BaseHistorizedItem.DATED_FIELDS + [
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index 96eb26bbf..334eb8b75 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -9,6 +9,7 @@ import copy
from collections import OrderedDict
import datetime
import fiona
+from importlib import import_module
import json
import logging
import os
@@ -957,11 +958,22 @@ class FullSearch(models.Model):
PARENT_SEARCH_VECTORS = []
# prevent circular dependency
PARENT_ONLY_SEARCH_VECTORS = []
+ # tuple (module, class) in text for dynamic import
+ DEFAULT_SEARCH_FORM = tuple()
class Meta:
abstract = True
@classmethod
+ def get_default_search_form(cls):
+ # DEFAULT_SEARCH_FORM is used to get the form when exporting tables
+ if not cls.DEFAULT_SEARCH_FORM:
+ return
+ form = getattr(import_module(cls.DEFAULT_SEARCH_FORM[0]),
+ cls.DEFAULT_SEARCH_FORM[1])
+ return form
+
+ @classmethod
def general_types(cls):
for k in get_all_field_names(cls):
field = cls._meta.get_field(k)
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 92ae42f46..71076e52d 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1628,7 +1628,8 @@ class GenerateLabelView(GenerateView):
def get_items(self, request, model):
# rights are managed by get_item
- get_list = get_item(model, None, model.SLUG, own_table_cols=["id"])(
+ get_list = get_item(model, None, model.SLUG, own_table_cols=["id"],
+ search_form=model.get_default_search_form())(
request, no_link=True, no_limit=True
)
item_list = json.loads(get_list.content.decode("utf-8"))["rows"]