мс вместо сек, идемпотентность (кнопка блокируется после успеха), v1.9
This commit is contained in:
+3
-3
@@ -221,7 +221,7 @@ class ContractsApp:
|
||||
"UPDATE documents SET parsed_text=%s, status='parsed' WHERE id=%s",
|
||||
(ztext, str(zdoc_id)),
|
||||
)
|
||||
zelapsed = round(time_mod.time() - zf_start, 1)
|
||||
zelapsed = round(time_mod.time() - zf_start, 2)
|
||||
files_processed += 1
|
||||
yield f"data: {json.dumps({'type': 'file_done', 'name': zname, 'time_s': zelapsed, 'elements': len(zelements)})}\n\n"
|
||||
except Exception as e:
|
||||
@@ -242,11 +242,11 @@ class ContractsApp:
|
||||
"UPDATE documents SET parsed_text=%s, status='parsed' WHERE id=%s",
|
||||
(text, str(s["doc_id"])),
|
||||
)
|
||||
elapsed = round(time_mod.time() - file_start, 1)
|
||||
elapsed = round(time_mod.time() - file_start, 2)
|
||||
files_processed += 1
|
||||
yield f"data: {json.dumps({'type': 'file_done', 'name': s['filename'], 'time_s': elapsed, 'elements': len(elements)})}\n\n"
|
||||
|
||||
total_time = round(time_mod.time() - start_time, 1)
|
||||
total_time = round(time_mod.time() - start_time, 2)
|
||||
yield f"data: {json.dumps({'type': 'summary', 'total_time_s': total_time, 'total_bytes': total_bytes, 'files_processed': files_processed})}\n\n"
|
||||
|
||||
return Response(generate(), mimetype="text/event-stream")
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<body>
|
||||
<div class="topbar">
|
||||
<img src="{{ url_for('static', filename='nubes-logo.svg') }}" alt="Nubes">
|
||||
<span class="title">Сверка договоров <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.8</span></span>
|
||||
<span class="title">Сверка договоров <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.9</span></span>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
@@ -265,7 +265,7 @@
|
||||
var now = Date.now();
|
||||
document.querySelectorAll('.proc-timer').forEach(function(el) {
|
||||
var start = parseInt(el.dataset.start);
|
||||
if (start) el.textContent = '⏳ ' + Math.round((now - start) / 1000) + 'с';
|
||||
if (start) el.textContent = '⏳ ' + ((now - start) / 1000).toFixed(1) + 'с';
|
||||
});
|
||||
}, 500);
|
||||
|
||||
@@ -310,7 +310,11 @@
|
||||
else if (d.type === 'summary') {
|
||||
clearInterval(timerInterval);
|
||||
es.close();
|
||||
resetBtn();
|
||||
|
||||
// Идемпотентность: больше нельзя запустить
|
||||
parseBtn.disabled = true;
|
||||
parseBtn.innerHTML = '<i data-lucide="check" style="width:16px;height:16px;"></i> ✓ Готово';
|
||||
lucide.createIcons();
|
||||
|
||||
var summaryRow = document.createElement('tr');
|
||||
summaryRow.className = 'summary-row';
|
||||
|
||||
Reference in New Issue
Block a user