summaryrefslogtreecommitdiff
path: root/ishtar_common/utils.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-14 17:49:37 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:43:48 +0100
commit4f60b4805a7eac04c2a8ec2116a245dbeec3c822 (patch)
tree561f87e11ae60c96320523c80c6317ff8f1d2f99 /ishtar_common/utils.py
parent94f357939957dc8a5de453224913dbecdc4dc9db (diff)
downloadIshtar-4f60b4805a7eac04c2a8ec2116a245dbeec3c822.tar.bz2
Ishtar-4f60b4805a7eac04c2a8ec2116a245dbeec3c822.zip
✨ generate_permissions
manage: - possession (direct, creation, basket) - heritage - areas association - requests ({USER} special syntax)
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r--ishtar_common/utils.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 709f020a4..11ff45fa7 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -333,6 +333,83 @@ class SheetItem:
return
+def get_current_item_keys():
+ return (
+ ("file", apps.get_model("archaeological_files", "File")),
+ ("operation", apps.get_model("archaeological_operations", "Operation")),
+ ("site", apps.get_model("archaeological_operations", "ArchaeologicalSite")),
+ ("contextrecord",
+ apps.get_model("archaeological_context_records", "ContextRecord")),
+ ("warehouse", apps.get_model("archaeological_warehouse", "Warehouse")),
+ ("container", apps.get_model("archaeological_warehouse", "Container")),
+ ("find", apps.get_model("archaeological_finds", "Find")),
+ ("findbasket", apps.get_model("archaeological_finds", "FindBasket")),
+ ("treatmentfile", apps.get_model("archaeological_finds", "TreatmentFile")),
+ ("treatment", apps.get_model("archaeological_finds", "Treatment")),
+ ("administrativeact",
+ apps.get_model("archaeological_operations", "AdministrativeAct")),
+ ("administrativeactop",
+ apps.get_model("archaeological_operations", "AdministrativeAct")),
+ ("administrativeactfile",
+ apps.get_model("archaeological_operations", "AdministrativeAct")),
+ ("administrativeacttreatment",
+ apps.get_model("archaeological_operations", "AdministrativeAct")),
+ ("administrativeacttreatmentfile",
+ apps.get_model("archaeological_operations", "AdministrativeAct")),
+ )
+
+
+def get_current_item_keys_dict():
+ return dict(get_current_item_keys())
+
+
+API_APP_CONTENT_TYPES = [
+ ("archaeological_operations", "operation"),
+ ("archaeological_context_records", "contextrecord"),
+ ("archaeological_finds", "find"),
+ ("archaeological_warehouse", "warehouse"),
+ ("archaeological_files", "file"),
+]
+
+API_MAIN_CONTENT_TYPES = API_APP_CONTENT_TYPES + [
+ ("archaeological_operations", "archaeologicalsite"),
+ ("archaeological_warehouse", "container"),
+]
+
+API_MAIN_MODELS = dict(
+ [(model_name, app_name) for app_name, model_name in API_MAIN_CONTENT_TYPES]
+)
+
+
+class HistoryError(Exception):
+ def __init__(self, value):
+ self.value = value
+
+ def __str__(self):
+ return repr(self.value)
+
+
+class SearchAltName(object):
+ def __init__(
+ self, search_key, search_query, extra_query=None, distinct_query=False,
+ related_name=None
+ ):
+ self.search_key = search_key
+ self.search_query = search_query
+ self.extra_query = extra_query or {}
+ self.distinct_query = distinct_query
+ self.related_name = related_name
+
+
+GENERAL_TYPE_PREFIX = {
+ "prefix": "&#x2502; ",
+ "prefix_empty": "&nbsp; ",
+ "prefix_medium": "&#x251C; ",
+ "prefix_last": "&#x2514; ",
+ "prefix_codes": ["\u2502", "\u251C", "\u2514"]
+}
+
+
class OwnPerms:
"""
Manage special permissions for object's owner