diff --git a/tests/test_formdata.py b/tests/test_formdata.py index 07416225b..6f56083e3 100644 --- a/tests/test_formdata.py +++ b/tests/test_formdata.py @@ -110,25 +110,28 @@ def test_manual_display_id(pub): assert substvars.get('form_number_raw') == str(formdata.id) -def test_submission_context(pub): +def test_submission_context(pub, local_user): formdef.data_class().wipe() formdata = formdef.data_class()() formdata.backoffice_submission = True formdata.submission_channel = 'mail' formdata.submission_context = { 'mail_url': 'http://www.example.com/test.pdf', + 'agent_id': local_user.id, } substvars = formdata.get_substitution_variables() assert substvars.get('form_submission_backoffice') is True assert substvars.get('form_submission_channel') == 'mail' assert substvars.get('form_submission_channel_label') == 'Mail' assert substvars.get('form_submission_context_mail_url') == 'http://www.example.com/test.pdf' + assert substvars.get('form_submission_agent_email') == local_user.email formdata = formdef.data_class()() substvars = formdata.get_substitution_variables() assert substvars.get('form_submission_backoffice') is False assert substvars.get('form_submission_channel') is None assert substvars.get('form_submission_channel_label') == 'Web' + assert substvars.get('form_submission_agent_email') is None def test_just_created(pub): diff --git a/wcs/variables.py b/wcs/variables.py index 8305455e4..56797c273 100644 --- a/wcs/variables.py +++ b/wcs/variables.py @@ -313,6 +313,13 @@ class LazyFormData(LazyFormDef): def submission_channel_label(self): return self._formdata.get_submission_channel_label() + @property + def submission_agent(self): + try: + return LazyUser(get_publisher().user_class.get(self._formdata.submission_context['agent_id'])) + except (TypeError, KeyError): + return None + @property def submission_context(self): return self._formdata.submission_context