From eb4a199b5f8f893ec36cf55a3541deac8ce8e8d1 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 10 Mar 2025 15:42:32 +0100 Subject: ✨ search criteria - permissions: attached to user (refs #6208) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/forms.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'ishtar_common/forms.py') 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() -- cgit v1.2.3