feat: handle bulk delete
This commit is contained in:
parent
2b27a21316
commit
f66de4cc72
@ -759,7 +759,7 @@ def getLinkedDocs(doctype, docname):
|
||||
|
||||
@frappe.whitelist()
|
||||
def removeLinkedDocReference(doctype=None, docname=None,removeAll=False,removeContact=None):
|
||||
|
||||
|
||||
if (not doctype or not docname) and not removeAll:
|
||||
return "Invalid doctype or docname"
|
||||
|
||||
@ -768,10 +768,11 @@ def removeLinkedDocReference(doctype=None, docname=None,removeAll=False,removeCo
|
||||
ref_doc = getLinkedDocs(doctype, docname)
|
||||
for linked_doc in ref_doc:
|
||||
removeContactLink(linked_doc["reference_doctype"], linked_doc["reference_docname"])
|
||||
|
||||
return "success"
|
||||
|
||||
|
||||
linked_docs = getLinkedDocs(doctype, docname)
|
||||
|
||||
for linked_doc in linked_docs:
|
||||
removeDocLink(linked_doc["reference_doctype"], linked_doc["reference_docname"])
|
||||
return "success"
|
||||
@ -798,4 +799,17 @@ def removeContactLink(doctype, docname):
|
||||
"contacts": [],
|
||||
})
|
||||
linked_doc_data.save(ignore_permissions=True)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def deleteBulkDocs(doctype, items):
|
||||
from frappe.desk.reportview import delete_bulk
|
||||
|
||||
items = frappe.parse_json(items)
|
||||
for doc in items:
|
||||
removeLinkedDocReference(doctype, doc, removeAll=True,removeContact=doctype=="Contact")
|
||||
|
||||
if len(items) > 10:
|
||||
frappe.enqueue("frappe.desk.reportview.delete_bulk", doctype=doctype, items=items)
|
||||
else:
|
||||
delete_bulk(doctype, items)
|
||||
return "success"
|
||||
@ -102,7 +102,7 @@ function deleteValues(selections, unselectAll) {
|
||||
theme: 'red',
|
||||
onClick: (close) => {
|
||||
capture('bulk_delete')
|
||||
call('frappe.desk.reportview.delete_items', {
|
||||
call('crm.api.doc.deleteBulkDocs', {
|
||||
items: JSON.stringify(Array.from(selections)),
|
||||
doctype: props.doctype,
|
||||
}).then(() => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user