From 4c98229ff92ac402363b2efd54fe0a1a48ec2e2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sat, 28 Mar 2020 17:54:04 +0100 Subject: [PATCH] misc: add property to get submission agent (#34708) --- tests/test_formdata.py | 5 ++++- wcs/variables.py | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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