summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-10 15:42:32 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-10 15:42:32 +0100
commiteb4a199b5f8f893ec36cf55a3541deac8ce8e8d1 (patch)
tree9defd2006cd8b4f2891591cb6df75e6957958931
parentb7cd97f67470970376bf5b6b786f3548e8680c7b (diff)
downloadIshtar-eb4a199b5f8f893ec36cf55a3541deac8ce8e8d1.tar.bz2
Ishtar-eb4a199b5f8f893ec36cf55a3541deac8ce8e8d1.zip
✨ search criteria - permissions: attached to user (refs #6208)
-rw-r--r--ishtar_common/forms.py20
-rw-r--r--ishtar_common/models_common.py4
2 files changed, 22 insertions, 2 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 2f311a779..8c1c0a5b1 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -1046,6 +1046,14 @@ class HistorySelect(CustomForm, TableSelect):
)
modified = DateField(label=_("Modified"), required=False)
locked = forms.NullBooleanField(label=_("Is locked?"))
+ ishtar_users = forms.IntegerField(
+ label=_("Attached to user"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy("autocomplete-user"), associated_model=User
+ ),
+ required=False,
+ )
+
_explicit_ordering = True
CURRENT_FIELDS = [
@@ -1054,17 +1062,25 @@ class HistorySelect(CustomForm, TableSelect):
"history_modifier",
"modified",
"locked",
+ "ishtar_users"
]
+ ADMIN_FIELDS = ["ishtar_users"]
def __init__(self, *args, **kwargs):
- super(HistorySelect, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
field_order = self.fields.keys()
fields = OrderedDict()
for k in field_order:
if k in self.CURRENT_FIELDS:
continue
fields[k] = self.fields[k]
- for k in self.CURRENT_FIELDS:
+ current_fields = self.CURRENT_FIELDS[:]
+ current_user = getattr(self, "current_user", None)
+ if not current_user or not current_user.is_ishtaradmin:
+ for k in self.ADMIN_FIELDS:
+ if k in current_fields:
+ current_fields.pop(current_fields.index(k))
+ for k in current_fields:
fields[k] = self.fields[k]
self.fields = fields
self.custom_form_ordering()
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index 432a50839..0b1be5313 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -1668,6 +1668,10 @@ class BaseHistorizedItem(
),
"locked": SearchAltName(
pgettext_lazy("key for text search", "locked"), "locked"
+ ),
+ "ishtar_users": SearchAltName(
+ pgettext_lazy("key for text search", "user-attached"),
+ "ishtar_users__person__cached_label__iexact"
)
}