feat(schnellstart): Kacheln je Geraetetyp in der Oberflaeche pflegen (#44)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s

This commit was merged in pull request #44.
This commit is contained in:
2026-10-04 15:41:47 +00:00
parent 0060a55387
commit f5936327a0
17 changed files with 910 additions and 24 deletions
@@ -0,0 +1,21 @@
-- ---------------------------------------------------------------------------
-- HANDGESCHRIEBEN. Prisma erzeugt hier zusaetzlich Loeschbefehle fuer die
-- zusammengesetzten Fremdschluessel (Mandantengrenze), die Trigramm-Indizes
-- (Archivsuche), die partiellen eindeutigen Indizes und die Trigger auf
-- veroeffentlichten Versionen: es kennt sie nicht, weil sie sich im Schema nicht
-- ausdruecken lassen. Diese Loeschbefehle sind bewusst gestrichen.
--
-- tests/datenbankregeln.test.ts prueft, dass alle diese Objekte vorhanden sind –
-- ein versehentlich stehengelassener Loeschbefehl faellt dort sofort auf.
-- ---------------------------------------------------------------------------
-- Marke fuer den Schnellstart (#022).
--
-- Der Seed legt Vorgaben je Geraetetyp an. Ohne diese Marke kaeme eine in der
-- Oberflaeche entfernte Zuordnung beim naechsten Lauf zurueck: eine fehlende
-- Zeile sagt nicht, ob sie noch nie da war oder bewusst entfernt wurde.
--
-- Bestehende Installationen bekommen `false`. Das ist richtig: dort hat noch
-- niemand den Schnellstart in der Oberflaeche gepflegt, weil es sie nicht gab.
ALTER TABLE "Einstellung"
ADD COLUMN "schnellstartGepflegt" BOOLEAN NOT NULL DEFAULT false;
+11 -6
View File
@@ -98,15 +98,20 @@ enum Herkunft {
/// der Datenbank und nicht in der Umgebung, damit der Admin ohne Neustart
/// umschalten kann.
model Einstellung {
id String @id @default("global")
modus Betriebsmodus @default(INTERN)
id String @id @default("global")
modus Betriebsmodus @default(INTERN)
/// Globale Namensregeln fuer upn, sam, mail und hostname. Im Modus
/// DIENSTLEISTUNG koennen Kunden eigene Regeln haben, die diese ueberlagern.
namensregeln Json @default("{}")
namensregeln Json @default("{}")
/// Ziel-OU fuer deaktivierte Konten, Vorbelegung im Offboarding.
gesperrteOu String?
erstelltAm DateTime @default(now())
geaendertAm DateTime @default(now()) @updatedAt
gesperrteOu String?
/// Sobald jemand den Schnellstart in der Oberflaeche gespeichert hat, laesst
/// der Seed `GeraetetypVorlage` in Ruhe (#022). Ohne diese Marke kaeme eine
/// entfernte Zuordnung beim naechsten Seed-Lauf zurueck: eine fehlende Zeile
/// sagt nicht, ob sie noch nie da war oder bewusst entfernt wurde.
schnellstartGepflegt Boolean @default(false)
erstelltAm DateTime @default(now())
geaendertAm DateTime @default(now()) @updatedAt
}
model Kunde {
+15
View File
@@ -273,6 +273,21 @@ export async function typVorgabenSaeen(
db: PrismaClient,
vorlagen: readonly GesaeteVorlage[],
): Promise<number> {
/*
* Hat jemand den Schnellstart in der Oberflaeche gespeichert, haelt der Seed
* sich heraus — auch bei einer Vorgabe, die dort fehlt (#022). Eine fehlende
* Zeile sagt nicht, ob sie noch nie da war oder bewusst entfernt wurde; ohne
* diese Marke kaeme eine entfernte Kachel beim naechsten Lauf zurueck.
*/
const einstellung = await db.einstellung.findUnique({
where: { id: "global" },
select: { schnellstartGepflegt: true },
});
if (einstellung?.schnellstartGepflegt) {
console.log(" Schnellstart je Geraetetyp: in der Oberflaeche gepflegt, bleibt unberührt");
return 0;
}
const nachName = new Map(vorlagen.map((eintrag) => [eintrag.name, eintrag.vorlageId]));
let angelegt = 0;