From d1aea9981aa723c2a14314c35f9d7884dc931222 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 14 Jun 2023 12:10:52 +0530 Subject: [PATCH 1/5] fix: re-delete doc if dependent doc is deleted --- frappe/desk/reportview.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index 326e9bb864..290ad8466c 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -479,6 +479,7 @@ def delete_items(): def delete_bulk(doctype, items): + undeleted_items = [] for i, d in enumerate(items): try: frappe.delete_doc(doctype, d) @@ -493,7 +494,10 @@ def delete_bulk(doctype, items): except Exception: # rollback if any record failed to delete # if not rollbacked, queries get committed on after_request method in app.py + undeleted_items.append(d) frappe.db.rollback() + if undeleted_items and len(items) != len(undeleted_items): + delete_bulk(doctype, undeleted_items) @frappe.whitelist() From fd65fe8625a52b92039e31fae56ba24f8082f0d8 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 14 Jun 2023 12:11:21 +0530 Subject: [PATCH 2/5] fix: clear throw message --- frappe/desk/reportview.py | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index 290ad8466c..071b6e7e61 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -497,6 +497,7 @@ def delete_bulk(doctype, items): undeleted_items.append(d) frappe.db.rollback() if undeleted_items and len(items) != len(undeleted_items): + frappe.clear_messages() delete_bulk(doctype, undeleted_items) From f0cf70f9ebac9de1454d51b8bfddbb1ae515eb9b Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 14 Jun 2023 13:24:20 +0530 Subject: [PATCH 3/5] fix: bring progress dailog above freeze screen --- frappe/public/js/frappe/ui/messages.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/public/js/frappe/ui/messages.js b/frappe/public/js/frappe/ui/messages.js index c2d74ee7a3..16096e1845 100644 --- a/frappe/public/js/frappe/ui/messages.js +++ b/frappe/public/js/frappe/ui/messages.js @@ -376,6 +376,7 @@ frappe.show_progress = (title, count, total = 100, description, hide_on_completi // timeout to avoid abrupt hide setTimeout(frappe.hide_progress, 500); } + frappe.cur_progress.$wrapper.css("z-index", 2000); return dialog; }; From 4ec2d5f00d5879699fc37f91b60cc0f52874d404 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Thu, 15 Jun 2023 12:48:55 +0530 Subject: [PATCH 4/5] fix: commit after successfull deletion of all tasks --- frappe/desk/reportview.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index 071b6e7e61..6efd7d8658 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -489,8 +489,6 @@ def delete_bulk(doctype, items): dict(progress=[i + 1, len(items)], title=_("Deleting {0}").format(doctype), description=d), user=frappe.session.user, ) - # Commit after successful deletion - frappe.db.commit() except Exception: # rollback if any record failed to delete # if not rollbacked, queries get committed on after_request method in app.py @@ -499,6 +497,9 @@ def delete_bulk(doctype, items): if undeleted_items and len(items) != len(undeleted_items): frappe.clear_messages() delete_bulk(doctype, undeleted_items) + else: + # Commit after successful deletion + frappe.db.commit() @frappe.whitelist() From f6799307903a652895ff62824907b3c364bf075d Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Thu, 15 Jun 2023 14:07:53 +0530 Subject: [PATCH 5/5] revert: last commit --- frappe/desk/reportview.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index 6efd7d8658..071b6e7e61 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -489,6 +489,8 @@ def delete_bulk(doctype, items): dict(progress=[i + 1, len(items)], title=_("Deleting {0}").format(doctype), description=d), user=frappe.session.user, ) + # Commit after successful deletion + frappe.db.commit() except Exception: # rollback if any record failed to delete # if not rollbacked, queries get committed on after_request method in app.py @@ -497,9 +499,6 @@ def delete_bulk(doctype, items): if undeleted_items and len(items) != len(undeleted_items): frappe.clear_messages() delete_bulk(doctype, undeleted_items) - else: - # Commit after successful deletion - frappe.db.commit() @frappe.whitelist()