workflows: add label attribute on backoffice fields action (#37620)

This commit is contained in:
Thomas NOËL 2019-11-13 11:58:27 +01:00 committed by Thomas NOËL
parent 2e44e1938b
commit 1fdb67feb4
2 changed files with 21 additions and 2 deletions

View File

@ -3416,6 +3416,12 @@ def test_set_backoffice_field(http_requests, two_pubs):
item = SetBackofficeFieldsWorkflowStatusItem()
item.parent = st1
assert item.render_as_line() == 'Backoffice Data'
assert item.get_jump_label('plop') == 'Backoffice Data'
item.label = 'label'
assert item.render_as_line() == 'Backoffice Data (label)'
assert item.get_jump_label('plop') == 'Backoffice Data "label"'
item.perform(formdata)
formdata = formdef.data_class().get(formdata.id)
assert formdata.data.get('bo1') == None

View File

@ -18,7 +18,7 @@ import xml.etree.ElementTree as ET
from ..qommon import _
from ..qommon.form import (WidgetListAsTable, CompositeWidget, SingleSelectWidget,
ComputedExpressionWidget)
ComputedExpressionWidget, StringWidget)
from wcs.fields import WidgetField
from wcs.workflows import (WorkflowStatusItem,
register_item_class)
@ -66,18 +66,31 @@ class SetBackofficeFieldsWorkflowStatusItem(WorkflowStatusItem):
key = 'set-backoffice-fields'
category = 'formdata-action'
label = None
fields = None
@classmethod
def is_available(cls, workflow=None):
return bool(workflow and getattr(workflow.backoffice_fields_formdef, 'fields', None))
def get_line_details(self):
return self.label or None
def get_jump_label(self, target_id):
if self.label:
return _('Backoffice Data "%s"') % self.label
else:
return _('Backoffice Data')
def get_parameters(self):
return ('fields', 'condition')
return ('label', 'fields', 'condition')
def add_parameters_widgets(self, form, parameters, prefix='', formdef=None):
super(SetBackofficeFieldsWorkflowStatusItem, self).add_parameters_widgets(
form, parameters, prefix=prefix, formdef=formdef)
if 'label' in parameters:
form.add(StringWidget, '%slabel' % prefix, size=40, title=_('Label'), value=self.label)
if 'fields' in parameters:
form.add(SetBackofficeFieldsTableWidget, '%sfields' % prefix,
title=_('Fields Update'), value=self.fields,