Projet

Général

Profil

0001-forms-include-titles-and-subtitles-in-summary-page-1.patch

Frédéric Péters, 28 mai 2018 17:07

Télécharger (4,26 ko)

Voir les différences:

Subject: [PATCH] forms: include titles and subtitles in summary page (#18779)

 tests/test_form_pages.py         | 29 +++++++++++++++++++++++++++++
 wcs/forms/common.py              | 17 +++++++++++++++--
 wcs/qommon/static/css/qommon.css |  9 +++++++++
 3 files changed, 53 insertions(+), 2 deletions(-)
tests/test_form_pages.py
1018 1018
    assert emails.emails.get('New form (test)')
1019 1019
    assert emails.emails.get('New form (test)')['email_rcpt'] == ['foo@localhost']
1020 1020

  
1021
def test_form_titles(pub):
1022
    formdef = create_formdef()
1023
    formdef.fields = [
1024
        fields.PageField(id='0', label='1st page', type='page'),
1025
        fields.TitleField(id='4', label='1st page', type='title'),
1026
        fields.SubtitleField(id='5', label='subtitle of 1st page', type='subtitle'),
1027
        fields.StringField(id='1', label='string'),
1028
        fields.PageField(id='2', label='2nd page', type='page'),
1029
        fields.TitleField(id='6', label='title of second page', type='title'),
1030
        fields.StringField(id='3', label='string 2', required=False)]
1031
    formdef.store()
1032
    formdef.data_class().wipe()
1033

  
1034
    resp = get_app(pub).get('/test/')
1035
    assert not '<h3>1st page/h3>' in resp.body
1036
    assert '<h4>subtitle of 1st page</h4>' in resp.body
1037
    resp.form['f1'] = 'foo'
1038
    resp = resp.form.submit('submit')
1039
    assert '<h3>title of second page</h3>' in resp.body
1040
    resp = resp.form.submit('submit')  # -> validation page
1041
    assert '<h3>1st page</h3>' in resp.body
1042
    assert '<h4>subtitle of 1st page</h4>' in resp.body
1043
    assert '<h3>title of second page</h3>' in resp.body
1044
    resp = resp.form.submit('submit').follow()  # -> submit
1045
    assert '<h3>1st page</h3>' in resp.body
1046
    assert not '<div class="title "><h3>1st page</h3></div>' in resp.body
1047
    assert '<div class="subtitle "><h4>subtitle of 1st page</h4></div>' in resp.body
1048
    assert '<div class="title "><h3>title of second page</h3></div>' in resp.body
1049

  
1021 1050
def test_form_visit_existing(pub):
1022 1051
    user = create_user(pub)
1023 1052
    formdef = create_formdef()
wcs/forms/common.py
332 332
        r = TemplateIO(html=True)
333 333
        on_page = False
334 334
        on_disabled_page = False
335
        for f in fields:
335
        for i, f in enumerate(fields):
336 336
            if f.type == 'page':
337 337
                on_disabled_page = False
338 338
                if not f.is_visible(self.filled.data, self.formdef):
......
359 359
                r += htmltext('<div class="page">')
360 360
                r += htmltext('<h3>%s</h3>') % f.label
361 361
                r += htmltext('<div>')
362
                on_page = True
362
                on_page = f
363
                continue
364

  
365
            if f.type == 'title' and on_page and fields[i-1] is on_page and on_page.label == f.label:
366
                # don't include first title of a page if that title has the
367
                # same text as the page.
368
                continue
369

  
370
            if f.type == 'title':
371
                r += htmltext('<div class="title %s"><h3>%s</h3></div>') % (f.extra_css_class or '', f.label)
372
                continue
373

  
374
            if f.type == 'subtitle':
375
                r += htmltext('<div class="subtitle %s"><h4>%s</h4></div>') % (f.extra_css_class or '', f.label)
363 376
                continue
364 377

  
365 378
            if not hasattr(f, str('get_view_value')):
wcs/qommon/static/css/qommon.css
324 324
	margin-bottom: 1ex;
325 325
}
326 326

  
327
div.dataview div.title h3 {
328
	font-size: 115%;
329
}
330

  
331
div.dataview div.subtitle h4{
332
	font-size: 110%;
333
	border: none;
334
}
335

  
327 336
a#display-exception {
328 337
    display: none;
329 338
}
330
-