summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py8
-rw-r--r--ishtar_common/models_common.py12
-rw-r--r--ishtar_common/views.py3
3 files changed, 22 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 1ac95dd7e..ffe078efd 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2656,6 +2656,9 @@ class Organization(Address, Merge, OwnPerms, BaseGenderedType, ValueGetter, Main
"museum_museofile_id__iexact",
),
}
+
+ DEFAULT_SEARCH_FORM = ("ishtar_common.forms_common", "OrganizationSelect")
+
QA_EDIT = QuickAction(
url="organization-qa-bulk-update",
icon_class="fa fa-pencil",
@@ -2937,6 +2940,9 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem):
"profiles__profile_type__label__iexact",
),
}
+
+ DEFAULT_SEARCH_FORM = ("ishtar_common.forms_common", "PersonSelect")
+
QA_EDIT = QuickAction(
url="person-qa-bulk-update",
icon_class="fa fa-pencil",
@@ -4498,6 +4504,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 91a3619ce..d932abf66 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
@@ -895,11 +896,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 a6c3b373d..7e0c01cd8 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1577,7 +1577,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"]