feat: handle bulk delete
This commit is contained in:
parent
b47fc5b93b
commit
4a836a58ee
@ -741,7 +741,7 @@ def getLinkedDocs(doctype, docname):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def removeLinkedDocReference(doctype=None, docname=None,removeAll=False,removeContact=None):
|
def removeLinkedDocReference(doctype=None, docname=None,removeAll=False,removeContact=None):
|
||||||
|
|
||||||
if (not doctype or not docname) and not removeAll:
|
if (not doctype or not docname) and not removeAll:
|
||||||
return "Invalid doctype or docname"
|
return "Invalid doctype or docname"
|
||||||
|
|
||||||
@ -750,10 +750,11 @@ def removeLinkedDocReference(doctype=None, docname=None,removeAll=False,removeCo
|
|||||||
ref_doc = getLinkedDocs(doctype, docname)
|
ref_doc = getLinkedDocs(doctype, docname)
|
||||||
for linked_doc in ref_doc:
|
for linked_doc in ref_doc:
|
||||||
removeContactLink(linked_doc["reference_doctype"], linked_doc["reference_docname"])
|
removeContactLink(linked_doc["reference_doctype"], linked_doc["reference_docname"])
|
||||||
|
|
||||||
return "success"
|
return "success"
|
||||||
|
|
||||||
|
|
||||||
linked_docs = getLinkedDocs(doctype, docname)
|
linked_docs = getLinkedDocs(doctype, docname)
|
||||||
|
|
||||||
for linked_doc in linked_docs:
|
for linked_doc in linked_docs:
|
||||||
removeDocLink(linked_doc["reference_doctype"], linked_doc["reference_docname"])
|
removeDocLink(linked_doc["reference_doctype"], linked_doc["reference_docname"])
|
||||||
return "success"
|
return "success"
|
||||||
@ -780,4 +781,17 @@ def removeContactLink(doctype, docname):
|
|||||||
"contacts": [],
|
"contacts": [],
|
||||||
})
|
})
|
||||||
linked_doc_data.save(ignore_permissions=True)
|
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',
|
theme: 'red',
|
||||||
onClick: (close) => {
|
onClick: (close) => {
|
||||||
capture('bulk_delete')
|
capture('bulk_delete')
|
||||||
call('frappe.desk.reportview.delete_items', {
|
call('crm.api.doc.deleteBulkDocs', {
|
||||||
items: JSON.stringify(Array.from(selections)),
|
items: JSON.stringify(Array.from(selections)),
|
||||||
doctype: props.doctype,
|
doctype: props.doctype,
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user