gwoe-antragspruefer/app/templates/v2/components/matrix_mini.html
Dotty Dotter d0d941444d feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.

Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).

Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.

Closes #144
2026-04-28 01:53:38 +02:00

96 lines
4.1 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{#
matrix_mini.html — GWÖ-Matrix 5×5 Minidarstellung
Props:
matrix : Dict mit Schlüsseln A1E5, je Wert ein Dict:
{ "rating": int (-2 bis 2), "symbol": str ("++"|"+"|"○"|""|"") }
Fehlende Felder werden als neutral (○) dargestellt.
Farbstufen-Klassen (CSS in v2.css):
m-pp : rating 2 (++ stark fördernd) — ECG-Grün auf Weiß
m-p : rating 1 (+ fördernd) — Grün-Tint
m-0 : rating 0 (○ neutral) — Weiß
m-n : rating -1 ( widersprechend) — Rot-Tint
m-nn : rating -2 ( stark widerspr.)— Dunkelrot
Verwendung:
{% from "v2/components/matrix_mini.html" import matrix_mini %}
{{ matrix_mini(assessment.matrix) }}
#}
{% macro matrix_mini(matrix) %}
{% set rows = ["A", "B", "C", "D", "E"] %}
{% set cols = ["1", "2", "3", "4", "5"] %}
{% set row_labels = {
"A": "A · Lieferant:innen",
"B": "B · Finanzen",
"C": "C · Verwaltung",
"D": "D · Bürger:innen",
"E": "E · Gesellschaft & Natur"
} %}
{% set row_titles = {
"A": "Berührungsgruppe A — Lieferant:innen, ausgelagerte Betriebe, Dienstleister:innen. Externe Beschaffung und Lieferketten der Kommune.",
"B": "Berührungsgruppe B — Finanzpartner:innen, Geldgeber:innen, Steuerzahler:innen. Umgang mit öffentlichen Mitteln und Haushalt.",
"C": "Berührungsgruppe C — Politische Führung, Verwaltung, Ehrenamtliche. Mandatsträger:innen und Mitarbeitende der Kommune.",
"D": "Berührungsgruppe D — Bürger:innen und Wirtschaft. Wirkung innerhalb der Gemeindegrenzen, Daseinsvorsorge.",
"E": "Berührungsgruppe E — Staat, Gesellschaft und Natur. Wirkung über die Gemeindegrenzen hinaus, Zukunft."
} %}
{% set col_labels = {
"1": "Menschenwürde",
"2": "Solidarität",
"3": "Ökol. Nachhaltigkeit",
"4": "Soz. Gerechtigkeit",
"5": "Transparenz"
} %}
{% set col_titles = {
"1": "Wert 1 — Menschenwürde (Rechtsstaatsprinzip): Werden Grundrechte geschützt? Rechtliche Gleichstellung, Schutz vor Diskriminierung.",
"2": "Wert 2 — Solidarität (Gemeinnutz): Wird das Gemeinwohl gefördert? Mehrwert für die Gemeinschaft, Kooperation statt Konkurrenz.",
"3": "Wert 3 — Ökologische Nachhaltigkeit (Umwelt-Verantwortung): Klimaschutz, Ressourcenschonung, Biodiversität, Kreislaufwirtschaft.",
"4": "Wert 4 — Soziale Gerechtigkeit (Sozialstaatsprinzip): Gerechte Verteilung, Daseinsvorsorge, soziale Absicherung, Chancengleichheit.",
"5": "Wert 5 — Transparenz & Mitbestimmung (Demokratie): Bürgerbeteiligung, Offenlegung, demokratische Prozesse, Rechenschaftspflicht."
} %}
{% macro rating_class(r) %}
{% if r == 2 %}m-pp
{% elif r == 1 %}m-p
{% elif r == -1 %}m-n
{% elif r == -2 %}m-nn
{% else %}m-0{% endif %}
{% endmacro %}
<div class="v2-matrix-mini" role="table" aria-label="GWÖ-Matrix 5×5">
{# Header-Zeile #}
<div class="hdr" role="columnheader"></div>
{% for c in cols %}
<div class="hdr" role="columnheader" title="{{ col_titles[c] }}">{{ col_labels[c] }}</div>
{% endfor %}
{# Daten-Zeilen #}
{% for r in rows %}
<div class="rhdr" role="rowheader" title="{{ row_titles[r] }}">{{ row_labels[r] }}</div>
{% for c in cols %}
{% set key = r ~ c %}
{% set cell = matrix[key] if matrix is defined and key in matrix else {} %}
{% set rating = cell.rating | default(0) | int %}
{% set symbol = cell.symbol | default("○") %}
<div class="{{ rating_class(rating) | trim }}"
role="cell"
title="{{ key }}: {{ symbol }}"
aria-label="{{ key }}, {{ symbol }}, {% if rating == 2 %}stark fördernd{% elif rating == 1 %}fördernd{% elif rating == 0 %}neutral{% elif rating == -1 %}widersprechend{% else %}stark widersprechend{% endif %}"
onclick="if(typeof v2ShowMatrixFieldInfo==='function')v2ShowMatrixFieldInfo('{{ key }}')"
style="cursor:pointer;">
{{ symbol }}
</div>
{% endfor %}
{% endfor %}
</div>
<div class="v2-matrix-legend" aria-hidden="true">
<span>++ stark fördernd</span>
<span>+ fördernd</span>
<span>○ neutral</span>
<span> widersprechend</span>
<span> stark widerspr.</span>
</div>
{% endmacro %}