Merge pull request #10543 from prssanna/rename-doc-todo-fix
fix: update assignments on merging docs
This commit is contained in:
commit
3f5e90bb09
1 changed files with 23 additions and 0 deletions
|
|
@ -56,6 +56,8 @@ def rename_doc(doctype, old, new, force=False, merge=False, ignore_permissions=F
|
|||
|
||||
if not merge:
|
||||
rename_parent_and_child(doctype, old, new, meta)
|
||||
else:
|
||||
update_assignments(old, new, doctype)
|
||||
|
||||
# update link fields' values
|
||||
link_fields = get_link_fields(doctype)
|
||||
|
|
@ -104,6 +106,27 @@ def rename_doc(doctype, old, new, force=False, merge=False, ignore_permissions=F
|
|||
|
||||
return new
|
||||
|
||||
def update_assignments(old, new, doctype):
|
||||
old_assignments = frappe.parse_json(frappe.db.get_value(doctype, old, '_assign')) or []
|
||||
new_assignments = frappe.parse_json(frappe.db.get_value(doctype, new, '_assign')) or []
|
||||
common_assignments = list(set(old_assignments).intersection(new_assignments))
|
||||
|
||||
for user in common_assignments:
|
||||
# delete todos linked to old doc
|
||||
todos = frappe.db.get_all('ToDo',
|
||||
{
|
||||
'owner': user,
|
||||
'reference_type': doctype,
|
||||
'reference_name': old,
|
||||
},
|
||||
['name', 'description']
|
||||
)
|
||||
|
||||
for todo in todos:
|
||||
frappe.delete_doc('ToDo', todo.name)
|
||||
|
||||
unique_assignments = list(set(old_assignments + new_assignments))
|
||||
frappe.db.set_value(doctype, new, '_assign', frappe.as_json(unique_assignments, indent=0))
|
||||
|
||||
def update_user_settings(old, new, link_fields):
|
||||
'''
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue