Explorer
/proc/327/root/tmp/split_variant_ui.py
← Zurück ↓ Download
from pathlib import Path
p=Path('/opt/struktur/social-media-agent/templates/publication_packages.html'); s=p.read_text()
old='''      {% if p.variants %}<div class="variant-grid">{% for v in p.variants %}<div class="variant-card {% if v.qa_status in ['passed', 'PASS'] %}qa-passed{% elif v.qa_status in ['failed', 'FAIL'] %}qa-failed{% endif %}" data-variant="{{ v.variant_id }}">
        <a href="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild" target="_blank" rel="noopener"><img src="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild" alt="{{ p.alt_text }} – Variante {{ v.variant_order }}"></a>
        <div class="variant-label">Variante {{ v.variant_order }}</div>
        <div class="variant-status">QA: {% if v.qa_status in ['passed', 'PASS'] %}bestanden{% elif v.qa_status in ['failed', 'FAIL'] %}abgelehnt{% else %}unklar{% endif %}{% if v.final_for_package %} · derzeit ausgewählt{% endif %}</div>
        {% if v.qa_failure_reasons %}<div class="variant-reason">{{ v.qa_failure_reasons[:180] }}</div>{% endif %}
        {% if v.human_rating %}<div class="variant-status">Carlo: {{ v.human_rating }}{% if v.human_reason_verbatim %} — {{ v.human_reason_verbatim[:140] }}{% endif %}</div>{% endif %}
        <form class="variant-feedback" method="post" action="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/feedback"><input name="reason" placeholder="Begründung" required><div class="variant-actions"><button name="rating" value="good" type="submit">GUT</button><button name="rating" value="mediocre" type="submit">MITTELMÄSSIG</button><button name="rating" value="bad" type="submit">SCHLECHT</button></div></form>
        <div class="variant-actions"><a href="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/download">Download</a><form method="post" action="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/auswaehlen"><button type="submit">Als final wählen</button></form></div>
      </div>{% endfor %}</div>{% elif p.image_status == 'present' and p.image_path %}<a href="/bereit/{{ p.package_id }}/bild" target="_blank" rel="noopener"><img class="media-preview" src="/bereit/{{ p.package_id }}/bild" alt="{{ p.alt_text }}"></a>{% endif %}'''
new='''      {% if p.current_variants %}<div class="pp-meta"><strong>Aktuelle Bildvorschläge</strong></div><div class="variant-grid">{% for v in p.current_variants %}<div class="variant-card {% if v.qa_status in ['passed', 'PASS'] %}qa-passed{% elif v.qa_status in ['failed', 'FAIL'] %}qa-failed{% endif %}" data-variant="{{ v.variant_id }}">
        <a href="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild" target="_blank" rel="noopener"><img src="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild" alt="{{ p.alt_text }} – Variante {{ v.variant_order }}"></a>
        <div class="variant-label">Variante {{ v.variant_order }}</div>
        <div class="variant-status">QA: {% if v.qa_status in ['passed', 'PASS'] %}bestanden{% elif v.qa_status in ['failed', 'FAIL'] %}abgelehnt{% else %}unklar{% endif %}{% if v.final_for_package %} · derzeit ausgewählt{% endif %}</div>
        {% if v.qa_failure_reasons %}<div class="variant-reason">{{ v.qa_failure_reasons[:180] }}</div>{% endif %}
        {% if v.human_rating %}<div class="variant-status">Carlo: {{ v.human_rating }}{% if v.human_reason_verbatim %} — {{ v.human_reason_verbatim[:140] }}{% endif %}</div>{% endif %}
        <form class="variant-feedback" method="post" action="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/feedback"><input name="reason" placeholder="Begründung" required><div class="variant-actions"><button name="rating" value="good" type="submit">GUT</button><button name="rating" value="mediocre" type="submit">MITTELMÄSSIG</button><button name="rating" value="bad" type="submit">SCHLECHT</button></div></form>
        <div class="variant-actions"><a href="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/download">Download</a><form method="post" action="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/auswaehlen"><button type="submit">Als final wählen</button></form></div>
      </div>{% endfor %}</div>{% if p.legacy_variants %}<details><summary>Frühere / Bestandsbilder ({{ p.legacy_variants|length }})</summary><div class="variant-grid">{% for v in p.legacy_variants %}<div class="variant-card {% if v.qa_status in ['passed', 'PASS'] %}qa-passed{% elif v.qa_status in ['failed', 'FAIL'] %}qa-failed{% endif %}"><a href="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild" target="_blank" rel="noopener"><img src="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild" alt="{{ p.alt_text }} – Bestandsvariante"></a><div class="variant-label">Bestandsbild</div><div class="variant-status">QA: {% if v.qa_status in ['passed', 'PASS'] %}bestanden{% elif v.qa_status in ['failed', 'FAIL'] %}abgelehnt{% else %}unklar{% endif %}</div><div class="variant-actions"><a href="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/download">Download</a></div></div>{% endfor %}</div></details>{% endif %}{% elif p.variants %}<div class="pp-meta">Bestandsbilder</div><div class="variant-grid">{% for v in p.variants %}<div class="variant-card"><a href="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild"><img src="/bereit/{{ p.package_id }}/varianten/{{ v.variant_id }}/bild" alt="{{ p.alt_text }}"></a><div class="variant-label">Bestandsbild</div></div>{% endfor %}</div>{% elif p.image_status == 'present' and p.image_path %}<a href="/bereit/{{ p.package_id }}/bild" target="_blank" rel="noopener"><img class="media-preview" src="/bereit/{{ p.package_id }}/bild" alt="{{ p.alt_text }}"></a>{% endif %}'''
assert s.count(old)==1; p.write_text(s.replace(old,new)); print('current and legacy groups rendered')