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")), | 
