diff options
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 |
commit | 4f60b4805a7eac04c2a8ec2116a245dbeec3c822 (patch) | |
tree | 561f87e11ae60c96320523c80c6317ff8f1d2f99 /ishtar_common/utils.py | |
parent | 94f357939957dc8a5de453224913dbecdc4dc9db (diff) | |
download | Ishtar-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.py | 77 |
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": "│ ", + "prefix_empty": " ", + "prefix_medium": "├ ", + "prefix_last": "└ ", + "prefix_codes": ["\u2502", "\u251C", "\u2514"] +} + + class OwnPerms: """ Manage special permissions for object's owner |