workflows: do not let aggregation emails be sent to submitter (#6231) #747
|
@ -4056,3 +4056,19 @@ def test_workflow_backoffice_field_statistics_data_update(pub):
|
|||
|
||||
formdata.refresh_from_storage()
|
||||
assert formdata.statistics_data == {'bool': [True]}
|
||||
|
||||
|
||||
def test_workflows_edit_aggregationemail_action(pub):
|
||||
create_superuser(pub)
|
||||
pub.role_class.wipe()
|
||||
role = pub.role_class(name='foobar')
|
||||
role.store()
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='foo')
|
||||
st = workflow.add_status(name='baz')
|
||||
item = st.add_action('aggregationemail')
|
||||
workflow.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get(item.get_admin_url())
|
||||
assert '_submitter' not in [x[0] for x in resp.form['to$element0'].options]
|
||||
|
|
|
@ -53,7 +53,8 @@ class AggregationEmailWorkflowStatusItem(WorkflowStatusItem):
|
|||
add_element_label=self.get_add_role_label(),
|
||||
element_kwargs={
|
||||
'render_br': False,
|
||||
'options': [(None, '---', None)] + self.get_list_of_roles(include_logged_in_users=False),
|
||||
'options': [(None, '---', None)]
|
||||
+ self.get_list_of_roles(include_submitter=False, include_logged_in_users=False),
|
||||
},
|
||||
)
|
||||
|
||||
|
|
|
@ -1251,9 +1251,12 @@ class Workflow(StorableObject):
|
|||
|
||||
return workflow
|
||||
|
||||
def get_list_of_roles(self, include_logged_in_users=True, include_signed_calls=False):
|
||||
def get_list_of_roles(
|
||||
self, include_logged_in_users=True, include_signed_calls=False, include_submitter=True
|
||||
):
|
||||
t = []
|
||||
t.append(('_submitter', pgettext_lazy('role', 'User'), '_submitter'))
|
||||
if include_submitter:
|
||||
t.append(('_submitter', pgettext_lazy('role', 'User'), '_submitter'))
|
||||
for workflow_role in self.roles.items():
|
||||
t.append(list(workflow_role) + [workflow_role[0]])
|
||||
if include_logged_in_users:
|
||||
|
@ -2700,8 +2703,10 @@ class WorkflowStatusItem(XmlSerialisable):
|
|||
def render_list_of_roles(self, roles):
|
||||
return self.get_workflow().render_list_of_roles(roles)
|
||||
|
||||
def get_list_of_roles(self, include_logged_in_users=True):
|
||||
return self.get_workflow().get_list_of_roles(include_logged_in_users=include_logged_in_users)
|
||||
def get_list_of_roles(self, include_logged_in_users=True, include_submitter=True):
|
||||
return self.get_workflow().get_list_of_roles(
|
||||
include_logged_in_users=include_logged_in_users, include_submitter=include_submitter
|
||||
)
|
||||
|
||||
def get_add_role_label(self):
|
||||
return self.get_workflow().get_add_role_label()
|
||||
|
|
Loading…
Reference in New Issue