misc: refine file search in blocks when looking for unused files (#46937)

This commit is contained in:
Thomas NOËL 2020-09-24 10:08:22 +02:00
parent 784670ed10
commit f4886f5b0a
2 changed files with 5 additions and 3 deletions

View File

@ -379,6 +379,7 @@ def test_unused_file_removal_job(pub):
}
formdata.data['6']['data'][0]['234'].receive([b'hello world'])
formdata.data['6']['data'][1]['234'].receive([b'hello world block'])
formdata.workflow_data = {'wscall': {'data': ['not', 'a', 'block'], 'err': 0}}
formdata.store()
assert len(os.listdir(os.path.join(pub.app_dir, 'uploads'))) == 2
clean_unused_files(pub)

View File

@ -1628,9 +1628,10 @@ def clean_unused_files(publisher):
yield field_data.get_fs_filename()
elif isinstance(field_data, dict) and isinstance(field_data.get('data'), list):
for subfield_rowdata in field_data.get('data'):
for field_data in subfield_rowdata.values():
if is_upload(field_data):
yield field_data.get_fs_filename()
if isinstance(subfield_rowdata, dict):
for block_field_data in subfield_rowdata.values():
if is_upload(block_field_data):
yield block_field_data.get_fs_filename()
for part in formdata.iter_evolution_parts():
if is_attachment(part):
yield part.filename