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>
33 lines
1.2 KiB
HTML
33 lines
1.2 KiB
HTML
{#
|
||
score_hero.html — Großer Score-Block für die Detailseite
|
||
|
||
Props:
|
||
score : float (0–10) — der GWÖ-Score
|
||
verdict_title : str — kurzes Urteil (z.B. "Vorbildlich"), UPPERCASE
|
||
verdict_body : str — ein bis zwei Sätze Urteilsbeschreibung
|
||
|
||
Verhalten:
|
||
- score >= 8: var(--ecg-green) als Akzentfarbe
|
||
- score < 5: var(--redline-contra) als Akzentfarbe (CSS-Klasse "low")
|
||
- 5–7: Neutral (var(--ecg-dark))
|
||
|
||
Verwendung:
|
||
{% from "v2/components/score_hero.html" import score_hero %}
|
||
{{ score_hero(9.1, "Vorbildlich", "Starker Beitrag zur ökologischen Nachhaltigkeit.") }}
|
||
#}
|
||
|
||
{% macro score_hero(score, verdict_title="", verdict_body="") %}
|
||
{% set s = score | float %}
|
||
{% if s < 5 %}{% set modifier = "low" %}{% else %}{% set modifier = "" %}{% endif %}
|
||
|
||
<div class="v2-score-hero {{ modifier }}" role="region" aria-label="GWÖ-Score {{ '%.1f'|format(s) }} von 10">
|
||
<div class="big-num" aria-hidden="true">
|
||
{{ "%.1f" | format(s) }}<span class="slash">/10</span>
|
||
</div>
|
||
<div class="verdict">
|
||
{% if verdict_title %}<b>{{ verdict_title }}</b>{% endif %}
|
||
{{ verdict_body }}
|
||
</div>
|
||
</div>
|
||
{% endmacro %}
|