v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024): - app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs) - app/templates/v2/: base.html + 11 Screens + 8 Component-Macros - AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features (ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores) - v2 ist jetzt Default unter / — classic unter /classic - Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129) - Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle - Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie, Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze Backend-Erweiterungen: - main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout}, /api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.) - og_card.py + og_template: Open-Graph-Bilder via Playwright (#141) - wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138) - auswertungen.py: BL-Filter + get_wahlperioden Helper (#137) - auth.py: Direct-Access-Grant + Refresh-Token-Cookie Classic-Updates: - Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
35 lines
1.4 KiB
HTML
35 lines
1.4 KiB
HTML
{#
|
|
quote_card.html — Zitat-Karte mit Verifikations-Siegel
|
|
|
|
Props:
|
|
text : str — Zitattext (wird kursiv gesetzt)
|
|
source : str — Quellenangabe (z.B. "Wahlprogramm 2026 · S. 84")
|
|
verified : bool — Zeigt ✓ verifiziert-Siegel (default True)
|
|
contra : bool — Widerspruch-Variante (rote Border, default False)
|
|
pdf_href : str — Optionaler Link zu PDF-Viewer mit Seiten-Anker
|
|
|
|
Farbcodierung:
|
|
contra=False: border-left var(--ecg-blue), Siegel Grün
|
|
contra=True: border-left var(--redline-contra), Siegel Rot
|
|
|
|
Verwendung:
|
|
{% from "v2/components/quote_card.html" import quote_card %}
|
|
{{ quote_card("Wir verpflichten...", "Wahlprogramm 2026 · S. 84") }}
|
|
{{ quote_card("Konkurrenz abzulehnen...", "Grundsatzprogramm · S. 42", contra=True) }}
|
|
#}
|
|
|
|
{% macro quote_card(text, source="", verified=True, contra=False, pdf_href="") %}
|
|
<div class="v2-quote {% if contra %}contra{% endif %}">
|
|
<div class="q-body">„{{ text }}"</div>
|
|
<cite>
|
|
{% if verified %}
|
|
<span class="verified">{% if contra %}✗{% else %}✓{% endif %} {% if contra %}Programm-Widerspruch{% else %}verifiziert{% endif %}</span>
|
|
{% endif %}
|
|
{{ source }}
|
|
{% if pdf_href %}
|
|
· <a href="{{ pdf_href }}" target="_blank" rel="noopener" style="color:var(--ecg-blue);border-bottom:1px solid rgba(0,157,165,0.35);">PDF öffnen</a>
|
|
{% endif %}
|
|
</cite>
|
|
</div>
|
|
{% endmacro %}
|