feat: handle bulk delete

This commit is contained in:
Pratik 2025-05-22 07:15:22 +00:00
parent b47fc5b93b
commit 4a836a58ee
2 changed files with 18 additions and 4 deletions

View File

@ -741,7 +741,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"
@ -750,10 +750,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"
@ -780,4 +781,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"

View File

@ -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(() => {