workflows: display trigger statuses in summary line (#75056) #183
|
@ -2311,6 +2311,8 @@ def test_workflows_global_actions_edit(pub):
|
|||
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='foo')
|
||||
st1 = workflow.add_status('Status1')
|
||||
workflow.add_status('Status2')
|
||||
workflow.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
|
@ -2337,14 +2339,22 @@ def test_workflows_global_actions_edit(pub):
|
|||
# test modifying a trigger
|
||||
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
||||
resp = resp.click('Global Action')
|
||||
assert resp.pyquery('#triggers-list li > a').text() == 'Manual, not assigned'
|
||||
assert len(Workflow.get(workflow.id).global_actions[0].triggers) == 1
|
||||
resp = resp.click(
|
||||
href='triggers/%s/' % Workflow.get(workflow.id).global_actions[0].triggers[0].id, index=0
|
||||
)
|
||||
assert resp.form['roles$element0'].value == 'None'
|
||||
resp.form['roles$element0'].value = '_receiver'
|
||||
resp = resp.form.submit('submit')
|
||||
resp = resp.form.submit('submit').follow()
|
||||
assert resp.pyquery('#triggers-list li > a').text() == 'Manual, by Recipient'
|
||||
assert Workflow.get(workflow.id).global_actions[0].triggers[0].roles == ['_receiver']
|
||||
# limit to some statuses
|
||||
resp = resp.click(href=resp.pyquery('#triggers-list li > a').attr.href, index=0)
|
||||
resp.form['statuses$element0'].value = st1.id
|
||||
resp = resp.form.submit('submit').follow()
|
||||
assert Workflow.get(workflow.id).global_actions[0].triggers[0].statuses == [st1.id]
|
||||
assert resp.pyquery('#triggers-list li > a').text() == 'Manual, from status "Status1", by Recipient'
|
||||
|
||||
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
||||
resp = resp.click('Global Action')
|
||||
|
|
|
@ -1421,7 +1421,7 @@ class GlobalActionPage(WorkflowStatusPage):
|
|||
r += htmltext('<div class="bo-block">')
|
||||
r += htmltext('<h2>%s</h2>') % _('Triggers')
|
||||
r += (
|
||||
htmltext('<ul id="items-list" class="biglist %s" data-order-function="update_triggers_order">')
|
||||
htmltext('<ul id="triggers-list" class="biglist %s" data-order-function="update_triggers_order">')
|
||||
% sortable
|
||||
)
|
||||
for trigger in self.action.triggers:
|
||||
|
|
|
@ -1491,10 +1491,16 @@ class WorkflowGlobalActionManualTrigger(WorkflowGlobalActionTrigger):
|
|||
return ('roles', 'statuses')
|
||||
|
||||
def render_as_line(self):
|
||||
parts = [_('Manual')]
|
||||
if self.statuses:
|
||||
labels = [x.name for x in self.parent.parent.possible_status if x.id in self.statuses]
|
||||
if labels:
|
||||
parts.append(_('from status %s') % _(' or ').join([_('"%s"') % x for x in labels]))
|
||||
if self.roles:
|
||||
return _('Manual by %s') % render_list_of_roles(self.parent.parent, self.roles)
|
||||
parts.append(_('by %s') % render_list_of_roles(self.parent.parent, self.roles))
|
||||
else:
|
||||
return _('Manual (not assigned)')
|
||||
parts.append(_('not assigned'))
|
||||
return ', '.join([str(x) for x in parts])
|
||||
|
||||
def form(self, workflow):
|
||||
form = Form(enctype='multipart/form-data')
|
||||
|
|
Loading…
Reference in New Issue