29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
import frappe
|
|
|
|
@frappe.whitelist()
|
|
def create_delete_request(target_doctype, target_name, target_display, reason, department):
|
|
"""Create a deletion request for any doctype"""
|
|
doc = frappe.new_doc("Delete Request")
|
|
doc.target_doctype = target_doctype
|
|
doc.target_name = target_name
|
|
doc.target_display = target_display or target_name
|
|
doc.reason = reason or ""
|
|
doc.department = department or ""
|
|
doc.requested_by = frappe.session.user
|
|
doc.status = "Pending"
|
|
doc.workflow_state = "Pending Supervisor"
|
|
doc.insert(ignore_permissions=False)
|
|
return {"name": doc.name, "status": "created"}
|
|
|
|
@frappe.whitelist()
|
|
def get_pending_requests(doctype_filter=None):
|
|
"""Get pending requests for current approver"""
|
|
filters = {"workflow_state": ["in", ["Pending Supervisor", "Pending Cluster Manager"]]}
|
|
if doctype_filter:
|
|
filters["target_doctype"] = doctype_filter
|
|
return frappe.get_list(
|
|
"Delete Request",
|
|
filters=filters,
|
|
fields=["name", "target_doctype", "target_name", "target_display",
|
|
"reason", "department", "requested_by", "workflow_state", "creation"]
|
|
) |