強化 PPT 視覺問題追蹤
All checks were successful
CD Pipeline / deploy (push) Successful in 1m6s

This commit is contained in:
OoO
2026-05-19 00:16:21 +08:00
parent 774f1b4b45
commit dddafc579b
6 changed files with 210 additions and 9 deletions

View File

@@ -235,6 +235,49 @@
{% endfor %}
</div>
</section>
{% if issue_items %}
<section class="ppt-issue-board" aria-label="視覺問題追蹤">
<div class="ppt-workbench-head">
<div>
<div class="ppt-label">Vision Findings</div>
<h2 class="ppt-panel-title">視覺問題追蹤</h2>
</div>
<div class="ppt-issue-metrics">
<span><strong>{{ issue_digest.total }}</strong> 問題</span>
<span><strong>{{ issue_digest.files }}</strong> 檔案</span>
<span><strong>{{ issue_digest.error_count }}</strong> 高優先</span>
<span><strong>{{ issue_digest.latest_audit or '—' }}</strong> 最近審核</span>
</div>
</div>
<div class="ppt-issue-grid">
{% for issue in issue_items[:8] %}
<article class="ppt-issue-card is-{{ issue.status }}">
<div class="ppt-issue-top">
<span class="ppt-run-status is-{{ 'error' if issue.status == 'error' else 'planned' }}">{{ issue.slide_label }}</span>
<span class="ppt-label">{{ issue.category }}</span>
</div>
<strong><code>{{ issue.pptx_filename }}</code></strong>
<p>{{ issue.text }}</p>
<div class="ppt-action-foot">
<small class="text-muted">{{ issue.audited_at }}</small>
<a class="btn btn-outline-primary btn-sm"
href="{{ url_for('admin_observability.ppt_audit_file', filename=issue.pptx_filename) }}"
target="_blank"
rel="noopener"
data-ppt-open-preview
data-ppt-filename="{{ issue.pptx_filename }}"
data-ppt-preview-title="問題回放 · {{ issue.pptx_filename }}"
data-ppt-preview-pdf="{{ url_for('admin_observability.ppt_audit_file', filename=issue.pptx_filename, action='pdf') }}"
data-ppt-preview-page="{{ url_for('admin_observability.ppt_audit_file', filename=issue.pptx_filename) }}"
data-ppt-download-url="{{ url_for('admin_observability.ppt_audit_file', filename=issue.pptx_filename, action='download') }}">
<i class="fas fa-eye me-1"></i>回放
</a>
</div>
</article>
{% endfor %}
</div>
</section>
{% endif %}
<section class="ppt-panel mt-3"
data-ppt-auto-generation
data-auto-start="{{ 'true' if auto_generation.can_auto_start else 'false' }}"