fix: import log preview

(cherry picked from commit 1ad264de48)
This commit is contained in:
ljain112
2024-06-25 14:47:23 +05:30
committed by Mergify
parent 71311ffd62
commit 62aac8bb85
2 changed files with 99 additions and 56 deletions

View File

@@ -299,7 +299,7 @@ frappe.ui.form.on("Bank Statement Import", {
// method: 'frappe.core.doctype.data_import.data_import.get_preview_from_template', // method: 'frappe.core.doctype.data_import.data_import.get_preview_from_template',
show_import_preview(frm, preview_data) { show_import_preview(frm, preview_data) {
let import_log = JSON.parse(frm.doc.statement_import_log || "[]"); let import_log = preview_data.import_log;
if (frm.import_preview && frm.import_preview.doctype === frm.doc.reference_doctype) { if (frm.import_preview && frm.import_preview.doctype === frm.doc.reference_doctype) {
frm.import_preview.preview_data = preview_data; frm.import_preview.preview_data = preview_data;
@@ -413,16 +413,18 @@ frappe.ui.form.on("Bank Statement Import", {
frm.trigger("show_import_log"); frm.trigger("show_import_log");
}, },
show_import_log(frm) { render_import_log(frm) {
let import_log = JSON.parse(frm.doc.statement_import_log || "[]"); frappe.call({
let logs = import_log; method: "erpnext.accounts.doctype.bank_statement_import.bank_statement_import.get_import_logs",
frm.toggle_display("import_log", false); args: {
frm.toggle_display("import_log_section", logs.length > 0); docname: frm.doc.name,
},
callback: function (r) {
let logs = r.message;
if (logs.length === 0) { if (logs.length === 0) return;
frm.get_field("import_log_preview").$wrapper.empty();
return; frm.toggle_display("import_log_section", true);
}
let rows = logs let rows = logs
.map((log) => { .map((log) => {
@@ -446,8 +448,7 @@ frappe.ui.form.on("Bank Statement Import", {
]); ]);
} }
} else { } else {
let messages = log.messages let messages = JSON.parse(log.messages || "[]")
.map(JSON.parse)
.map((m) => { .map((m) => {
let title = m.title ? `<strong>${m.title}</strong>` : ""; let title = m.title ? `<strong>${m.title}</strong>` : "";
let message = m.message ? `<div>${m.message}</div>` : ""; let message = m.message ? `<div>${m.message}</div>` : "";
@@ -473,7 +474,7 @@ frappe.ui.form.on("Bank Statement Import", {
} }
return `<tr> return `<tr>
<td>${log.row_indexes.join(", ")}</td> <td>${JSON.parse(log.row_indexes).join(", ")}</td>
<td> <td>
<div class="indicator ${indicator_color}">${title}</div> <div class="indicator ${indicator_color}">${title}</div>
</td> </td>
@@ -501,4 +502,33 @@ frappe.ui.form.on("Bank Statement Import", {
</table> </table>
`); `);
}, },
});
},
show_import_log(frm) {
frm.toggle_display("import_log_section", false);
if (frm.is_new() || frm.import_in_progress) {
return;
}
frappe.call({
method: "frappe.client.get_count",
args: {
doctype: "Data Import Log",
filters: {
data_import: frm.doc.name,
},
},
callback: function (r) {
let count = r.message;
if (count < 5000) {
frm.trigger("render_import_log");
} else {
frm.toggle_display("import_log_section", false);
frm.add_custom_button(__("Export Import Log"), () => frm.trigger("export_import_log"));
}
},
});
},
}); });

View File

@@ -270,6 +270,19 @@ def get_import_status(docname):
return import_status return import_status
@frappe.whitelist()
def get_import_logs(docname: str):
frappe.has_permission("Bank Statement Import")
return frappe.get_all(
"Data Import Log",
fields=["success", "docname", "messages", "exception", "row_indexes"],
filters={"data_import": docname},
limit_page_length=5000,
order_by="log_index",
)
@frappe.whitelist() @frappe.whitelist()
def upload_bank_statement(**args): def upload_bank_statement(**args):
args = frappe._dict(args) args = frappe._dict(args)