{# Ein Dokument mit Eckwerten und PDF-Ansicht (Etappe 5, Task 7). **Warum es diese Seite gibt.** Bis dahin führte ein Klick auf ein Dokument sofort zum Download: Wer wissen wollte, ob er die richtige Abrechnung vor sich hat, musste sie erst herunterladen und öffnen (Auftraggeber, 2026-09-03). Hier stehen die Eckwerte, und die Datei steht daneben, ohne den Umweg über den Dateimanager. **Der Rahmen ist die einzige Stelle im Portal, die etwas einbettet.** Die Sicherheitsrichtlinie dieser Seite öffnet dafür `frame-src 'self'`, und nur diese Seite bekommt sie (`_seite(eingebettet=True)`). Die Datei dahinter liefert das Portal selbst aus und lässt nur PDF durch. **Der Satz unter dem Rahmen steht IMMER da, nicht nur im Fehlerfall.** Ein leerer Rahmen sagt von sich aus nichts, und die Fälle, in denen er leer bleibt, kann diese Seite nicht auseinanderhalten: kein PDF-Anzeiger im Browser, ein Telefon, das die Datei lieber lädt, eine Freigabe, die zwischen Liste und Rahmen zurückgenommen wurde. Ein Hinweis, der nur im erkannten Fehlerfall erschiene, finge genau diese nicht. **Kein `` mit Fallback.** Das wäre die Bauform, die den Ersatztext von selbst zeigt — sie braucht aber `object-src`, und das steht portalweit auf `'none'`. Ein Rahmen und ein Satz sind hier das ehrlichere Paar. #} {% import "bausteine/bausatz.html" as b %}

← Zurück zu den Dokumenten

{{ d.get('titel') or 'Dokument' }}

{#- Die Karte heisst «Eckwerte» und nicht wie das Dokument: Der Titel steht als `

` darüber, und zweimal derselbe Text wäre eine Überschrift zu viel. Ohne das `

` wäre dies die einzige Seite des Bewohnerbereichs ohne Hauptueberschrift (Code-Review 2026-09-04). -#} {%- call b.kasten("Angaben zum Dokument", klasse="bereichskarte", icon="klammer") %}
{%- if d.get('nummer') %}
Nummer
{{ d.nummer }}
{% endif %} {%- if d.get('kategorie') %}
Kategorie
{{ kategorie_wort(d.kategorie) }}
{% endif %} {%- if mit_gemeinschaft and d.get('mandant') %}
Gemeinschaft
{{ d.mandant }}
{% endif %} {#- **Die Themen stehen auch hier, nicht nur in der Liste.** Wer ein Dokument öffnet, um zu sehen, wozu es gehört, findet die Auskunft sonst nur auf der Seite davor (Code-Review 06.09.2026). -#} {%- if d.get('themen') %}
{% if d.get('themen')|length > 1 %}Themen{% else %}Thema{% endif %}
{% for th in d.get('themen') %}{{ th }}{% endfor %}
{% endif %} {#- **Dasselbe Datum wie in der Liste und in der Facette**: das auf dem Beleg (Entscheid des Auftraggebers, 06.09.2026). Die Seite zeigte bis dahin das Ablagedatum unter demselben Wort «Erstellt» — für dasselbe Dokument standen damit in Liste und Detail zwei verschiedene Daten. Beide nebeneinander wären zwei Antworten auf «wie alt ist das»; das Ablagedatum interessiert einen Bewohner nicht, das Freigabedatum darunter schon. -#} {%- if datum_kurz(d.get('dokumentdatum') or '') %}
Datum
{{ datum_kurz(d.dokumentdatum) }}
{% endif %} {%- if datum_kurz(d.get('freigegeben_am') or '') %}
Freigegeben
{{ datum_kurz(d.freigegeben_am) }}
{% endif %} {%- if d.get('hat_datei') is not sameas false %}
Dateityp
PDF
{% endif %}
{%+ if d.get('zusammenfassung') %}

{{ d.zusammenfassung }}

{% endif +%} {%+ if d.get('hat_datei') is not sameas false %}
{{ b.knopf("Herunterladen", "zweit", klasse="breit") }}
{% else %}

Zu diesem Eintrag liegt keine Datei vor.

{% endif +%} {%- endcall %}

{%+ if d.get('hat_datei') is not sameas false %}

Wird hier nichts angezeigt, laden Sie das Dokument herunter — nicht jedes Gerät stellt PDF im Browser dar.

{% endif +%}