fields: make sure item fields are stored as strings (#50102)
This commit is contained in:
parent
2691f4c80c
commit
d2aff90e9a
|
@ -4698,6 +4698,41 @@ def test_set_backoffice_field_boolean(two_pubs):
|
|||
formdata.store()
|
||||
|
||||
|
||||
def test_set_backoffice_field_str_time_filter(two_pubs):
|
||||
Workflow.wipe()
|
||||
FormDef.wipe()
|
||||
wf = Workflow(name='xxx')
|
||||
wf.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(wf)
|
||||
st1 = wf.add_status('Status1')
|
||||
wf.backoffice_fields_formdef.fields = [
|
||||
StringField(id='bo1', label='1st backoffice field',
|
||||
type='str', varname='backoffice_str'),
|
||||
]
|
||||
wf.store()
|
||||
|
||||
formdef = FormDef()
|
||||
formdef.name = 'baz'
|
||||
formdef.fields = [StringField(id='1', label='field', type='str', varname='foo')]
|
||||
formdef.workflow_id = wf.id
|
||||
formdef.store()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'1': '09:00'}
|
||||
formdata.just_created()
|
||||
formdata.store()
|
||||
get_publisher().substitutions.feed(formdata)
|
||||
|
||||
for tmpl in ('{{ form_var_foo|time:"H:i:s" }}', '{{ form_var_foo|time }}'):
|
||||
item = SetBackofficeFieldsWorkflowStatusItem()
|
||||
item.parent = st1
|
||||
item.fields = [{'field_id': 'bo1', 'value': tmpl}]
|
||||
item.perform(formdata)
|
||||
formdata = formdef.data_class().get(formdata.id)
|
||||
assert formdata.data['bo1'] == '09:00:00'
|
||||
formdata.data['bo1'] = None
|
||||
formdata.store()
|
||||
|
||||
|
||||
def test_set_backoffice_field_block(two_pubs, blocks_feature):
|
||||
BlockDef.wipe()
|
||||
Workflow.wipe()
|
||||
|
|
|
@ -1677,6 +1677,11 @@ class ItemField(WidgetField, MapOptionsMixin):
|
|||
return
|
||||
return value
|
||||
|
||||
def convert_value_from_anything(self, value):
|
||||
if value is None:
|
||||
return None
|
||||
return str(value)
|
||||
|
||||
def convert_value_from_str(self, value):
|
||||
# caller should also call store_display_value and store_structured_value
|
||||
return value
|
||||
|
|
Loading…
Reference in New Issue