diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-09-03 12:30:35 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:21 +0100 |
commit | 29b0bd7d09f939b11d65238419feef07776e50a5 (patch) | |
tree | 0846cdf2ba3e22ea54a5f0054dccd703fbdb2879 /ishtar_common/forms_common.py | |
parent | 358291cb222400434ff5619abd69fb8d9a6054f1 (diff) | |
download | Ishtar-29b0bd7d09f939b11d65238419feef07776e50a5.tar.bz2 Ishtar-29b0bd7d09f939b11d65238419feef07776e50a5.zip |
Document QA: packaging - fix QA for search and edit
Diffstat (limited to 'ishtar_common/forms_common.py')
-rw-r--r-- | ishtar_common/forms_common.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 991968e3b..49d1829bc 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1745,6 +1745,53 @@ class QADocumentDuplicateForm(IshtarForm): return new +class QADocumentPackagingForm(IshtarForm): + container = forms.IntegerField( + label=_("Container"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-container'), + associated_model=Container, new=True), + validators=[models.valid_id(Container)]) + container_to_change = forms.ChoiceField( + label=_("Change "), required=True, + choices=( + ('current-and-reference', _(u"current and reference containers")), + ('reference', _(u"the reference container")), + ('current', _(u"the current container")), + ) + ) + + def __init__(self, *args, **kwargs): + self.confirm = False + self.user = None + if 'user' in kwargs: + self.user = kwargs.pop('user') + if hasattr(self.user, 'ishtaruser'): + self.user = self.user.ishtaruser + self.items = kwargs.pop('items') + + super(QADocumentPackagingForm, self).__init__(*args, **kwargs) + + def save(self, items, user): + container = Container.objects.get(pk=self.cleaned_data['container']) + container_to_change = self.cleaned_data.get('container_to_change', '') + container_attrs = [] + if container_to_change in ('reference', 'current-and-reference'): + container_attrs.append('container_ref') + if container_to_change in ('current', 'current-and-reference'): + container_attrs.append('container') + for document in items: + changed = False + for container_attr in container_attrs: + if getattr(document, container_attr) == container: + continue + setattr(document, container_attr, container) + changed = True + if changed: + document.history_modifier = user + document.save() + + class QALockForm(forms.Form): action = forms.ChoiceField( label=_("Action"), choices=(('lock', _("Lock")), |