Projet

Général

Profil

0001-misc-display-a-popup-without-form-if-tracking-code-d.patch

Thomas Noël, 21 avril 2022 16:30

Télécharger (2,31 ko)

Voir les différences:

Subject: [PATCH] misc: display a popup without form if tracking code does not
 exist yet (#19007)

 tests/form_pages/test_all.py | 17 +++++++++++++++++
 wcs/forms/root.py            |  9 +++++++++
 2 files changed, 26 insertions(+)
tests/form_pages/test_all.py
2096 2096
    assert not emails.count()
2097 2097

  
2098 2098

  
2099
def test_form_tracking_code_email_too_early(pub, emails, nocache):
2100
    formdef = create_formdef()
2101
    formdef.data_class().wipe()
2102
    formdef.fields = [fields.StringField(id='0', label='string'), fields.StringField(id='1', label='string2')]
2103
    formdef.enable_tracking_codes = True
2104
    formdef.store()
2105

  
2106
    app = get_app(pub)
2107
    resp = app.get('/test/')
2108
    # do nothing more: formdata does not even exists
2109
    tracking_code = get_displayed_tracking_code(resp)
2110
    assert tracking_code is not None
2111

  
2112
    resp = get_app(pub).get('/test/code/%s/' % tracking_code)
2113
    assert 'Form is empty: tracking code is not yet available.' in resp.text
2114

  
2115

  
2099 2116
def test_form_tracking_code_remove_draft(pub, nocache):
2100 2117
    formdef = create_formdef()
2101 2118
    formdef.fields = [fields.StringField(id='0', label='string')]
wcs/forms/root.py
151 151

  
152 152
        html_top()
153 153
        r = TemplateIO(html=True)
154
        try:
155
            tracking_code = get_publisher().tracking_code_class.get(self.code)
156
            if tracking_code.formdata_id is None:
157
                raise KeyError
158
        except KeyError:
159
            r += htmltext('<h2>%s</h2>') % _('Tracking code not available')
160
            r += htmltext('<p>%s</p>') % _('Form is empty: tracking code is not yet available.')
161
            return r.getvalue()
162

  
154 163
        r += htmltext('<h2>%s</h2>') % _('Keep your tracking code')
155 164
        r += TextsDirectory.get_html_text('tracking-code-email-dialog')
156 165
        r += form.render()
157
-