0001-forms-include-titles-and-subtitles-in-summary-page-1.patch
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 '<h4 class="title ">1st page</h4>' in resp.body |
|
1047 |
assert '<h5 class="subtitle ">subtitle of 1st page</h5>' in resp.body |
|
1048 |
assert '<h4 class="title ">title of second page</h4>' 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('<h4 class="title %s">%s</h4>') % (f.extra_css_class or '', f.label) |
|
372 |
continue |
|
373 | ||
374 |
if f.type == 'subtitle': |
|
375 |
r += htmltext('<h5 class="subtitle %s">%s</h5>') % (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 h4.title { |
|
328 |
font-size: 110%; |
|
329 |
} |
|
330 | ||
331 |
div.dataview h5.subtitle { |
|
332 |
font-size: 100%; |
|
333 |
} |
|
334 | ||
327 | 335 |
a#display-exception { |
328 | 336 |
display: none; |
329 | 337 |
} |
330 |
- |