workflows: add label attribute on backoffice fields action (#37620)
This commit is contained in:
parent
2e44e1938b
commit
1fdb67feb4
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue