Projet

Général

Profil

0001-formdata-add-substition-variables-for-submission-dat.patch

Frédéric Péters, 26 janvier 2016 13:49

Télécharger (3,67 ko)

Voir les différences:

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(+)
help/fr/misc-substvars.page
219 219
  </table>
220 220
  </section>
221 221

  
222
  <section id="submission-info">
223
    <title>Informations sur la saisie</title>
224

  
225
    <p>
226
    Les données contiennent aussi des informations sur le contexte de saisie de
227
    la demande.
228
    </p>
229

  
230
    <table shade="rows">
231
    <tr>
232
      <td><p><code>form_submission_backoffice</code></p></td>
233
      <td><p>Vrai si la saisie a eu lui depuis le backoffice</p></td>
234
    </tr>
235
    <tr>
236
      <td><p><code>form_submission_channel</code></p></td>
237
      <td><p>Identifiant du canal de saisie (ex: mail)</p></td>
238
    </tr>
239
    <tr>
240
      <td><p><code>form_submission_channel_label</code></p></td>
241
      <td><p>Libellé du canal de saisie (ex: Courrier)</p></td>
242
    </tr>
243
    </table>
244

  
245
    <p>
246
    Si d'autres informations ont été fournies sur le contexte de la saisie
247
    elles sont disponibles dans des variables de la forme
248
    <code>form_submission_context_<var>foobar</var></code>.
249
    </p>
250

  
251
  </section>
252

  
222 253
</section>
223 254

  
224 255
<section id="session-variables">
tests/test_formdata.py
76 76
    assert substvars.get('form_number') == 'bar'
77 77
    assert substvars.get('form_number_raw') == str(formdata.id)
78 78

  
79
def test_submission_context(pub):
80
    formdef.data_class().wipe()
81
    formdata = formdef.data_class()()
82
    formdata.backoffice_submission = True
83
    formdata.submission_channel = 'mail'
84
    formdata.submission_context = {
85
        'mail_url': 'http://www.example.com/test.pdf',
86
    }
87
    substvars = formdata.get_substitution_variables()
88
    assert substvars.get('form_submission_backoffice') is True
89
    assert substvars.get('form_submission_channel') == 'mail'
90
    assert substvars.get('form_submission_channel_label') == 'Mail'
91
    assert substvars.get('form_submission_context_mail_url') == 'http://www.example.com/test.pdf'
92

  
93
    formdata = formdef.data_class()()
94
    substvars = formdata.get_substitution_variables()
95
    assert substvars.get('form_submission_backoffice') is False
96
    assert substvars.get('form_submission_channel') is None
97
    assert substvars.get('form_submission_channel_label') == 'Web'
98

  
79 99
def test_just_created(pub):
80 100
    formdef.data_class().wipe()
81 101
    formdata = formdef.data_class()()
wcs/formdata.py
409 409
        if self.tracking_code:
410 410
            d['form_tracking_code'] = self.tracking_code
411 411

  
412
        d['form_submission_backoffice'] = self.backoffice_submission
413
        d['form_submission_channel'] = self.submission_channel
414
        d['form_submission_channel_label'] = self.get_submission_channel_label()
415
        if self.submission_context:
416
            d['form_submission_context'] = self.submission_context
417

  
412 418
        # formdef and category variables
413 419
        d.update(self.formdef.get_substitution_variables(minimal=minimal))
414 420

  
415
-