def _update_fs(items, data_dir, create=False, update=False, delete=False):
"""
CREATE OPERATION HANDLING IS CONCERNED ONLY ABOUT ROOT models
NON ROOT MODEL ITEMS ARE IGNORED
We don't dump non-root models, since they belong to one root model
any way and there data will be saved as part of a root model.
example, if user created a task (non root model) and assigned it to contact
cached data will look like
{'changes': {'updated': IdentitySet([<crm.contact.models.Contact object at 0x7f5748a1f5c0>]),
'deleted': IdentitySet([]),
'created': IdentitySet([<crm.task.models.Task object at 0x7f574929dba8>])}}
so Contact object has been updated any way and we'll handle that update add the task in contact data
in File system.
:param items: list of model dictionaries that was created
:param data_dir: where to save files
:return: newly created file paths
:rtype: list
"""
all_paths = []
for item in items:
data = item['data']
if not _is_root_model(data['model']):
continue
if create:
paths = _create_json_file(data_dir, data, item['obj_as_str'])
elif update:
paths = _update_json_file(data_dir, data, item['obj_as_str'])
elif delete:
paths = _delete_json_file(data_dir, data, item['obj_as_str'])
all_paths.extend(paths)
return all_paths
评论列表
文章目录