style: commonify summary generation

This commit is contained in:
Gavin D'souza 2020-07-24 12:21:02 +05:30
parent 85f8c712dc
commit 9d24389c09

View file

@ -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 = "</ul>"
def body(docnames):
href = "<li><a href='/desk#Form/Deleted Document/{0}'>{0}</a></li>"
return "<br><ul>" + "".join([href.format(docname) for docname in docnames])
restored_data = ""
restored_head = _("Documents restored successfully") + "<br><ul>"
for docname in restored:
restored_data += "<li><a href='/desk#Form/Deleted Document/{0}'>{0}</a></li>".format(docname)
restored_body = restored_head + restored_data + tail
def message(title, docnames):
if docnames:
return _(title) + body(docnames) + "</ul>"
return ""
invalid_data = ""
invalid_head = _("Documents that were already Restored") + "<br><ul>"
for docname in invalid:
invalid_data += "<li><a href='/desk#Form/Deleted Document/{0}'>{0}</a></li>".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") + "<br><ul>"
for docname in failed:
failed_data += "<li><a href='/desk#Form/Deleted Document/{0}'>{0}</a></li>".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