WIP: Aufgaben- und Postfach-Routen (Test folgt auf dem Server)

This commit is contained in:
2026-08-22 22:56:59 +02:00
parent 548ec6bc00
commit 4ce51c127e
22 changed files with 1778 additions and 4 deletions
+22 -2
View File
@@ -18,6 +18,7 @@ import { json } from "../lib/http.js";
import { requireSession } from "../lib/auth.js";
import { hasPermission } from "../lib/permissions.js";
import { ausweisPruefen } from "../lib/webdesign-ausweis.js";
import { aufgabenAusVorlage } from "../lib/webdesign-vorlagen.js";
import {
jetzt, neueId, naechsteNummer, text, istEmail, emailNormal,
tokenHash, verlauf, spracheOderDe, centZuText, PAKETE, PROJEKT_STATUS,
@@ -254,8 +255,27 @@ export async function projektAnlegen(req, res) {
.run(kundeId, jetzt(), anfrageId);
}
verlauf("projekt", id, "angelegt", p.sitzung.actor, { nummer, titel, preisCent });
return json(res, { ok: true, id, nummer, anzahlungText: centZuText(anzahlungCent) });
/* Aufgabenliste aus der Paketvorlage übernehmen. Bewusst hier und
nicht als eigener Knopf: Eine Liste, die man erst noch anlegen
muss, wird genau dann vergessen, wenn der Kunde zum ersten Mal ins
Portal schaut — und dann sieht er wieder die leere Seite, die der
Auslöser für die ganze Funktion war.
Schlägt es fehl, wird das Projekt trotzdem angelegt. Ein Projekt
ohne Liste ist ärgerlich, ein abgebrochenes Anlegen wäre schlimmer:
Kundenzugang und Einladungslink hängen daran. */
let aufgabenAngelegt = 0;
try {
aufgabenAngelegt = aufgabenAusVorlage(id, kundeId, paket);
} catch (e) {
console.error("[webdesign] Aufgabenvorlage fehlgeschlagen:", e?.message);
}
verlauf("projekt", id, "angelegt", p.sitzung.actor, { nummer, titel, preisCent, aufgabenAngelegt });
return json(res, {
ok: true, id, nummer, aufgabenAngelegt,
anzahlungText: centZuText(anzahlungCent),
});
}
/* ---------------------------------------------------------------------