{% extends "admin/change_list.html" %} {% block object-tools %}
{{ block.super }} {% endblock %} {% block extrahead %} {{ block.super }} {% include "dashboard/_safe_dom.html" %} function llmStatusLine(color, text) { const span = stapelDom.el('span', null, text); span.style.color = color; stapelDom.replace('llm-status-text', span); } function checkLlmStatus() { fetch('llm_status/') .then(response => response.json()) .then(data => { if (data.status === 'running') { llmStatusLine('orange', `⏳ Running: ${data.completed}/${data.total} (${data.translated} ok, ${data.errors} errors)`); // Auto-refresh while running setTimeout(checkLlmStatus, 3000); } else if (data.status === 'completed') { llmStatusLine('green', `✓ Done: ${data.translated} translated, ${data.errors} errors`); } else { llmStatusLine('gray', 'Idle'); } }) .catch(err => { llmStatusLine('red', `Error: ${err}`); }); } stapelDom.register({checkLlmStatus: checkLlmStatus}); // Check status on page load document.addEventListener('DOMContentLoaded', checkLlmStatus); {% endblock %}