diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-10-29 17:50:49 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-02-19 14:43:49 +0100 |
commit | 547a20789faf6bbc9979357c7f65cbe61e56ed07 (patch) | |
tree | 5ede13492f49434468607950769266d643333d11 /ishtar_common/forms_common.py | |
parent | fcc0bb255730d43ec2cff78fb8b948d6322a8b68 (diff) | |
download | Ishtar-547a20789faf6bbc9979357c7f65cbe61e56ed07.tar.bz2 Ishtar-547a20789faf6bbc9979357c7f65cbe61e56ed07.zip |
✨ permissions refactoring: link items to user QA forms
Diffstat (limited to 'ishtar_common/forms_common.py')
-rw-r--r-- | ishtar_common/forms_common.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 734707419..e7e6a334d 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -2833,6 +2833,36 @@ class QALockForm(forms.Form): item.save() +class QALinkForm(forms.Form): + action = forms.ChoiceField( + label=_("Action"), + choices=(("link", _("Link items")), ("unlink", _("Unlink items"))) + ) + account = forms.IntegerField( + widget=widgets.JQueryAutoComplete( + reverse_lazy( + 'autocomplete-user', + ), + associated_model=User), + label=_("User")) + + def __init__(self, *args, **kwargs): + self.items = kwargs.pop("items") + super().__init__(*args, **kwargs) + + def save(self, items, user): + try: + ishtar_user = models.IshtarUser.objects.get(pk=self.cleaned_data["account"]) + except models.IshtarUser.DoesNotExist: + return + if self.cleaned_data["action"] == "link": + for item in items: + item.ishtar_users.add(ishtar_user) + else: + for item in items: + item.ishtar_users.remove(ishtar_user) + + class SourceDeletionForm(FinalForm): confirm_msg = " " confirm_end_msg = _("Would you like to delete this documentation?") |