Verhaeltnis als Auswahlliste, und im Organigramm keine Vakanz ganz oben
All checks were successful
CI / Lint, Typen, Tests, Build (push) Successful in 11m41s
CI / Migrationen auf leerer Datenbank (push) Successful in 10m16s

Zwei Nachtraege zur Rueckmeldung des Kunden.

Das Fenster fuer den Notfallkontakt hatte ein Freitextfeld fuer das
Verhaeltnis, waehrend der Einstellungsassistent und "Daten aendern"
dieselbe Auswahlliste fuehren (EMERGENCY_RELATIONS). Freitext hiesse,
dass "Gattin", "Ehefrau" und "Frau" nebeneinander stehen und sich nicht
auswerten lassen -- genau der Grund, aus dem die Liste ueberhaupt
existiert. Jetzt fuehren alle drei Stellen dieselbe.

Und "Leitung vakant" stand im Organigramm weiterhin bei der obersten
Einheit. Entfernt wurde es zuletzt nur im Druck; die Ansicht am
Bildschirm hat ihre eigene Beschriftung. Die Gesellschaft wird nicht
gefuehrt, sondern ist das Ganze -- der Vermerk las sich dort wie eine
offene Stelle und faerbte den obersten Knoten obendrein als Vakanz ein.
Ueberall sonst bleibt er.
This commit is contained in:
2026-09-23 12:58:57 +02:00
parent 57acbfae9d
commit 948ddf5c70
2 changed files with 17 additions and 5 deletions

View File

@@ -4,10 +4,11 @@ import { useRouter } from "next/navigation";
import { useState } from "react"; import { useState } from "react";
import { changeEmployeeData } from "@/actions/employees"; import { changeEmployeeData } from "@/actions/employees";
import { Button } from "@/components/ui/Button"; import { Button } from "@/components/ui/Button";
import { TextField } from "@/components/ui/Field"; import { SelectField, TextField } from "@/components/ui/Field";
import { Modal } from "@/components/ui/Modal"; import { Modal } from "@/components/ui/Modal";
import { useToast } from "@/components/ui/Toast"; import { useToast } from "@/components/ui/Toast";
import { todayIso } from "@/lib/format"; import { todayIso } from "@/lib/format";
import { EMERGENCY_RELATIONS } from "@/lib/types";
// Der Notfallkontakt, ohne den Umweg über „Daten ändern". // Der Notfallkontakt, ohne den Umweg über „Daten ändern".
// //
@@ -96,11 +97,15 @@ export function NotfallkontaktModal({
<TextField label="Wirksam ab" required type="date" value={effectiveDate} onChange={setEffectiveDate} /> <TextField label="Wirksam ab" required type="date" value={effectiveDate} onChange={setEffectiveDate} />
<TextField label="Name" required value={name} onChange={setName} /> <TextField label="Name" required value={name} onChange={setName} />
<TextField label="Telefonnummer" required type="tel" value={telefon} onChange={setTelefon} /> <TextField label="Telefonnummer" required type="tel" value={telefon} onChange={setTelefon} />
<TextField {/* Dieselbe Liste wie im Einstellungsassistenten (EMERGENCY_RELATIONS)
und kein Freitext: sonst stünden „Gattin", „Ehefrau" und „Frau"
nebeneinander und liessen sich nicht auswerten. */}
<SelectField
label="Verhältnis" label="Verhältnis"
value={verhaeltnis} value={verhaeltnis}
onChange={setVerhaeltnis} onChange={setVerhaeltnis}
hint="Zum Beispiel Gattin, Bruder, Freundin." placeholder="Bitte wählen…"
options={EMERGENCY_RELATIONS.map((r) => ({ value: r, label: r }))}
/> />
</div> </div>
</Modal> </Modal>

View File

@@ -204,10 +204,17 @@ export function buildUnitTree(units: OrgUnitNode[], employees: OrgEmployee[], va
id: key, id: key,
kind: "role", kind: "role",
label: `${unit.org_number} · ${unit.name}`, label: `${unit.org_number} · ${unit.name}`,
// Die Gesellschaft bleibt ohne Vermerk: sie wird nicht geführt, sondern
// ist das Ganze. „Leitung vakant" las sich dort wie eine offene Stelle,
// die jemand besetzen müsste, und färbte obendrein den obersten Knoten
// als Vakanz ein. Überall sonst ist der Vermerk genau das und gehört
// hin — wie im Druck (PrintChart).
sublabel: chief sublabel: chief
? `Leitung: ${fmtName(chief.first_name, chief.last_name)}${chief.absent ? " (abwesend)" : ""}` ? `Leitung: ${fmtName(chief.first_name, chief.last_name)}${chief.absent ? " (abwesend)" : ""}`
: "Leitung vakant", : unit.unit_type === "Gesellschaft"
vacant: !chief, ? undefined
: "Leitung vakant",
vacant: !chief && unit.unit_type !== "Gesellschaft",
children: [...subUnits, ...titleGroups, ...vacancyNodes], children: [...subUnits, ...titleGroups, ...vacancyNodes],
}; };
} }