1) Grundlogik & Gate Gate-Bedingung (global für alle Stammdaten-/Raum- und Keller-Details): Die meisten Detailblöcke erscheinen nur, wenn beide Bedingungen erfüllt sind: Mieter anwesend? = „ja“ Sollen Stammdaten erfasst werden? = „ja“ Kurzform (im Formular als relevant verwendet): (/data/kopf/mieter_anwesend = 'ja') AND (/data/kopf/aufgemessen = 'ja') Wichtige Ausnahmen vom Gate: Foto Türklingel ist immer sichtbar (kein relevant), befindet sich direkt hinter „Wohnungs-/Einheits-Nr.“. Kopf-/Identifikationsfelder (z. B. Einheits-Nr., Mietername) sind unabhängig vom Gate sichtbar (je nach Form-Design). 2) Kopfbereich (immer am Anfang) 2.1 Mieter anwesend? Typ: select_one (Liste „ja/nein/unbekannt“) Zweck: Steuert Gate (siehe oben). 2.2 Sollen Stammdaten erfasst werden? Typ: select_one (Liste „ja/nein/unbekannt“) Zweck: Steuert Gate (siehe oben). Wenn „nein“: alle nachfolgenden Stammdaten-/Raum-/Keller-Details werden ausgeblendet. 3) Objekt-/Wohnungs-Identifikation 3.1 Gebäude-/Objektbezug (sofern vorhanden) Auswahl/Referenz der Liegenschaft (Detail ist projektspezifisch). 3.2 Wohnungs-/Einheits-Nr. (Pflichtfeld) Typ: text Dient als eindeutige Zuordnung der Einheit. 3.3 Mietername (Stammdaten Wohnungen) Typ: text Reihenfolge: direkt vor Foto Türklingel. 3.4 Foto Türklingel – immer sichtbar Typ: image (binary), kein relevant Position: unmittelbar hinter „Wohnungs-/Einheits-Nr.“ (bzw. direkt hinter „Mietername“, wenn in deinem Build so angeordnet – aktuell laut letzter Anpassung: hinter Einheits-Nr.). Nie ausblenden (auch wenn Gate nicht erfüllt ist). Test-Hinweis: Wenn dieses Foto verschwindet, stimmt die Position (Eltern-Gruppe) oder das Bind (relevant) nicht. In der finalen Version wurde beides so gesetzt, dass es immer sichtbar bleibt. 4) Erfassende Person (optional, falls im Formular enthalten) 4.1 Erfasser:in – Auswahl Typ: select_one aus Liste „erfasser“. Variante: Freitextoption am Ende („Freitextfeld“). Wenn „Freitextfeld“ gewählt ⇒ Nächstes Feld: text für manuellen Namen. 5) Lage & Bilder (falls im Formular enthalten) 5.1 Lage der Wohnung – Stockwerk Typ: select_one stockwerk Reihenfolge: vor „Lage im Grundriss“. 5.2 Lage der Wohnung – Lage im Grundriss Typ: select_one lage_grund 5.3 Weitere Fotos (optional, z. B. Klingelschild separat o. ä.) 6) Räume – Auswahl (Checkliste) 6.1 Räume (Checkliste) Typ: select_multiple aus folgenden Einträgen: Wohnzimmer, Schlafzimmer, Kinderzimmer Küche, Bad, Flur, Abstellraum, WC (separat), Kammer Waschküche, Hauswirtschaftsraum, Technikraum, Speisekammer, Heizungsraum Durchgangszimmer, Esszimmer, Arbeitszimmer Zimmer 1–9 (Platzhalter für frei benennbare Räume) Wichtig: Keine verschachtelten Gruppen – alle Raumgruppen sind parallel angelegt. Jede Raumgruppe wird nur angezeigt, wenn: Gate erfüllt ist und der entsprechende Raum in der Checkliste ausgewählt ist. Beispiel relevant eines Raums: (/data/kopf/mieter_anwesend='ja') AND (/data/kopf/aufgemessen='ja') AND selected(/data/raeume_check, 'wohnzimmer') 7) Räume – Details (für jede aktivierte Raumgruppe) Für jede aktivierte Raumgruppe (Wohnzimmer, Schlafzimmer, Kinderzimmer, Küche, Bad, Flur, Abstellraum, WC (separat), Kammer, Waschküche, Hauswirtschaftsraum, Technikraum, Speisekammer, Heizungsraum, Durchgangszimmer, Esszimmer, Arbeitszimmer, Zimmer 1–9) werden dieselben Detail-Felder angezeigt (mit prefix je Raum, z. B. wohnzimmer_*, bad_* …): 7.1 Bezeichnung Typ: text Freie Benennung/Ergänzung. 7.2 Fenstertyp (ersetzt „Fenster vorhanden?“) Typ: select_one (aus Fenstertyp-Liste) Kein vorgeschaltetes „Fenster vorhanden?“ mehr – keine Ja/Nein/Unbekannt-Dopplung. Werte: Holfenster einfachverglast Holzfenster doppelt verglasst Doppelkastenfenster Kunststofffenster einfachverglast Kunststofffenster doppelt verglasst Alufenster einfachverglast Alufenster doppelt verglasst 7.3 Fußbodenbelag Typ: select_multiple (oder select_one, je nach Liste; im aktuellen Build als Auswahl) Ergänzend: Fußbodenbelag (Details) – text (multiline) für Freitext. 7.4 Wandbelag Typ: Auswahl Ergänzend: Wandbelag (Details) – text (multiline). 7.5 Deckenbelag Typ: Auswahl Ergänzend: Deckenbelag (Details) – text (multiline). 7.6 Anschlüsse/Heizung Typ: Auswahl (Liste „anschluesse“) 7.7 Sonnenschutz Typ: Auswahl (Liste „sonnenschutz“) 7.8 Bemerkungen Typ: text (multiline) 7.9 Raumfoto Typ: image (binary, orx:max-pixels=1600) Bad/Sanitär: „Bad“ wird nicht mehr abhängig von „Küche“ gesteuert. Es erscheint nur bei Auswahl „Bad“ in der Checkliste und Gate=ja. Falls im Bad ein Sonderfall „kein Bad“ existiert: Ist „kein Bad“ gewählt, werden Bad-Details ausgeblendet (entsprechende relevant-Regel innerhalb der Bad-Gruppe). 8) Keller (nach den Raumdetails) Position: Nach allen Raum-Detailgruppen (vor allgemeinen Abschlussfotos/Schluss). Sichtbarkeitslogik (korrekt und identisch zu Merkmalsfeldern): 8.1 Ist ein Keller vorhanden? Typ: select_one (ja/nein/unbekannt) relevant = Gate (also nur sichtbar, wenn Mieter anwesend = ja und Stammdaten erfassen = ja). 8.2 Kellernummer Typ: text relevant = Gate AND („Ist ein Keller vorhanden?“ = ja) 8.3 Foto Keller Typ: image (binary, orx:max-pixels=1600) relevant = Gate AND („Ist ein Keller vorhanden?“ = ja) Test-Hinweis: Setze „Mieter anwesend?“ = ja und „Stammdaten erfassen?“ = ja ⇒ die Frage „Ist ein Keller vorhanden?“ muss erscheinen. Wähle „ja“ ⇒ Kellernummer und Foto Keller müssen erscheinen. Wähle „nein“ ⇒ Kellernummer und Foto Keller verschwinden wieder. 9) Zähler-Blöcke (Strom/Gas/Wasser …; falls im Formular vor den Räumen) Stromzähler vorhanden? (und ggf. Lage, Stand, Foto) Gaszähler vorhanden? (…) Wasserzähler vorhanden? (…) Regel: Diese Zähler-Merkmalsfelder nutzen dieselbe Gate-Formel wie Keller & Räume (Mieter anwesend = ja, Stammdaten erfassen = ja). Einzelfelder innerhalb der Zählergruppen (z. B. Zählerstand, Zählerfoto) hängen zusätzlich von „Zähler vorhanden? = ja“ ab. 10) Abschluss / Metadaten / Speicherung Meta/instanceID etc. Senden/Beenden wie gewohnt. (Falls Entities genutzt werden: Erstellung/Update gemäß deiner Server-Konfiguration; in Wohnungen nur Neuanlage, da „bearbeiten“ entfernt wurde.) Reihenfolge der Anzeige (Kurzüberblick) Mieter anwesend? Sollen Stammdaten erfasst werden? Wohnungs-/Einheits-Nr. Mietername Foto Türklingel (immer sichtbar, direkt hinter Einheits-Nr./Mietername gemäß deiner finalen Platzierung) (Optional: Lage/Stockwerk, weitere Kopf-Infos) Zähler-Blöcke (falls vor den Räumen platziert; Gate-gesteuert) Räume (Checkliste) Räume – Details (für alle ausgewählten Räume; Gate + selected()) Keller Ist ein Keller vorhanden? (Gate) Kellernummer & Foto Keller (Gate + Keller=ja) Abschluss/Submit Tests & Fehlersuche (Checkliste) Gate-Test: Setze Mieter anwesend = ja und Stammdaten erfassen = ja ⇒ Räume-Details & Keller erscheinen. Setze eine der beiden auf nein ⇒ Räume-Details & Keller verschwinden. Räume-Test: Wähle in der Checkliste z. B. Wohnzimmer und Bad ⇒ Es müssen genau diese beiden Gruppen erscheinen. Entferne den Haken bei Bad ⇒ Bad-Gruppe verschwindet sofort. Fenstertyp-Test: In jeder Raum-Detailgruppe gibt es nur die Auswahlbox „Fenstertyp“ (keine Ja/Nein-Dopplung). Liste entspricht exakt den 7 vorgegebenen Fenstertypen. Keller-Test: Gate erfüllt ⇒ „Ist ein Keller vorhanden?“ sichtbar. ja gewählt ⇒ Kellernummer & Foto Keller sichtbar. nein gewählt ⇒ beide unsichtbar. Foto Türklingel: Immer sichtbar, direkt nach Einheits-Nr. (bzw. deiner finalen Position). Verschwindet nie – selbst wenn Gate nicht erfüllt ist.