feat(workflow): simplify article flow and add automated rewrite step

This commit is contained in:
Oliver 2026-02-21 13:43:22 +01:00
parent 8d7375c99f
commit 35ccceb260
No known key found for this signature in database
11 changed files with 332 additions and 107 deletions

View file

@ -30,7 +30,7 @@
<section class="card">
<h2>{{ article.title }}</h2>
<div class="detail-grid">
<div class="detail-item"><span class="k">Status</span><span><span class="badge">{{ article.status }}</span></span></div>
<div class="detail-item"><span class="k">Status</span><span><span class="badge">{{ article.status_ui }}</span></span></div>
<div class="detail-item"><span class="k">Artikel-Datum</span><span>{{ article.published_at or "-" }}</span></div>
<div class="detail-item"><span class="k">Alter</span><span>{{ article.days_old if article.days_old is not none else "-" }} Tage</span></div>
<div class="detail-item"><span class="k">Relevanz</span><span>{{ article.relevance }}</span></div>
@ -187,8 +187,10 @@
<section class="card">
<h2>Status ändern</h2>
{% if not article.legal_checked %}
<p class="subtle">Hinweis: `published` ist erst nach manueller Rechtsfreigabe erlaubt.</p>
{% if article.status_ui in ["new", "rewrite"] %}
<form method="post" action="/admin/articles/{{ article.id }}/rewrite-run" class="row" style="margin-bottom:8px;">
<button type="submit">Rewrite ausführen (OpenAI)</button>
</form>
{% endif %}
<form method="post" action="/admin/articles/{{ article.id }}/transition" class="row">
<select name="target_status">
@ -215,6 +217,7 @@
</ul>
{% endif %}
{% endif %}
<p class="subtle">Voraussetzungen: Status `publish` und Hauptbild gesetzt.</p>
<form method="post" action="/admin/articles/{{ article.id }}/publish-enqueue" class="row">
<input name="max_attempts" value="3" />
<button type="submit" {% if not article.publish_ready %}disabled{% endif %}>In Queue einreihen</button>

View file

@ -144,7 +144,7 @@
</form>
<table>
<thead>
<tr><th>ID</th><th>Artikel</th><th>Status</th><th>Details</th><th>Review</th><th>Transition</th></tr>
<tr><th>ID</th><th>Artikel</th><th>Status</th><th>Details</th><th>Rewrite</th><th>Transition</th></tr>
</thead>
<tbody>
{% for a in articles %}
@ -160,7 +160,7 @@
<br /><a href="{{ a.canonical_url }}" target="_blank" rel="noopener">Canonical öffnen</a>
{% endif %}
</td>
<td><span class="badge">{{ a.status }}</span></td>
<td><span class="badge">{{ a.status_ui }}</span></td>
<td>
<div class="subtle">Legal: {{ "OK" if a.legal_checked else "offen" }}</div>
<div class="subtle">Publish: {{ "bereit" if a.publish_ready else "blockiert" }}</div>
@ -202,11 +202,9 @@
{% endif %}
</td>
<td>
{% if a.status == "review" %}
<form method="post" action="/admin/articles/{{ a.id }}/review" class="inline">
<input name="note" placeholder="Notiz" />
<button name="decision" value="approve" type="submit">Approve</button>
<button name="decision" value="reject" type="submit" class="secondary">Reject</button>
{% if a.status_ui in ["new", "rewrite"] %}
<form method="post" action="/admin/articles/{{ a.id }}/rewrite-run" class="inline">
<button type="submit">Rewrite ausführen</button>
</form>
{% else %}
-
@ -215,11 +213,11 @@
<td>
<form method="post" action="/admin/articles/{{ a.id }}/transition" class="inline">
<select name="target_status">
{% for s in allowed_transitions.get(a.status, []) %}
{% for s in allowed_transitions.get(a.status_ui, []) %}
<option value="{{ s }}">{{ s }}</option>
{% endfor %}
</select>
{% if allowed_transitions.get(a.status, []) %}
{% if allowed_transitions.get(a.status_ui, []) %}
<button type="submit" class="secondary">Setzen</button>
{% else %}
<span class="subtle">keine Aktion</span>