{# Die eigenen Meldungen (Etappe 3, Task 4, Spec §8). Statuskacheln, Filterleiste, aktive Filter als Kapseln, Suche, Liste, Blaettern. **Die Kacheln zeigen den ganzen Bestand, nicht die gefilterte Menge.** Sie kommen aus einer eigenen Aggregatabfrage der API; aus der gedeckelten Liste gezaehlt zeigten sie bei mehr als fuenfzig Meldungen eine Zahl, die nur die erste Seite beschreibt, und nach einem Klick auf «Offen» ueberall sonst eine Null. **Drei Leerzustaende, die nicht dasselbe sagen:** kein Bestand, kein Treffer zu den Filtern, und eine leere Folgeseite. Wer «Sie haben noch keine Meldung erfasst» liest, obwohl er sieben hat und nur nach «Gelöst» gefiltert ist, sucht den Fehler bei sich. #} {% import "bausteine/filter.html" as fl %} {% import "bausteine/sortkopf.html" as sk %} {% import "bausteine/bausatz.html" as b %} {% import "bausteine/zaehlkachel.html" as k %}

Meine Meldungen

{%+ if untertitel %}

{{ untertitel }}

{% endif +%} {#- Der Stoerungskasten steht INNERHALB der Liegenschaftspruefung: Ohne Liegenschaft gibt es keine Angaben, die unvollstaendig sein koennten, und zwei Saetze ueber dieselbe Sache sind einer zu viel. -#} {%- if not liegenschaften %}

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

{%- else %}{{ unvollstaendig }} {#- Der Hinweis einer Umleitung («die Datei liess sich nicht anhängen»). Leer heisst weg; den Text waehlt `LISTENHINWEISE` in `main.py`, nicht die Adresse. -#} {{ listenhinweis }} {{ banner }} {#- **Einzeilig, dieselbe Form wie die Lagezeile des Dashboards** (Auftraggeber, 04.09.2026: «bei Meldungen die Kacheln mit Alle, Offen, In Bearbeitung etc. schlanker darstellen. Sie nehmen viel Platz ein»). Sechs zweizeilige Kacheln waren am Telefon drei Reihen à 56 px, bevor die erste Meldung kam. -#}
{#- Die aktive Kachel fuehrt auf die Liste OHNE ihren Filter: Was gilt, muss sich mit demselben Klick wieder loesen lassen. -#} {%- for kachel in kacheln %}{{ k.zaehlkachel(kachel.label, kachel.zahl, kachel.ton, filteradresse(pfad, filter, status='' if kachel.jetzt else kachel.status), kachel.jetzt) }}{% endfor %}
{{ fl.leiste(pfad, filter, filterfelder, was='Nummer, Titel, Inhalt oder Datum (z. B. 08.2026)') }} {{ fl.kapseln(pfad, filter, kapseln_werte, ohne_filter) }} {#- **Was gilt, steht auch dort, wo es keinen Kopf gibt.** Am Telefon blendet der Stil den Tabellenkopf aus (er loest die Tabelle zu Karten auf); ohne diese Zeile zeigte die Liste eine andere Ordnung, ohne zu sagen welche und ohne Weg zurück (Code-Review 04.09.2026). Dieselbe Zeile und dieselbe Klasse wie in der Ablage — sie erscheint nur unter 60rem. -#}

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

{%- if zeilen %}
{#- **Drei der vier Spalten sind sortierbar** (04.09.2026, derselbe Kopf wie in der Ablage und im Immotool). Die Nummer nicht: Sie ist eine laufende Nummer (`nummern.naechste_nummer`, fortlaufend je Mandant), und nach ihr zu sortieren ist dasselbe wie nach dem Erfassungsdatum — nur ohne dass man es der Spalte ansieht. **Gesucht wird nach ihr sehr wohl**, und das Feld sagt es seit dem 07.09.2026 auch: `SUCHE_SQL_TICKET` durchsucht `t.nummer`. Wer die Nummer aus der Bestaetigungsmail eintippt, findet seine Meldung. Bis dahin stand nur «Titel, Inhalt oder Datum» am Feld, und der Weg war da, aber unauffindbar (Rückmeldung des Auftraggebers, 07.09.2026). **Sortiert wird in der API**, nicht hier: Die Liste kommt seitenweise, und eine Seite umzusortieren behauptete eine Ordnung, nach der sie gar nicht geschnitten wurde. -#} {{- sk.kopf("Meldung", "titel", filter.get('sortierung', ''), sortadresse) }} {{- sk.kopf("Eingegangen", "datum", filter.get('sortierung', ''), sortadresse, vorgabe_ab=true) }} {{- sk.kopf("Status", "status", filter.get('sortierung', ''), sortadresse) }} {{ zeilen_html }}
Meine Meldungen
Nummer
{%- elif seite > 0 %}{{ b.leerzustand("filter", "Auf dieser Seite steht nichts mehr.", aktion_href=filteradresse(pfad, filter), aktion_wort="Zurück zum Anfang") }} {%- elif filter.get('status') or filter.get('jahr') or filter.get('q') %}{{ b.leerzustand("filter", "Keine Meldung passt zu diesen Filtern.", aktion_href=ohne_filter, aktion_wort="Alles zurücksetzen") }} {%- else %}{{ b.leerzustand("bestand", "Sie haben noch keine Meldung erfasst.", hinweis="Erfassen Sie hier eine — oder scannen Sie den QR-Aushang in Ihrer Liegenschaft.", aktion_href="/b/melden", aktion_wort="Meldung erfassen") }} {%- endif %} {{ blaettern }} {%- endif %}