workflows: correctly reset display/structured data (#46657)

This commit is contained in:
Frédéric Péters 2020-09-15 12:44:20 +02:00
parent fa4a58429d
commit a9dc330eb4
2 changed files with 24 additions and 0 deletions

View File

@ -5267,6 +5267,25 @@ def test_edit_carddata_with_data_sourced_object(pub):
assert data.data['2'] == 'b'
assert data.data['2_display'] == 'baker'
# reset data
edit.mappings = [
Mapping(field_id='2', expression='=None'),
]
wf.store()
formdata = formdef.data_class()()
formdata.data = {
'0': '1',
'1': 'b'
}
formdata.store()
formdata.just_created()
formdata.perform_workflow()
data = carddef.data_class().select()[0]
assert data.data['2'] is None
assert data.data['2_display'] is None
def test_edit_carddata_with_linked_object(pub):
FormDef.wipe()

View File

@ -424,7 +424,12 @@ class CreateFormdataWorkflowStatusItem(WorkflowStatusItem):
formdata.data['%s' % field.id] = value
if value is None:
if field.store_display_value:
formdata.data['%s_display' % field.id] = None
if field.store_structured_value:
formdata.data['%s_structured' % field.id] = None
return
if field.store_display_value:
display_value = field.store_display_value(
formdata.data, field.id)