Seera-Unified-Asset/asset_lite/api/delete_request.py
2026-03-23 17:34:51 +05:30

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