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"] )