gwoe-antragspruefer/app/templates/v2/screens/methodik.html
Dotty Dotter 565849bd84 feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
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>
2026-04-25 20:55:57 +02:00

461 lines
28 KiB
HTML
Raw 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.

{% extends "v2/base.html" %}
{% block title %}Methodik — GWÖ-Antragsprüfer{% endblock %}
{% set v2_active_nav = "" %}
{% block head_extra %}
<style>
.meth-layout {
display: grid;
grid-template-columns: 220px 1fr;
gap: 2rem;
align-items: start;
}
@media (max-width: 720px) {
.meth-layout { grid-template-columns: 1fr; }
.meth-toc { display: none; }
}
.meth-toc {
position: sticky;
top: 72px;
font-size: 12px;
font-family: var(--font-mono);
line-height: 1.8;
border-left: 2px solid var(--ecg-green);
padding-left: 12px;
color: var(--ecg-dark);
opacity: 0.75;
}
.meth-toc a {
display: block;
color: inherit;
text-decoration: none;
opacity: 0.75;
transition: opacity 0.1s;
}
.meth-toc a:hover { opacity: 1; color: var(--ecg-green); }
.meth-toc .toc-section { font-weight: 700; margin-top: 8px; opacity: 1; }
.meth-body h2 {
font-family: var(--font-display);
font-size: 18px;
color: var(--ecg-teal);
margin: 2rem 0 0.75rem;
padding-bottom: 4px;
border-bottom: 2px solid var(--ecg-teal);
}
.meth-body h3 {
font-family: var(--font-display);
font-size: 14px;
color: var(--ecg-green);
margin: 1.25rem 0 0.4rem;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.meth-body p { margin-bottom: 0.6rem; }
.meth-body ul { margin: 0.4rem 0 0.8rem 1.4rem; }
.meth-body li { margin: 0.25rem 0; }
.meth-body a { color: var(--ecg-teal); }
.meth-body table {
border-collapse: collapse;
width: 100%;
font-size: 12px;
margin: 0.5rem 0 1rem;
}
.meth-body th, .meth-body td {
border: 1px solid var(--ecg-border);
padding: 6px 8px;
text-align: left;
}
.meth-body th { background: var(--ecg-bg-subtle); font-weight: 700; font-size: 11px; }
.meth-note {
background: rgba(136,158,51,0.1);
border-left: 3px solid var(--ecg-green);
padding: 10px 14px;
margin: 1rem 0;
font-size: 13px;
border-radius: 0 4px 4px 0;
}
/* Interactive matrix grid */
.gwoe-matrix-grid {
display: grid;
grid-template-columns: 110px repeat(5, 1fr);
gap: 2px;
font-size: 11px;
margin: 1rem 0;
}
.gwoe-matrix-grid .gc { padding: 5px 4px; text-align: center; background: var(--ecg-bg-subtle); border: 1px solid var(--ecg-border); }
.gwoe-matrix-grid .gh { background: var(--ecg-teal); color: #fff; font-weight: 700; }
.gwoe-matrix-grid .gr { background: var(--ecg-green); color: #fff; font-weight: 700; text-align: left; padding-left: 6px; }
.gwoe-matrix-grid .gc.clickable { cursor: pointer; transition: background 0.1s; }
.gwoe-matrix-grid .gc.clickable:hover { background: rgba(0,157,165,0.12); }
#field-explain {
display: none;
background: var(--ecg-bg-subtle);
border-left: 3px solid var(--ecg-green);
padding: 12px 16px;
margin: 0.5rem 0 1rem;
border-radius: 0 4px 4px 0;
font-size: 13px;
}
#field-explain strong { font-family: var(--font-display); }
.pipeline-step {
display: flex;
gap: 12px;
align-items: flex-start;
margin: 10px 0;
padding: 10px 12px;
background: var(--ecg-bg-subtle);
border-radius: 4px;
border-left: 3px solid var(--ecg-teal);
}
.step-num {
background: var(--ecg-teal);
color: #fff;
width: 26px; height: 26px;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-weight: 700; font-size: 12px; flex-shrink: 0;
font-family: var(--font-mono);
}
</style>
{% endblock %}
{% block main %}
<div style="padding:0 0 2rem;">
<h1 style="font-family:var(--font-display);font-size:22px;color:var(--ecg-teal);margin:0 0 4px;">Methodik</h1>
<p style="font-size:12px;font-family:var(--font-mono);color:var(--ecg-dark);opacity:0.6;">
GWÖ-Matrix 2.0 · Gemeinden · Transparenz-Dokumentation
</p>
</div>
<div class="meth-layout">
<!-- TOC -->
<nav class="meth-toc" aria-label="Inhaltsverzeichnis">
<div class="toc-section">Inhalt</div>
<a href="#gwoe">Was ist die GWÖ?</a>
<a href="#was-macht">Was macht der Prüfer?</a>
<a href="#matrix">Die Matrix 2.0</a>
<a href="#pipeline">Analyse-Pipeline</a>
<a href="#qualitaet">Qualitätssicherung</a>
<a href="#einschraenkungen">Einschränkungen</a>
<a href="#datenquellen">Datenquellen</a>
</nav>
<!-- Content -->
<div class="meth-body">
<section id="gwoe">
<h2>Was ist die Gemeinwohl-Ökonomie?</h2>
<div class="v2-kasten outline-blue">
<p>
Die <strong>Gemeinwohl-Ökonomie (GWÖ)</strong> ist ein Wirtschaftsmodell, das den
Erfolg wirtschaftlichen Handelns nicht am Gewinn, sondern am <strong>Beitrag zum
Gemeinwohl</strong> misst. Entwickelt von Christian Felber (2010), trägt die GWÖ
eine internationale Bewegung mit über 11.000 Unterstützer:innen,
4.500 Mitgliedern und 1.000 bilanzierten Organisationen.
</p>
<h3>Das Bewertungsmodell: die Gemeinwohl-Bilanz</h3>
<p>
Das Kernstück ist die <strong>Gemeinwohl-Bilanz</strong>: ein standardisiertes
Bewertungsverfahren nach einer Matrix aus fünf Werten
(Menschenwürde, Solidarität, ökologische Nachhaltigkeit, soziale Gerechtigkeit,
Transparenz &amp; Demokratie) und fünf Berührungsgruppen.
Die aktuelle <strong>Unternehmens-Matrix (Version 5.1)</strong> ist in über 35 Ländern erprobt.
</p>
<p style="font-size:11px;">
<a href="https://germany.econgood.org/wp-content/uploads/sites/8/2025/02/ECOnGOOD_Arbeitsbuch_5_1.pdf" target="_blank">Arbeitsbuch Unternehmen 5.1 (PDF)</a> ·
<a href="https://germany.econgood.org/tools/gemeinwohl-matrix/" target="_blank">Matrix-Übersicht</a>
</p>
<h3>Adaption für die öffentliche Hand</h3>
<p>
Für <strong>Gemeinden</strong> gibt es seit 2017 das <strong>Arbeitsbuch für Gemeinden Version 2.0</strong>.
Es überträgt die Unternehmens-Matrix auf kommunale Handlungsfelder:
statt „Kund:innen" stehen <em>Bürger:innen</em> im Fokus, statt „Lieferkette"
geht es um <em>öffentliche Beschaffung</em>.
Eine aktualisierte Version 2.1.A läuft seit 2023 im Pilotbetrieb.
</p>
<p style="font-size:11px;">
<a href="https://germany.econgood.org/wp-content/uploads/sites/8/2022/05/Arbeitsbuch-Gemeinden_2.pdf" target="_blank">Arbeitsbuch Gemeinden 2.0 (PDF)</a> ·
<a href="https://germany.econgood.org/wp-content/uploads/sites/8/2024/04/20231103_Arbeitsbuch-2_1_A-final.pdf" target="_blank">Version 2.1.A Pilotfassung (PDF)</a>
</p>
<h3>Anwendung auf Parlamentsanträge</h3>
<p>
<strong>Dieser Antragsprüfer</strong> nutzt die Gemeinde-Matrix 2.0 als
Bewertungsrahmen und wendet sie systematisch auf Parlamentsanträge aller
deutschen Landtage und des Bundestags an. Parlamentsanträge gestalten die
Rahmenbedingungen, unter denen Gemeinden handeln — ihre Gemeinwohl-Wirkung
zu messen macht sie vergleichbar und transparent.
</p>
</div>
</section>
<section id="was-macht">
<h2>Was macht der GWÖ-Antragsprüfer?</h2>
<div class="v2-kasten outline-green">
<p>Jeder Antrag wird automatisch analysiert und erhält:</p>
<ul>
<li><strong>GWÖ-Score (010)</strong> — wie stark fördert oder widerspricht der Antrag den fünf Gemeinwohl-Werten?</li>
<li><strong>25-Felder-Matrix</strong> — detaillierte Bewertung für jede Kombination aus Berührungsgruppe und Wert</li>
<li><strong>Wahlprogramm-Treue</strong> — wie gut passt der Antrag zu den Wahl- und Grundsatzprogrammen der Fraktionen, belegt mit verifizierten Zitaten?</li>
<li><strong>Verbesserungsvorschläge</strong> — konkrete Textänderungen im Redline-Format</li>
</ul>
<p style="margin-top:0.5rem;">
Ziel ist <strong>Transparenz</strong>: Bürger:innen können nachvollziehen, welche
Anträge dem Gemeinwohl dienen — und welche dagegen arbeiten.
Die Bewertungen sind öffentlich, maschinenlesbar (JSON/CSV/Atom-Feed) und unter CC BY 4.0 lizenziert.
</p>
</div>
</section>
<section id="matrix">
<h2>Die GWÖ-Matrix 2.0 für Gemeinden</h2>
<div class="v2-kasten outline-blue">
<p><strong>5 Berührungsgruppen</strong> (Zeilen) × <strong>5 Werte</strong> (Spalten) = 25 Bewertungsfelder.
Jedes Feld wird von <strong>5</strong> (fundamental widersprechend) bis <strong>+5</strong>
(stark fördernd) bewertet. Der GWÖ-Score (010) ist ein gewichteter Durchschnitt.</p>
</div>
<h3>Die fünf Werte (Spalten)</h3>
<table>
<tr><th style="width:30%;">Wert</th><th>Leitfrage</th></tr>
<tr><td><strong>1. Menschenwürde</strong></td><td>Werden Grundrechte geschützt? Rechtliche Gleichstellung? Schutz vor Diskriminierung?</td></tr>
<tr><td><strong>2. Solidarität</strong></td><td>Wird das Gemeinwohl gefördert? Mehrwert für die Gemeinschaft? Kooperation statt Konkurrenz?</td></tr>
<tr><td><strong>3. Ökologische Nachhaltigkeit</strong></td><td>Klimaschutz? Ressourcenschonung? Biodiversität? Kreislaufwirtschaft?</td></tr>
<tr><td><strong>4. Soziale Gerechtigkeit</strong></td><td>Gerechte Verteilung? Daseinsvorsorge? Soziale Absicherung? Chancengleichheit?</td></tr>
<tr><td><strong>5. Transparenz &amp; Demokratie</strong></td><td>Bürgerbeteiligung? Offenlegung? Demokratische Prozesse? Rechenschaftspflicht?</td></tr>
</table>
<h3>Die fünf Berührungsgruppen (Zeilen)</h3>
<table>
<tr><th style="width:30%;">Gruppe</th><th>Wer ist gemeint?</th></tr>
<tr><td><strong>A · Lieferant:innen</strong></td><td>Externe Beschaffung, Lieferketten, Dienstleister:innen</td></tr>
<tr><td><strong>B · Finanzen</strong></td><td>Umgang mit öffentlichen Mitteln, Haushalt, Steuerzahler:innen</td></tr>
<tr><td><strong>C · Verwaltung</strong></td><td>Mandatsträger:innen, Mitarbeitende, Ehrenamtliche</td></tr>
<tr><td><strong>D · Bürger:innen</strong></td><td>Wirkung innerhalb der Grenzen, Daseinsvorsorge</td></tr>
<tr><td><strong>E · Gesellschaft &amp; Natur</strong></td><td>Wirkung über die Grenzen hinaus, Zukunft</td></tr>
</table>
<h3>Alle 25 Felder</h3>
<p style="font-size:11px;opacity:0.7;margin-bottom:8px;">Klick auf ein Feld für Details.</p>
<div id="field-explain">
<div style="display:flex;justify-content:space-between;align-items:center;">
<strong id="field-explain-title"></strong>
<button onclick="document.getElementById('field-explain').style.display='none'"
style="background:none;border:none;cursor:pointer;color:var(--ecg-dark);opacity:0.5;font-size:14px;"></button>
</div>
<div id="field-explain-text" style="margin-top:8px;line-height:1.6;"></div>
</div>
<div class="gwoe-matrix-grid">
<div class="gc"></div>
<div class="gc gh">Menschen&shy;würde</div>
<div class="gc gh">Solidarität</div>
<div class="gc gh">Ökol. Nachh.</div>
<div class="gc gh">Soz. Gerecht.</div>
<div class="gc gh">Transparenz</div>
<div class="gc gr">A · Lieferant:innen</div>
<div class="gc clickable" onclick="showField('A1')"><strong>A1</strong><br><small>Grundrechte Lieferkette</small></div>
<div class="gc clickable" onclick="showField('A2')"><strong>A2</strong><br><small>Nutzen Gemeinde</small></div>
<div class="gc clickable" onclick="showField('A3')"><strong>A3</strong><br><small>Ökol. Verantwortung</small></div>
<div class="gc clickable" onclick="showField('A4')"><strong>A4</strong><br><small>Soziale Verantwortung</small></div>
<div class="gc clickable" onclick="showField('A5')"><strong>A5</strong><br><small>Rechenschaft</small></div>
<div class="gc gr">B · Finanzen</div>
<div class="gc clickable" onclick="showField('B1')"><strong>B1</strong><br><small>Eth. Finanzgebaren</small></div>
<div class="gc clickable" onclick="showField('B2')"><strong>B2</strong><br><small>Gemeinnutz</small></div>
<div class="gc clickable" onclick="showField('B3')"><strong>B3</strong><br><small>Ökol. Finanzpolitik</small></div>
<div class="gc clickable" onclick="showField('B4')"><strong>B4</strong><br><small>Soz. Finanzpolitik</small></div>
<div class="gc clickable" onclick="showField('B5')"><strong>B5</strong><br><small>Partizipation</small></div>
<div class="gc gr">C · Verwaltung</div>
<div class="gc clickable" onclick="showField('C1')"><strong>C1</strong><br><small>Gleichstellung</small></div>
<div class="gc clickable" onclick="showField('C2')"><strong>C2</strong><br><small>Gemeinsame Ziele</small></div>
<div class="gc clickable" onclick="showField('C3')"><strong>C3</strong><br><small>Ökol. Verhalten</small></div>
<div class="gc clickable" onclick="showField('C4')"><strong>C4</strong><br><small>Gerechte Arbeit</small></div>
<div class="gc clickable" onclick="showField('C5')"><strong>C5</strong><br><small>Transparenz intern</small></div>
<div class="gc gr">D · Bürger:innen</div>
<div class="gc clickable" onclick="showField('D1')"><strong>D1</strong><br><small>Rechtsgleichheit</small></div>
<div class="gc clickable" onclick="showField('D2')"><strong>D2</strong><br><small>Gesamtwohl</small></div>
<div class="gc clickable" onclick="showField('D3')"><strong>D3</strong><br><small>Ökol. Leistung</small></div>
<div class="gc clickable" onclick="showField('D4')"><strong>D4</strong><br><small>Soz. Leistung</small></div>
<div class="gc clickable" onclick="showField('D5')"><strong>D5</strong><br><small>Demokratie</small></div>
<div class="gc gr">E · Gesellschaft</div>
<div class="gc clickable" onclick="showField('E1')"><strong>E1</strong><br><small>Zukunft</small></div>
<div class="gc clickable" onclick="showField('E2')"><strong>E2</strong><br><small>Beitrag Gesamtwohl</small></div>
<div class="gc clickable" onclick="showField('E3')"><strong>E3</strong><br><small>Ökol. Auswirkungen</small></div>
<div class="gc clickable" onclick="showField('E4')"><strong>E4</strong><br><small>Sozialer Ausgleich</small></div>
<div class="gc clickable" onclick="showField('E5')"><strong>E5</strong><br><small>Demokratie global</small></div>
</div>
<details style="font-size:12px;margin-top:8px;">
<summary style="cursor:pointer;color:var(--ecg-teal);font-weight:600;padding:4px 0;">Bewertungsskala</summary>
<table style="margin-top:6px;font-size:11px;">
<tr><th>Symbol</th><th>Rating</th><th>Bedeutung</th></tr>
<tr><td>++</td><td>+4 bis +5</td><td>Stark fördernd, vorbildlich</td></tr>
<tr><td>+</td><td>+1 bis +3</td><td>Fördernd</td></tr>
<tr><td></td><td>0</td><td>Neutral / nicht berührt</td></tr>
<tr><td></td><td>1 bis 3</td><td>Widersprechend</td></tr>
<tr><td></td><td>4 bis 5</td><td>Stark widersprechend</td></tr>
</table>
</details>
</section>
<section id="pipeline">
<h2>Analyse-Pipeline</h2>
<div class="v2-kasten outline-blue">
<div class="pipeline-step">
<div class="step-num">1</div>
<div>
<strong>Antragstext laden</strong><br>
Der PDF-Volltext wird aus dem Landtags-Portal geholt
({{ adapter_count }} Parlamente angebunden). Nur echte Anträge und
Gesetzentwürfe werden analysiert — Kleine Anfragen werden übersprungen.
</div>
</div>
<div class="pipeline-step">
<div class="step-num">2</div>
<div>
<strong>Wahlprogramm-Passagen suchen</strong><br>
Per semantischer Suche ({{ embedding_model }}, 1024 Dimensionen) werden für
<strong>jede Fraktion</strong> die thematisch relevantesten Passagen aus
Wahl- und Grundsatzprogrammen gefunden. Aktuell {{ programme_count }} Programme
mit {{ chunk_count }} Textabschnitten indexiert.
</div>
</div>
<div class="pipeline-step">
<div class="step-num">3</div>
<div>
<strong>KI-Bewertung</strong><br>
Ein Sprachmodell ({{ model_name }}) bewertet den Antrag anhand der
GWÖ-Matrix und vergleicht ihn mit den gefundenen Programmpassagen.
Der Prompt erzwingt die Verwendung wörtlicher Zitate.
</div>
</div>
<div class="pipeline-step">
<div class="step-num">4</div>
<div>
<strong>Zitat-Verifikation</strong><br>
Jedes Zitat wird <strong>server-seitig verifiziert</strong>: der Text muss
als Substring im Original-PDF auffindbar sein. Quellenangabe und Seitenzahl
werden aus dem echten Treffer rekonstruiert — die Modell-Ausgabe wird für diese
Felder verworfen.
</div>
</div>
<details style="font-size:12px;margin-top:8px;">
<summary style="cursor:pointer;color:var(--ecg-teal);font-weight:600;padding:4px 0;">Technische Details</summary>
<table style="margin-top:6px;font-size:11px;">
<tr><th>Eigenschaft</th><th>Wert</th></tr>
<tr><td>Sprachmodell</td><td>{{ model_name }} (DashScope / Alibaba Cloud)</td></tr>
<tr><td>Embedding-Modell</td><td>{{ embedding_model }} (1024 Dimensionen)</td></tr>
<tr><td>Chunk-Größe</td><td>400 Wörter, 50 Wörter Overlap</td></tr>
<tr><td>Retry bei Parse-Fehlern</td><td>3 Versuche mit steigender Temperatur</td></tr>
<tr><td>Zitat-Verifikation</td><td>Substring- oder 5-Wort-Anker-Match gegen Original-PDF</td></tr>
</table>
</details>
</div>
</section>
<section id="qualitaet">
<h2>Qualitätssicherung</h2>
<div class="v2-kasten outline-green">
<ul>
<li><strong>Automatische Zitat-Verifikation</strong> — jedes Zitat wird gegen das
Original-PDF geprüft. Nicht-verifizierbare Zitate werden verworfen.</li>
<li><strong>Typ-Filterung</strong> — nur abstimmbare Drucksachen (Anträge,
Gesetzentwürfe) werden bewertet.</li>
<li><strong>Automatische Neu-Analyse</strong> — wenn ein Zitat nicht auffindbar ist,
wird der Antrag mit der aktuellen Pipeline neu analysiert.</li>
<li><strong>Open Data</strong> — alle Bewertungen sind als JSON und CSV exportierbar
(CC BY 4.0).</li>
</ul>
</div>
</section>
<section id="einschraenkungen">
<h2>Einschränkungen</h2>
<div class="v2-kasten outline-blue">
<ul>
<li><strong>Wertebasierte Einordnung, keine Rechtsprüfung</strong></li>
<li><strong>KI-Bias</strong> — Sprachmodelle können systematische Verzerrungen aufweisen. Bewertungen sind Orientierung, nicht objektive Wahrheit.</li>
<li><strong>Programmabhängig</strong> — Fraktionen ohne hinterlegtes Wahlprogramm erhalten keinen Programm-Vergleich.</li>
<li><strong>Antragstext, nicht Umsetzung</strong> — bewertet wird was im Antrag steht, nicht ob es umgesetzt wird.</li>
</ul>
</div>
</section>
<section id="datenquellen">
<h2>Datenquellen</h2>
<div class="v2-kasten outline-green">
<p><strong>{{ adapter_count }} Parlamente</strong> angebunden:</p>
<table>
<tr><th>Parlament</th><th>System</th></tr>
{% for bl in bundeslaender %}
<tr><td>{{ bl.name }} ({{ bl.code }})</td><td>{{ bl.doku_system }}</td></tr>
{% endfor %}
</table>
<p style="margin-top:0.75rem;font-size:11px;">
<a href="/quellen">Programme &amp; Quellen</a> ·
<a href="/api/auswertungen/export.json" download>Open Data (JSON)</a> ·
<a href="/api/feed.xml">Atom-Feed</a> ·
<a href="https://repo.toppyr.de/tobias/gwoe-antragspruefer" target="_blank">Quellcode</a>
</p>
</div>
</section>
</div>{# .meth-body #}
</div>{# .meth-layout #}
{% endblock %}
{% block body_scripts %}
<script>
const fieldInfo = {
"A1": { label: "Grundrechtsschutz in der Lieferkette", text: "<p><strong>Praxis:</strong> Wenn die öffentliche Hand Büromöbel, IT-Geräte oder Dienstkleidung beschafft: Unter welchen Bedingungen wurden diese hergestellt? Werden Lieferant:innen verpflichtet, Arbeitsschutzstandards und Menschenrechte einzuhalten?</p><p><strong>Theorie:</strong> Die GWÖ versteht Menschenwürde als unteilbar und kettenübergreifend. Das Feld A1 operationalisiert den Zusammenhang zwischen kommunaler Beschaffung und globalem Menschenrechtsschutz.</p>" },
"A2": { label: "Nutzen für die Gemeinde", text: "<p><strong>Praxis:</strong> Beauftragt die Kommune den Betrieb aus dem Ort — oder den billigsten Konzern aus dem Ausland? Bleiben Steuergelder in der Region?</p><p><strong>Theorie:</strong> Solidarität beginnt in der Nachbarschaft. Die GWÖ misst, ob die Beschaffungspolitik aktiv zur regionalen Wertschöpfung beiträgt.</p>" },
"A3": { label: "Ökologische Verantwortung in der Lieferkette", text: "<p><strong>Praxis:</strong> Werden bei öffentlichen Aufträgen Klimastandards verlangt? Kommt das Schulessen von regionalen Bauernhöfen?</p><p><strong>Theorie:</strong> Die ökologische Säule der GWÖ fordert, dass Umweltkosten nicht externalisiert werden.</p>" },
"A4": { label: "Soziale Verantwortung in der Lieferkette", text: "<p><strong>Praxis:</strong> Verdienen die Reinigungskräfte im Rathaus einen fairen Lohn? Werden Mindestlöhne kontrolliert?</p><p><strong>Theorie:</strong> Soziale Gerechtigkeit endet nicht am Werkstor.</p>" },
"A5": { label: "Rechenschaft und Mitsprache bei Beschaffung", text: "<p><strong>Praxis:</strong> Können Bürger:innen nachschauen, welche Firma den Auftrag bekommen hat — und warum? Gibt es ein öffentliches Vergaberegister?</p><p><strong>Theorie:</strong> Transparenz ist das Immunsystem der Demokratie. A5 misst, ob Beschaffungsprozesse nachvollziehbar sind.</p>" },
"B1": { label: "Ethisches Finanzgebaren", text: "<p><strong>Praxis:</strong> Liegt das Geld bei einer ethischen Bank — oder bei einer, die Waffengeschäfte finanziert? Gibt es ethische Anlagerichtlinien?</p><p><strong>Theorie:</strong> Die GWÖ betrachtet Geld als Mittel zum Zweck, nicht als Selbstzweck.</p>" },
"B2": { label: "Gemeinnutz im Finanzgebaren", text: "<p><strong>Praxis:</strong> Fließen Steuergelder in einen Radweg für alle — oder in eine Umgehungsstraße nur fürs Gewerbegebiet?</p><p><strong>Theorie:</strong> Solidarität in der Finanzpolitik heißt: öffentliches Geld dient öffentlichen Zwecken.</p>" },
"B3": { label: "Ökologische Verantwortung der Finanzpolitik", text: "<p><strong>Praxis:</strong> Investiert die Kommune in Solaranlagen? Werden Folgekosten des Klimawandels berücksichtigt?</p><p><strong>Theorie:</strong> Ökologische Nachhaltigkeit muss sich im Haushalt widerspiegeln.</p>" },
"B4": { label: "Soziale Verantwortung der Finanzpolitik", text: "<p><strong>Praxis:</strong> Bekommen ärmere Stadtteile genauso viel für Spielplätze wie reiche?</p><p><strong>Theorie:</strong> Soziale Gerechtigkeit erfordert bewusste Verteilungsentscheidungen.</p>" },
"B5": { label: "Partizipation in der Finanzpolitik", text: "<p><strong>Praxis:</strong> Gibt es einen Bürgerhaushalt? Werden Haushaltsentwürfe verständlich aufbereitet?</p><p><strong>Theorie:</strong> Demokratie braucht finanzielle Transparenz.</p>" },
"C1": { label: "Individuelle Rechts- und Gleichstellung", text: "<p><strong>Praxis:</strong> Werden Frauen gleich bezahlt? Gibt es Schutz vor Mobbing? Anonymisierte Bewerbungsverfahren?</p><p><strong>Theorie:</strong> Die Menschenwürde der Mitarbeitenden ist die Grundlage jeder guten Verwaltung.</p>" },
"C2": { label: "Gemeinsame Zielvereinbarung für das Gemeinwohl", text: "<p><strong>Praxis:</strong> Hat die Stadt ein Klimaschutzkonzept, das alle Ämter gemeinsam umsetzen?</p><p><strong>Theorie:</strong> Solidarität innerhalb der Verwaltung bedeutet: alle ziehen am selben Strang.</p>" },
"C3": { label: "Förderung ökologischen Verhaltens intern", text: "<p><strong>Praxis:</strong> Fahren Mitarbeitende mit dem Dienstrad oder dem SUV? Gibt es vegetarisches Essen in der Kantine?</p><p><strong>Theorie:</strong> Die Kommune hat eine Vorbildfunktion.</p>" },
"C4": { label: "Gerechte Verteilung von Arbeit", text: "<p><strong>Praxis:</strong> Können Eltern in der Verwaltung Teilzeit arbeiten ohne Karrierenachteile?</p><p><strong>Theorie:</strong> Soziale Gerechtigkeit beginnt beim eigenen Personal.</p>" },
"C5": { label: "Transparente Kommunikation intern", text: "<p><strong>Praxis:</strong> Können Bürger:innen die Sitzungsprotokolle online lesen?</p><p><strong>Theorie:</strong> Transparenz nach innen und außen ist die Voraussetzung für Vertrauen.</p>" },
"D1": { label: "Schutz des Individuums, Rechtsgleichheit", text: "<p><strong>Praxis:</strong> Werden Bürger:innen auf dem Amt fair behandelt — egal welchen Namen sie tragen?</p><p><strong>Theorie:</strong> Menschenwürde bedeutet: jeder Mensch hat den gleichen Wert.</p>" },
"D2": { label: "Gesamtwohl in der Gemeinde", text: "<p><strong>Praxis:</strong> Profitiert die ganze Stadt — oder nur ein Stadtteil, eine Altersgruppe?</p><p><strong>Theorie:</strong> Solidarität auf kommunaler Ebene heißt: das Gesamtwohl geht vor Partikularinteressen.</p>" },
"D3": { label: "Ökologische Gestaltung der öffentlichen Leistung", text: "<p><strong>Praxis:</strong> Kommt der Strom für die Straßenbeleuchtung aus Erneuerbaren?</p><p><strong>Theorie:</strong> Jede kommunale Dienstleistung hat einen ökologischen Fußabdruck.</p>" },
"D4": { label: "Soziale Gestaltung der öffentlichen Leistung", text: "<p><strong>Praxis:</strong> Kann sich die alleinerziehende Mutter den Kitaplatz leisten?</p><p><strong>Theorie:</strong> Soziale Gerechtigkeit in der Daseinsvorsorge ist der Kern kommunaler Politik.</p>" },
"D5": { label: "Transparente Kommunikation und demokratische Einbindung", text: "<p><strong>Praxis:</strong> Werden Bürger:innen gefragt, bevor die Straße vor ihrem Haus umgebaut wird?</p><p><strong>Theorie:</strong> Demokratie ist mehr als Wahlen alle vier Jahre.</p>" },
"E1": { label: "Menschenwürdiges Leben für zukünftige Generationen", text: "<p><strong>Praxis:</strong> Hinterlassen wir unseren Enkeln einen Schuldenberg — oder investieren wir heute so, dass auch 2050 gute Lebensbedingungen herrschen?</p><p><strong>Theorie:</strong> Die Menschenwürde hat eine zeitliche Dimension.</p>" },
"E2": { label: "Beitrag zum Gesamtwohl über die Gemeindegrenzen hinaus", text: "<p><strong>Praxis:</strong> Hilft der Antrag nur der eigenen Stadt — oder auch den Nachbargemeinden?</p><p><strong>Theorie:</strong> Solidarität endet nicht an der Gemeindegrenze.</p>" },
"E3": { label: "Verantwortung für ökologische Auswirkungen jenseits der Gemeinde", text: "<p><strong>Praxis:</strong> Denkt die Kommune beim Einkauf an den CO₂-Fußabdruck jenseits der eigenen Grenzen?</p><p><strong>Theorie:</strong> Die ökologische Krise ist global, aber die Verursachung ist lokal.</p>" },
"E4": { label: "Beitrag zum sozialen Ausgleich", text: "<p><strong>Praxis:</strong> Unterstützt die Stadt strukturschwache Regionen? Gibt es Fairtrade-Beschaffung?</p><p><strong>Theorie:</strong> Soziale Gerechtigkeit im globalen Maßstab ist die anspruchsvollste Dimension der GWÖ.</p>" },
"E5": { label: "Transparente und demokratische Mitbestimmung auf übergeordneter Ebene", text: "<p><strong>Praxis:</strong> Setzt sich die Kommune für mehr Demokratie ein — auch auf Landes- und Bundesebene?</p><p><strong>Theorie:</strong> Demokratie braucht Fürsprecher auf allen Ebenen.</p>" },
};
function showField(code) {
const info = fieldInfo[code];
if (!info) return;
const el = document.getElementById('field-explain');
document.getElementById('field-explain-title').textContent = code + ': ' + info.label;
document.getElementById('field-explain-text').innerHTML = info.text;
el.style.display = 'block';
el.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
</script>
{% endblock %}