Projet

Général

Profil

0001-workflows-add-label-attribute-on-backoffice-fields-a.patch

Thomas Noël, 13 novembre 2019 11:58

Télécharger (2,85 ko)

Voir les différences:

Subject: [PATCH] workflows: add label attribute on backoffice fields action
 (#37620)

 tests/test_workflows.py     |  6 ++++++
 wcs/wf/backoffice_fields.py | 17 +++++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)
tests/test_workflows.py
3407 3407
    item = SetBackofficeFieldsWorkflowStatusItem()
3408 3408
    item.parent = st1
3409 3409

  
3410
    assert item.render_as_line() == 'Backoffice Data'
3411
    assert item.get_jump_label('plop') == 'Backoffice Data'
3412
    item.label = 'label'
3413
    assert item.render_as_line() == 'Backoffice Data (label)'
3414
    assert item.get_jump_label('plop') == 'Backoffice Data "label"'
3415

  
3410 3416
    item.perform(formdata)
3411 3417
    formdata = formdef.data_class().get(formdata.id)
3412 3418
    assert formdata.data.get('bo1') == None
wcs/wf/backoffice_fields.py
18 18

  
19 19
from ..qommon import _
20 20
from ..qommon.form import (WidgetListAsTable, CompositeWidget, SingleSelectWidget,
21
        ComputedExpressionWidget)
21
        ComputedExpressionWidget, StringWidget)
22 22
from wcs.fields import WidgetField
23 23
from wcs.workflows import (WorkflowStatusItem,
24 24
        register_item_class)
......
66 66
    key = 'set-backoffice-fields'
67 67
    category = 'formdata-action'
68 68

  
69
    label = None
69 70
    fields = None
70 71

  
71 72
    @classmethod
72 73
    def is_available(cls, workflow=None):
73 74
        return bool(workflow and getattr(workflow.backoffice_fields_formdef, 'fields', None))
74 75

  
76
    def get_line_details(self):
77
        return self.label or None
78

  
79
    def get_jump_label(self, target_id):
80
        if self.label:
81
            return _('Backoffice Data "%s"') % self.label
82
        else:
83
            return _('Backoffice Data')
84

  
75 85
    def get_parameters(self):
76
        return ('fields', 'condition')
86
        return ('label', 'fields', 'condition')
77 87

  
78 88
    def add_parameters_widgets(self, form, parameters, prefix='', formdef=None):
79 89
        super(SetBackofficeFieldsWorkflowStatusItem, self).add_parameters_widgets(
80 90
                form, parameters, prefix=prefix, formdef=formdef)
91
        if 'label' in parameters:
92
            form.add(StringWidget, '%slabel' % prefix, size=40, title=_('Label'), value=self.label)
93

  
81 94
        if 'fields' in parameters:
82 95
            form.add(SetBackofficeFieldsTableWidget, '%sfields' % prefix,
83 96
                    title=_('Fields Update'), value=self.fields,
84
-