feat: handle bulk delete
This commit is contained in:
parent
b47fc5b93b
commit
4a836a58ee
@ -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"
|
||||
@ -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