{# Eine Dokumentkachel — und zugleich der Verweis auf die Dokumentseite. **Warum die ganze Kachel EIN Verweis ist.** Bild, Titel und Datum gehören zu einer Sache; wer auf das Bild klickt, meint dasselbe wie wer auf den Titel klickt. Ein ``, das alles umschliesst, ist mit Maus, Tastatur und Vorlesesoftware dasselbe eine Ziel. **Bis Task 7 war die Kachel ein Absendeknopf und lud sofort herunter.** Sie führt jetzt auf die Dokumentseite (Auftraggeber, 2026-09-03: anklicken soll das Dokument öffnen). Damit verschwindet der Download aus DIESER Ansicht — er steht einen Klick weiter auf der Dokumentseite, und in der Listenansicht daneben steht er weiterhin direkt an der Zeile. **Der Titel steht als Text im Verweis**, nicht als `title`-Attribut: Die Vorlesesoftware liest den Inhalt, ein `title` liest sie bestenfalls zusätzlich. Das Vorschaubild ist 4:3 und `loading="lazy"`; der Briefkopf soll erkennbar sein (Spec §8), darum sitzt das Bild oben im Rahmen und wird nicht mittig beschnitten. **Der Rahmen steht nur, wenn ein Bild dahinterliegt** — wie in der Liste: Ein leeres 4:3-Feld in `--sehr-leise` sieht aus wie ein kaputtes Bild (Code-Review 2026-09-03). **Das Datum ist dasselbe Feld, nach dem sortiert wird.** Die erste Fassung zeigte `erstellt_am or freigegeben_am` — genau der Rückfall, den `_dok_ordnung` am selben Tag entfernt hat, und unter «Neueste zuerst» stand dann das jüngste Datum ganz unten. Seit dem 06.09.2026 ist dieses Feld `dokumentdatum`, das Datum AUF dem Beleg. Fehlt es, steht das Freigabedatum da UND sagt, dass es eines ist. **Ohne Datei führt die Kachel trotzdem auf die Seite.** Die Eckwerte gibt es auch dann, und sie sagt dort, dass keine Datei vorliegt. Was früher ein Knopf in eine Absage war, ist jetzt ein Weg zu dem, was da ist. **Der Punkt oben rechts sagt «neu»** (Vorgabe des Auftraggebers, 05.09.2026: «Neu könnte man bspw. mit einem grünen Punkt oben rechts in der Kachel anzeigen»). Er ersetzt den Zähler «(3 neu)» über der Reihe: Die Auskunft steht jetzt an dem Dokument, das gemeint ist. **Farbe sagt nie etwas allein** (`docs/gestaltung.md` §1). Der Punkt trägt darum ein Wort mit — für Vorlesesoftware sichtbar, für das Auge weggeblendet. Ein grüner Kreis ohne Wort wäre für jemanden, der ihn nicht sieht, gar keine Auskunft. `ist_neu` setzen `_dashboard_holen` (Startseite) und `_ablage_zeilen_html` (Ablage, beide Ansichten) aus derselben Regel `_dokument_ist_neu`. Fehlt der letzte Besuch, fehlt der Punkt — «neu» ohne Bezugspunkt wäre geraten, nicht gemessen. #} {% import "bausteine/bausatz.html" as b %} {#- **Ohne Kennung kein Verweis.** `/b/dokument/` ist keine Adresse, die es gibt; ein Verweis darauf wäre ein Klick in eine Absage. Die Kachel steht dann als Kasten da und zeigt, was bekannt ist. -#} {% set offen = d.get('id') or '' %} <{% if offen %}a class="dokkachel klickbar{% if d.get('hat_datei') is sameas false %} ohne{% endif %}{% if d.get('ist_neu') %} mit-punkt{% endif %}" href="/b/dokument/{{ d.get('id')|pfadteil }}"{% else %}div class="dokkachel ohne{% if d.get('ist_neu') %} mit-punkt{% endif %}"{% endif %}> {%- if d.get('hat_datei') and d.get('id') %}{% endif %} {%- if d.get('ist_neu') %}Neu seit Ihrem letzten Besuch{% endif %} {{ d.get('titel') or '' }} {#- **Das Datum AUF dem Beleg**, wie in der Zeilenansicht und in der Facette (Entscheid des Auftraggebers, 06.09.2026). Fehlt es, steht ersatzweise das Freigabedatum da — beschriftet, damit niemand es für das Dokumentdatum hält. -#} {% if d.get('kategorie') %}{{ b.kapsel(kategorie_wort(d.kategorie), 'neutral') }}{% endif %}{% if datum_kurz(d.get('dokumentdatum') or '') %}{{ datum_kurz(d.dokumentdatum) }}{% elif datum_kurz(d.get('freigegeben_am') or '') %}freigegeben {{ datum_kurz(d.freigegeben_am) }}{% endif %} {#- **Die Themen unter der Zeile mit Kategorie und Datum.** Sie sind die zweite Zuordnung: Die Kategorie sagt, WAS für ein Papier es ist, das Thema, WOZU es gehört. Eine Kachel ohne Thema bekommt keine leere Zeile. -#} {%- if d.get('themen') %}{% if d.get('themen')|length > 1 %}Themen{% else %}Thema{% endif %}: {% for th in d.get('themen') %}{{ th }}{% endfor %}{% endif %} {% if d.get('nummer') %}{{ d.nummer }} · {% endif %}{% if d.get('hat_datei') is sameas false %}keine Datei{% else %}PDF{% endif %}{% if mit_gemeinschaft and d.get('mandant') %} · {{ d.mandant }}{% endif %}