summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 29995a5ba..ae0656c6d 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -48,7 +48,7 @@ from ooopy.Transformer import Transformer as OOTransformer
import ooopy.Transforms as OOTransforms
import uuid
import zipfile
-from urllib.parse import urlencode
+from urllib.parse import urlencode, quote
# nosec: ElementTree used to create XML not for parsing
from xml.etree import ElementTree as ET # nosec
@@ -4170,6 +4170,35 @@ class IshtarUser(FullSearch):
self.need_permission_update = False
self.save()
+ def get_attached_items(self):
+ model_list = [
+ ("archaeological_files", "file"),
+ ("archaeological_operations", "operation"),
+ ("archaeological_operations", "archaeologicalsite"),
+ ("archaeological_context_records", "contextrecord"),
+ ("archaeological_finds", "find"),
+ ("archaeological_warehouse", "warehouse"),
+ ("archaeological_warehouse", "container"),
+ ]
+ attached_items = []
+ search_key = str(pgettext_lazy("key for text search", "user-attached"))
+ for app_label, model_name in model_list:
+ ct = ContentType.objects.get(app_label=app_label, model=model_name)
+ model = ct.model_class()
+ q = model.objects.filter(ishtar_users__pk=self.pk)
+ if not q.exists():
+ continue
+ url = getattr(model, "DEFAULT_WIZARD", None)
+ if url:
+ url = str(url) + "?"
+ url += urlencode(
+ {"query": quote(f'{search_key}="{self.person.cached_label}"')}
+ )
+ attached_items.append(
+ (model._meta.verbose_name_plural, q.all(), url)
+ )
+ return attached_items
+
def has_permission_dict(self):
"""
Get permission dict with permission codename as key and True or False as result.