carddata: skip empty blocks when updating related items (#88224)
gitea/wcs/pipeline/head This commit looks good
Details
gitea/wcs/pipeline/head This commit looks good
Details
This commit is contained in:
parent
d2b95ce0d0
commit
1a4fdc71cf
|
@ -1416,6 +1416,7 @@ def test_card_update_related(pub):
|
|||
formdef.name = 'foo2'
|
||||
formdef.fields = [
|
||||
BlockField(id='1', label='Test', block_slug=blockdef.slug),
|
||||
BlockField(id='2', label='Test2', block_slug=blockdef.slug), # left empty
|
||||
]
|
||||
formdef.store()
|
||||
|
||||
|
|
|
@ -203,13 +203,14 @@ class UpdateRelationsAfterJob(AfterJob):
|
|||
objdata_changed = False
|
||||
for field in fields:
|
||||
if getattr(field, 'block_field', None):
|
||||
blockdata_changed = False
|
||||
for block_row_data in objdata.data[field.block_field.id]['data']:
|
||||
blockdata_changed |= update_data(field, block_row_data)
|
||||
if blockdata_changed:
|
||||
# if block data changed, maybe block digest changed too
|
||||
update_data(field.block_field, objdata.data)
|
||||
objdata_changed |= blockdata_changed
|
||||
if objdata.data.get(field.block_field.id):
|
||||
blockdata_changed = False
|
||||
for block_row_data in objdata.data[field.block_field.id]['data']:
|
||||
blockdata_changed |= update_data(field, block_row_data)
|
||||
if blockdata_changed:
|
||||
# if block data changed, maybe block digest changed too
|
||||
update_data(field.block_field, objdata.data)
|
||||
objdata_changed |= blockdata_changed
|
||||
else:
|
||||
objdata_changed |= update_data(field, objdata.data)
|
||||
if objdata_changed:
|
||||
|
|
Loading…
Reference in New Issue