Projet

Général

Profil

0001-wf-allow-empty-values-for-fields-58632.patch

Serghei Mihai, 08 décembre 2021 11:17

Télécharger (2,92 ko)

Voir les différences:

Subject: [PATCH] wf: allow empty values for fields (#58632)

 tests/workflow/test_all.py | 14 +++++++++++---
 wcs/wf/create_formdata.py  |  2 +-
 2 files changed, 12 insertions(+), 4 deletions(-)
tests/workflow/test_all.py
5867 5867
    target_formdef.name = 'target form'
5868 5868
    target_formdef.fields = [
5869 5869
        StringField(id='0', label='string', varname='foo_string'),
5870
        StringField(id='1', label='second string', varname='bar_string'),
5870 5871
    ]
5871 5872
    target_formdef.store()
5872 5873

  
......
5876 5877
    create.label = 'create a new linked form'
5877 5878
    create.varname = 'resubmitted'
5878 5879
    create.id = '_create'
5880
    create.map_fields_by_varname = True
5879 5881
    create.mappings = [
5880 5882
        Mapping(field_id='0', expression='=form_var_toto_string'),
5881
        Mapping(field_id='1', expression='=form_var_toto_file_raw'),
5883
        Mapping(field_id='1', expression=None),
5882 5884
        Mapping(field_id='2', expression='=form_var_toto_item_raw'),
5883 5885
    ]
5884 5886
    create.parent = wf.possible_status[1]
......
5887 5889

  
5888 5890
    source_formdef = FormDef()
5889 5891
    source_formdef.name = 'source form'
5890
    source_formdef.fields = []
5892
    source_formdef.fields = [
5893
        StringField(id='0', label='Bar', varname='bar_string'),
5894
    ]
5891 5895
    source_formdef.workflow_id = wf.id
5892 5896
    source_formdef.store()
5893 5897

  
5894 5898
    formdata = source_formdef.data_class()()
5895
    formdata.data = {}
5899
    formdata.data = {'0': 'hello'}
5900
    formdata.store()
5896 5901
    formdata.just_created()
5897 5902

  
5898 5903
    assert target_formdef.data_class().count() == 0
......
5916 5921
        assert errors[0].formdata_id == str(target_formdef.data_class().select()[0].id)
5917 5922
        assert errors[1].formdata_id == str(target_formdef.data_class().select()[0].id)
5918 5923

  
5924
    target_data = target_formdef.data_class().select()[0]
5925
    assert target_data.data['1'] is None
5926

  
5919 5927
    # no tracking code has been created
5920 5928
    created_formdata = target_formdef.data_class().select()[0]
5921 5929
    assert created_formdata.tracking_code is None
wcs/wf/create_formdata.py
291 291
    formdef_slug = None
292 292
    formdef_label = _('Form')
293 293
    mappings_label = _('Mappings to new form fields')
294
    accept_empty_value = False
294
    accept_empty_value = True
295 295
    varname_hint = _('This is used to get linked forms in expressions.')
296 296
    user_association_option_label = _('User to associate to form')
297 297

  
298
-