diff --git a/app/static/v2/v2.css b/app/static/v2/v2.css index 3630024..03633cb 100644 --- a/app/static/v2/v2.css +++ b/app/static/v2/v2.css @@ -979,25 +979,33 @@ body.v2 ul.v2-manual ul li::before { background: rgba(0, 157, 165, 0.15); } -/* Aufklappbare Programm-Blöcke (Wahlprogramm/Parteiprogramm) */ +/* Programm-Block (Wahlprogramm/Parteiprogramm) im BELEGE-Layout. +
per Default — alles sichtbar, Faltmechanismus optional. + Pro Fraktion zwei Blöcke; der zweite hat eine zarte Trenn-Linie. */ .v2-treue-block { - border-top: 1px solid var(--hairline); - margin: 0; + margin: 8px 0 0; + padding-top: 8px; } -.v2-treue-block:first-of-type { - border-top: none; +.v2-treue-block + .v2-treue-block { + border-top: 1px dashed var(--hairline); } + +/* Summary = klickbare Header-Zeile. list-style:none entfernt das native + Marker-Dreieck, wir setzen einen eigenen subtilen Chevron rechts. */ .v2-treue-block > summary { - display: flex; - align-items: center; - gap: 8px; - padding: 8px 0; - cursor: pointer; list-style: none; + cursor: pointer; user-select: none; + outline-offset: 2px; } -.v2-treue-block > summary::-webkit-details-marker { - display: none; +.v2-treue-block > summary::-webkit-details-marker { display: none; } +.v2-treue-block > summary:hover .v2-treue-label { color: var(--ecg-blue); } + +.v2-treue-row { + display: flex; + align-items: baseline; + gap: 8px; + margin-bottom: 4px; } .v2-treue-label { font-family: var(--font-mono); @@ -1006,40 +1014,27 @@ body.v2 ul.v2-manual ul li::before { letter-spacing: 0.07em; color: #0d6f76; font-weight: 600; + transition: color 0.12s ease; +} +.v2-treue-label::after { + content: "▾"; + margin-left: 6px; + font-size: 9px; + opacity: 0.5; + display: inline-block; + transition: transform 0.15s ease; +} +.v2-treue-block:not([open]) > summary .v2-treue-label::after { + transform: rotate(-90deg); } .v2-treue-spacer { flex: 1 1 auto; } -.v2-treue-caret { - font-family: var(--font-mono); - font-size: 10px; - color: var(--ecg-dark); - opacity: 0.5; - transition: transform 0.15s ease; -} -.v2-treue-block[open] > summary .v2-treue-caret { - transform: rotate(180deg); -} -.v2-treue-body { - padding: 4px 0 10px; - font-size: 12.5px; - line-height: 1.5; -} -.v2-einschaetzung { - margin-bottom: 8px; -} -.v2-einschaetzung-label { - font-family: var(--font-mono); - font-size: 10px; - text-transform: uppercase; - letter-spacing: 0.07em; - color: var(--ecg-dark); - opacity: 0.6; - margin-bottom: 4px; -} .v2-einschaetzung-text { - color: var(--ecg-dark); + font-size: 13px; line-height: 1.55; + color: var(--ecg-dark); + margin-top: 2px; } .v2-belege { margin-top: 6px; diff --git a/app/templates/v2/screens/antrag_detail.html b/app/templates/v2/screens/antrag_detail.html index 498cea3..c72c9bd 100644 --- a/app/templates/v2/screens/antrag_detail.html +++ b/app/templates/v2/screens/antrag_detail.html @@ -382,15 +382,14 @@ {{ matrix_mini(antrag.matrix) }} {% endif %} - {# Programm-Treue im BELEGE-Layout: pro Partei zwei aufklappbare Blöcke - (Wahlprogramm + Parteiprogramm). Summary zeigt Bewertung, expand - enthält Einschätzung + Belege. #} + {# Programm-Treue im BELEGE-Layout: pro Partei zwei
-Blöcke + (Wahlprogramm + Parteiprogramm). Summary zeigt Bewertung, + expanded zeigt Einschätzung + Belege. Default OPEN — alles sofort + lesbar, der Faltmechanismus ist optional zum Skimmen. #} {% if antrag.fraktions_scores %}

Programm-Treue pro Fraktion

{% for fs in antrag.fraktions_scores %} - {% set wp_score = fs.wahlprogramm.score | float %} - {% set pp_score = fs.parteiprogramm.score | float %}
{{ fs.fraktion }} @@ -398,55 +397,27 @@ {% if fs.ist_regierung %}Regierungsfraktion{% endif %}
-
- - Wahlprogramm + {% for prog_key, prog_label in [("wahlprogramm","Wahlprogramm"), ("parteiprogramm","Parteiprogramm")] %} + {% set prog = fs[prog_key] %} + {% set p_score = prog.score | float %} +
+ + {{ prog_label }} - {{ "%.0f"|format(wp_score) }}/10 - + {{ "%.0f"|format(p_score) }}/10 -
- {% if fs.wahlprogramm.begruendung %} -
-
Einschätzung
-
{{ fs.wahlprogramm.begruendung }}
-
- {% endif %} - {% if fs.wahlprogramm.zitate %} -
-
Belege
- {% for z in fs.wahlprogramm.zitate %} - {{ quote_card(z.text, z.source, True, False, z.pdf_href) }} - {% endfor %} -
- {% endif %} -
-
- -
- - Parteiprogramm - - {{ "%.0f"|format(pp_score) }}/10 - - -
- {% if fs.parteiprogramm.begruendung %} -
-
Einschätzung
-
{{ fs.parteiprogramm.begruendung }}
-
- {% endif %} - {% if fs.parteiprogramm.zitate %} -
-
Belege
- {% for z in fs.parteiprogramm.zitate %} - {{ quote_card(z.text, z.source, True, False, z.pdf_href) }} - {% endfor %} -
- {% endif %} + {% if prog.begruendung %} +
{{ prog.begruendung }}
+ {% endif %} + {% if prog.zitate %} +
+ {% for z in prog.zitate %} + {{ quote_card(z.text, z.source, True, False, z.pdf_href) }} + {% endfor %}
+ {% endif %}
+ {% endfor %}
{% endfor %}