fix: Show ETA
This commit is contained in:
parent
87e525d40c
commit
fc28a7eb72
2 changed files with 19 additions and 0 deletions
|
|
@ -5,6 +5,7 @@
|
|||
import io
|
||||
import csv
|
||||
import json
|
||||
import timeit
|
||||
import frappe
|
||||
from datetime import datetime
|
||||
from frappe import _
|
||||
|
|
@ -42,6 +43,7 @@ class Importer:
|
|||
self.data = None
|
||||
# used to store date formats guessed from data rows per column
|
||||
self._guessed_date_formats = {}
|
||||
self.last_eta = 0
|
||||
self.meta = frappe.get_meta(doctype)
|
||||
self.prepare_content(file_path, content)
|
||||
|
||||
|
|
@ -359,7 +361,10 @@ class Importer:
|
|||
|
||||
try:
|
||||
print("Importing", doc)
|
||||
start = timeit.default_timer()
|
||||
doc = self.process_doc(doc)
|
||||
processing_time = timeit.default_timer() - start
|
||||
eta = self.get_eta(current_index, total_payload_count, processing_time)
|
||||
frappe.publish_realtime(
|
||||
"data_import_progress",
|
||||
{
|
||||
|
|
@ -368,6 +373,7 @@ class Importer:
|
|||
"docname": doc.name,
|
||||
"success": True,
|
||||
"row_indexes": row_indexes,
|
||||
"eta": eta
|
||||
},
|
||||
)
|
||||
import_log.append(
|
||||
|
|
@ -570,6 +576,13 @@ class Importer:
|
|||
return autoname_field.fieldname
|
||||
return 'name'
|
||||
|
||||
def get_eta(self, current, total, processing_time):
|
||||
remaining = total - current
|
||||
eta = processing_time * remaining
|
||||
if not self.last_eta or eta < self.last_eta:
|
||||
self.last_eta = eta
|
||||
return self.last_eta
|
||||
|
||||
|
||||
DATE_FORMATS = [
|
||||
r"%d-%m-%Y",
|
||||
|
|
|
|||
|
|
@ -11,6 +11,10 @@ frappe.ui.form.on('Data Import Beta', {
|
|||
});
|
||||
frappe.realtime.on('data_import_progress', data => {
|
||||
let percent = Math.floor((data.current * 100) / data.total);
|
||||
let eta_message =
|
||||
data.eta < 60
|
||||
? __('ETA {0} seconds', [Math.floor(data.eta)])
|
||||
: __('ETA {0} minutes', [Math.floor(data.eta / 60)]);
|
||||
let message;
|
||||
if (data.success) {
|
||||
let message_args = [data.docname, data.current, data.total];
|
||||
|
|
@ -23,6 +27,7 @@ frappe.ui.form.on('Data Import Beta', {
|
|||
message = __('Skipping ({1} of {2})', [data.current, data.total]);
|
||||
}
|
||||
frm.dashboard.show_progress(__('Import Progress'), percent, message);
|
||||
frm.page.set_indicator(eta_message, 'orange');
|
||||
|
||||
// hide progress when complete
|
||||
if (data.current === data.total) {
|
||||
|
|
@ -68,6 +73,7 @@ frappe.ui.form.on('Data Import Beta', {
|
|||
frm.page.set_primary_action(__('Save'), () => frm.save());
|
||||
}
|
||||
}
|
||||
frm.page.set_indicator(__(frm.doc.status), frm.doc.status === 'Success' ? 'green' : 'grey');
|
||||
},
|
||||
|
||||
show_success_message(frm) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue