diff options
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 |
commit | eb4a199b5f8f893ec36cf55a3541deac8ce8e8d1 (patch) | |
tree | 9defd2006cd8b4f2891591cb6df75e6957958931 | |
parent | b7cd97f67470970376bf5b6b786f3548e8680c7b (diff) | |
download | Ishtar-eb4a199b5f8f893ec36cf55a3541deac8ce8e8d1.tar.bz2 Ishtar-eb4a199b5f8f893ec36cf55a3541deac8ce8e8d1.zip |
✨ search criteria - permissions: attached to user (refs #6208)
-rw-r--r-- | ishtar_common/forms.py | 20 | ||||
-rw-r--r-- | ishtar_common/models_common.py | 4 |
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" ) } |