diff --git a/frappe/core/doctype/deleted_document/deleted_document.py b/frappe/core/doctype/deleted_document/deleted_document.py
index e637f4f000..d8f39ca139 100644
--- a/frappe/core/doctype/deleted_document/deleted_document.py
+++ b/frappe/core/doctype/deleted_document/deleted_document.py
@@ -44,9 +44,7 @@ def restore(name, alert=True):
def bulk_restore(docnames):
docnames = frappe.parse_json(docnames)
message = _('Restoring Deleted Document')
- restored = []
- invalid = []
- failed = []
+ restored, invalid, failed = [], [], []
for i, d in enumerate(docnames):
try:
@@ -60,32 +58,25 @@ def bulk_restore(docnames):
invalid.append(d)
except Exception:
+ frappe.message_log.pop()
failed.append(d)
frappe.db.rollback()
- frappe.message_log.pop()
if failed or invalid:
- tail = ""
+ def body(docnames):
+ href = "
{0}"
+ return "
" + "".join([href.format(docname) for docname in docnames])
- restored_data = ""
- restored_head = _("Documents restored successfully") + "
"
- for docname in restored:
- restored_data += "- {0}
".format(docname)
- restored_body = restored_head + restored_data + tail
+ def message(title, docnames):
+ if docnames:
+ return _(title) + body(docnames) + "
"
+ return ""
- invalid_data = ""
- invalid_head = _("Documents that were already Restored") + "
"
- for docname in invalid:
- invalid_data += "- {0}
".format(docname)
- invalid_body = invalid_head + invalid_data + tail
+ restored_summary = message("Documents restored successfully", restored)
+ invalid_summary = message("Documents that were already Restored", invalid)
+ failed_summary = message("Documents that Failed to Restore", failed)
- failed_data = ""
- failed_head = _("Documents that Failed to Restore") + "
"
- for docname in failed:
- failed_data += "- {0}
".format(docname)
- failed_body = failed_head + failed_data + tail
-
- summary = (restored_body if restored else "") + (invalid_body if invalid else "") + (failed_body if failed else "")
+ summary = restored_summary + invalid_summary + failed_summary
frappe.msgprint(summary, title="Document Restoration Summary", indicator="orange", is_minimizable=True)
return restored