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.name = 'foo2'
|
||||||
formdef.fields = [
|
formdef.fields = [
|
||||||
BlockField(id='1', label='Test', block_slug=blockdef.slug),
|
BlockField(id='1', label='Test', block_slug=blockdef.slug),
|
||||||
|
BlockField(id='2', label='Test2', block_slug=blockdef.slug), # left empty
|
||||||
]
|
]
|
||||||
formdef.store()
|
formdef.store()
|
||||||
|
|
||||||
|
|
|
@ -203,13 +203,14 @@ class UpdateRelationsAfterJob(AfterJob):
|
||||||
objdata_changed = False
|
objdata_changed = False
|
||||||
for field in fields:
|
for field in fields:
|
||||||
if getattr(field, 'block_field', None):
|
if getattr(field, 'block_field', None):
|
||||||
blockdata_changed = False
|
if objdata.data.get(field.block_field.id):
|
||||||
for block_row_data in objdata.data[field.block_field.id]['data']:
|
blockdata_changed = False
|
||||||
blockdata_changed |= update_data(field, block_row_data)
|
for block_row_data in objdata.data[field.block_field.id]['data']:
|
||||||
if blockdata_changed:
|
blockdata_changed |= update_data(field, block_row_data)
|
||||||
# if block data changed, maybe block digest changed too
|
if blockdata_changed:
|
||||||
update_data(field.block_field, objdata.data)
|
# if block data changed, maybe block digest changed too
|
||||||
objdata_changed |= blockdata_changed
|
update_data(field.block_field, objdata.data)
|
||||||
|
objdata_changed |= blockdata_changed
|
||||||
else:
|
else:
|
||||||
objdata_changed |= update_data(field, objdata.data)
|
objdata_changed |= update_data(field, objdata.data)
|
||||||
if objdata_changed:
|
if objdata_changed:
|
||||||
|
|
Loading…
Reference in New Issue