formdata: add substition variables for submission data (#9751)
This commit is contained in:
parent
f1e59b2bc3
commit
fc0e33e3f8
|
@ -219,6 +219,37 @@ champs, etc.
|
|||
</table>
|
||||
</section>
|
||||
|
||||
<section id="submission-info">
|
||||
<title>Informations sur la saisie</title>
|
||||
|
||||
<p>
|
||||
Les données contiennent aussi des informations sur le contexte de saisie de
|
||||
la demande.
|
||||
</p>
|
||||
|
||||
<table shade="rows">
|
||||
<tr>
|
||||
<td><p><code>form_submission_backoffice</code></p></td>
|
||||
<td><p>Vrai si la saisie a eu lui depuis le backoffice</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><p><code>form_submission_channel</code></p></td>
|
||||
<td><p>Identifiant du canal de saisie (ex: mail)</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><p><code>form_submission_channel_label</code></p></td>
|
||||
<td><p>Libellé du canal de saisie (ex: Courrier)</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
Si d'autres informations ont été fournies sur le contexte de la saisie
|
||||
elles sont disponibles dans des variables de la forme
|
||||
<code>form_submission_context_<var>foobar</var></code>.
|
||||
</p>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<section id="session-variables">
|
||||
|
|
|
@ -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()()
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
Loading…
Reference in New Issue