From 04c6427fc96cba90ba98b00101f83ea853e2a69d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 26 Jan 2016 13:49:01 +0100 Subject: [PATCH] formdata: add substition variables for submission data (#9751) --- help/fr/misc-substvars.page | 31 +++++++++++++++++++++++++++++++ tests/test_formdata.py | 20 ++++++++++++++++++++ wcs/formdata.py | 6 ++++++ 3 files changed, 57 insertions(+) diff --git a/help/fr/misc-substvars.page b/help/fr/misc-substvars.page index 7d4a153..046ffdc 100644 --- a/help/fr/misc-substvars.page +++ b/help/fr/misc-substvars.page @@ -219,6 +219,37 @@ champs, etc. +
+ Informations sur la saisie + +

+ Les données contiennent aussi des informations sur le contexte de saisie de + la demande. +

+ + + + + + + + + + + + + + +

form_submission_backoffice

Vrai si la saisie a eu lui depuis le backoffice

form_submission_channel

Identifiant du canal de saisie (ex: mail)

form_submission_channel_label

Libellé du canal de saisie (ex: Courrier)

+ +

+ Si d'autres informations ont été fournies sur le contexte de la saisie + elles sont disponibles dans des variables de la forme + form_submission_context_foobar. +

+ +
+
diff --git a/tests/test_formdata.py b/tests/test_formdata.py index 366b456..e21ca76 100644 --- a/tests/test_formdata.py +++ b/tests/test_formdata.py @@ -76,6 +76,26 @@ def test_manual_display_id(pub): assert substvars.get('form_number') == 'bar' assert substvars.get('form_number_raw') == str(formdata.id) +def test_submission_context(pub): + 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', + } + 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' + + 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' + def test_just_created(pub): formdef.data_class().wipe() formdata = formdef.data_class()() diff --git a/wcs/formdata.py b/wcs/formdata.py index dd78074..cceda6f 100644 --- a/wcs/formdata.py +++ b/wcs/formdata.py @@ -409,6 +409,12 @@ class FormData(StorableObject): if self.tracking_code: d['form_tracking_code'] = self.tracking_code + d['form_submission_backoffice'] = self.backoffice_submission + d['form_submission_channel'] = self.submission_channel + d['form_submission_channel_label'] = self.get_submission_channel_label() + if self.submission_context: + d['form_submission_context'] = self.submission_context + # formdef and category variables d.update(self.formdef.get_substitution_variables(minimal=minimal)) -- 2.7.0