Projet

Général

Profil

0001-fields-show-hint-on-blocks-only-once-45686.patch

Thomas Noël, 03 août 2020 15:21

Télécharger (2,83 ko)

Voir les différences:

Subject: [PATCH] fields: show hint on blocks only once (#45686)

 tests/test_form_pages.py | 8 ++++++--
 wcs/blocks.py            | 2 ++
 2 files changed, 8 insertions(+), 2 deletions(-)
tests/test_form_pages.py
8273 8273
    formdef = FormDef()
8274 8274
    formdef.name = 'form title'
8275 8275
    formdef.fields = [
8276
        fields.BlockField(id='1', label='test', type='block:foobar'),
8276
        fields.BlockField(id='1', label='test', type='block:foobar', hint='hintblock'),
8277 8277
    ]
8278 8278
    formdef.store()
8279 8279

  
8280 8280
    app = get_app(pub)
8281 8281
    resp = app.get(formdef.get_url())
8282
    assert resp.text.count('>hintblock<') == 1
8282 8283
    resp.form['f1$element0$f123'] = 'foo'
8283 8284
    resp.form['f1$element0$f234'] = 'bar'
8284 8285
    resp = resp.form.submit('submit')  # -> validation page
......
8574 8575
    formdef.name = 'form title'
8575 8576
    formdef.fields = [
8576 8577
        fields.PageField(id='0', label='1st page', type='page'),
8577
        fields.BlockField(id='1', label='test', type='block:foobar', max_items=3),
8578
        fields.BlockField(id='1', label='test', type='block:foobar', max_items=3, hint='hintblock'),
8578 8579
        fields.PageField(id='2', label='2nd page', type='page'),
8579 8580
    ]
8580 8581
    formdef.store()
......
8582 8583
    app = get_app(pub)
8583 8584
    resp = app.get(formdef.get_url())
8584 8585
    assert resp.text.count('>Test<') == 1
8586
    assert resp.text.count('>hintblock<') == 1
8585 8587
    assert 'Add another' in resp
8586 8588
    resp = resp.form.submit('f1$add_element')
8587 8589
    assert resp.text.count('>Test<') == 2
8590
    assert resp.text.count('>hintblock<') == 1
8588 8591
    resp = resp.form.submit('f1$add_element')
8589 8592
    assert resp.text.count('>Test<') == 3
8593
    assert resp.text.count('>hintblock<') == 1
8590 8594
    assert 'Add another' not in resp
8591 8595

  
8592 8596
    # fill items (1st and 3rd row)
wcs/blocks.py
261 261
            element_values = value.get('data')
262 262
        if not max_items:
263 263
            max_items = 1
264
        hint = kwargs.pop('hint', None)
264 265
        element_kwargs = {'block': self.block, 'render_br': False}
265 266
        element_kwargs.update(kwargs)
266 267
        super().__init__(
......
271 272
            element_type=BlockSubWidget,
272 273
            element_kwargs=element_kwargs,
273 274
            add_element_label=add_element_label or _('Add another'),
275
            hint=hint,
274 276
            **kwargs,
275 277
        )
276 278

  
277
-