{# Der Bereich «Baumängel» (Epic 11, Block 11.9, U10b). **Eigenes Register und nicht im Kontrollbuch** (Spec 5.3): Ein Baumangel ist keine erledigte Arbeit, und die beiden im selben Reiter zu zeigen verwischt, wer zahlt. **Eine Tabelle wie die Mitteilungen** (Produktentscheid 21.10.2026, U30): sortierbare Köpfe, Suche, Filter Zustand und Haus, Blättern. Die API sortiert, sucht und filtert, weil sie seitenweise schneidet (Schnittstelle `docs/schnittstellen/portal-baumaengel.md`). Was die Karte bis dahin in der Liste zeigte, steht auf der eigenen Seite des Mangels (`baumangel_seite.html`); die Zeile führt dorthin. **Der Meldeknopf erscheint nur, wenn die API ein Haus zum Melden liefert** (Entscheid 8 aus U0, 13.10.2026). Eine leere Liste heisst «kein Meldeknopf», und das ist der Normalfall, solange die Verwaltung den Schalter nicht einschaltet. **Er ist der Hauptknopf, solange der Meldeweg offen ist** (U10c, Produktentscheide 15.10.2026, Punkt 2): Dann trägt der Bereich genau diesen einen, und der Leistenknopf «Meldung erfassen» fällt weg (`melden_haupt`; die Entscheidung selbst steht in `_baumangel_hauptknopf_im_inhalt`). Ist der Meldeweg zu oder ausgefallen, bleibt «Meldung erfassen» der Hauptknopf der Ansicht, und dieser Knopf fehlt ganz. **Zwei Leerzustände mit eigenen Sätzen.** Der Bestands-Leerzustand sagt, dass zurzeit nichts erfasst ist — beim leeren Bestand liest sich «Hier ist nichts» sonst als «es wurde nichts gemacht». Ob der Meldeweg offen ist, entscheidet den zweiten Satz und den Verweis: Ohne Meldeweg verspricht der Leerzustand nichts, was es nicht gibt. #} {% import "bausteine/bausatz.html" as b %} {% import "bausteine/filter.html" as fl %} {% import "bausteine/sortkopf.html" as sk %}

{{ titel }}

{%+ if untertitel %}

{{ untertitel }}

{% endif +%} {#- Ohne Liegenschaft gibt es nichts zu zeigen und nichts zu melden, wie in den anderen Bereichen. Der Fall kann im gewöhnlichen Ablauf nicht eintreten (der Zutritt verlangt eine Eigentümerrolle), und wenn die Rollen zwischen zwei Aufrufen wegfallen, ist dieser Satz der ehrliche. -#} {%- if not liegenschaften %}

Zu Ihrer Adresse ist derzeit keine Liegenschaft hinterlegt. Bitte wenden Sie sich an Ihre Verwaltung.

{%- else %} {#- **Der Störungskasten und der Banner stehen VOR den Zuständen**, wie in `meldungen.html` und `kontrollbuch.html`: Eine Lücke und ein Aushang gelten unabhängig davon, was die Liste gerade zeigt. Ohne Liegenschaft gibt es keine Angaben, die unvollstaendig sein könnten. -#} {{ unvollstaendig }} {#- Der Hinweis einer Umleitung («Ihre Meldung ist eingegangen»). Leer heisst weg; den Text wählt `LISTENHINWEISE` in `main.py`, nicht die Adresse. -#} {{ listenhinweis }} {{ banner }} {%- if zustand == 'ausfall' %} {#- **Ein Ausfall sieht nicht wie «alles in Ordnung» aus.** Nach einer leeren Liste zu urteilen wäre genau die Verwechslung, gegen die dieser Kasten steht — er erscheint darum auch dort, wo die Liste leer ist. -#}
Die Baumängel sind zurzeit nicht abrufbar. Das liegt nicht an Ihnen. Bitte versuchen Sie es später noch einmal.
{%- else %} {%- if melden %} {#- Der Weg zum Meldeformular steht ÜBER der Liste: auch dann, wenn schon Mängel erfasst sind — sonst wäre er nur beim leeren Bestand zu sehen, und wer den zweiten Mangel melden will, sucht ihn. `haupt`, wenn dieser Knopf den Leistenknopf ersetzt (U10c); sonst `zweit`, und der Hauptknopf der Ansicht bleibt «Meldung erfassen». -#}

{{ b.knopf("Baumangel melden", "haupt" if melden_haupt else "zweit", href="/b/baumaengel/melden") }}

{%- endif %} {%- if maengel or gefiltert or seite > 0 %} {#- **Die Werkzeugzeile steht auch über dem Filter-Leerzustand**: Sie ist der Weg aus einem Filter ohne Treffer (wie im Kontrollbuch). Über dem Bestands-Leerzustand steht sie nicht, dort gibt es nichts zu suchen. -#} {{ fl.leiste(pfad, filter, filterfelder, was='Mangel, Nummer oder Beschreibung') }} {{ fl.kapseln(pfad, filter, kapseln_werte, ohne_filter) }} {#- Die Sortierzeile für das Telefon, wo der Tabellenkopf fehlt; dieselbe Zeile wie bei den Mitteilungen (`SORTIERWORT` kennt jeden Wert). -#}

{{ sortwort }}{% if filter.get('sortierung') %} · Neueste zuerst{% endif %}

{%- if maengel %}
{{- sk.kopf("Mangel", "titel", filter.get('sortierung', ''), sortadresse) }} {{- sk.kopf("Liegenschaft", "liegenschaft", filter.get('sortierung', ''), sortadresse) }} {{- sk.kopf("Zustand", "zustand", filter.get('sortierung', ''), sortadresse) }} {{- sk.kopf("Entdeckt am", "datum", filter.get('sortierung', ''), sortadresse, vorgabe_ab=true) }} {{ zeilen_html }}
{{ titel }}
{%- elif seite > 0 %} {{ b.leerzustand("filter", "Auf dieser Seite steht nichts mehr.", aktion_href=filteradresse(pfad, filter), aktion_wort="Zurück zum Anfang") }} {%- else %} {#- «Ihrer Suche» und der Hinweis stehen dabei (Laienprüfung 22.10.2026, zwei Runden): Wer nur gesucht hat, las «zu diesen Filtern» als «meine Meldung ist nicht angekommen», und kam nicht darauf, dass die Verwaltung den Mangel mit anderen Worten erfasst haben kann. -#} {{ b.leerzustand("filter", "Kein Baumangel passt zu Ihrer Suche oder den Filtern.", hinweis="Versuchen Sie ein anderes Wort.", aktion_href=ohne_filter, aktion_wort="Alles zurücksetzen") }} {%- endif %} {{ blaettern }} {%- elif melden %} {{ b.leerzustand("bestand", "Zurzeit sind keine Baumängel erfasst.", hinweis="Wenn Ihnen an den gemeinschaftlichen Teilen oder in Ihrer Wohnung etwas auffällt, können Sie es hier melden.", aktion_href="/b/baumaengel/melden", aktion_wort="Baumangel melden") }} {%- else %} {{ b.leerzustand("bestand", "Zurzeit sind keine Baumängel erfasst.", hinweis="Sobald die Verwaltung einen Mangel aufnimmt, erscheint er hier. Ist Ihnen selbst etwas aufgefallen, melden Sie es bitte Ihrer Verwaltung.") }} {%- endif %} {%- endif %} {%- endif %}