From fc5ce044e6835e5197aa541ad2dba2c0915c1109 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Thu, 29 Feb 2024 16:34:14 +0530 Subject: [PATCH] fix: prevent deletion if document is locked --- frappe/model/delete_doc.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frappe/model/delete_doc.py b/frappe/model/delete_doc.py index 47aea6a836..e64c50af91 100644 --- a/frappe/model/delete_doc.py +++ b/frappe/model/delete_doc.py @@ -104,7 +104,17 @@ def delete_doc( pass else: - doc = frappe.get_doc(doctype, name, for_update=True) + # Lock the doc without waiting + try: + frappe.db.get_value(doctype, name, for_update=True, wait=False) + except frappe.QueryTimeoutError: + frappe.throw( + _( + "This document can not be deleted right now as it's being modified by another user. Please try again after some time." + ), + exc=frappe.QueryTimeoutError, + ) + doc = frappe.get_doc(doctype, name) if not for_reload: update_flags(doc, flags, ignore_permissions)