Ein zweiter Druck legt nichts mehr doppelt an

Filipe: "diese aufgaben die da alle verteilt wurde, die hab ich nicht
gemacht also sollen die alle da weg, keine ahnung was du da gemacht
hast."

WAS WIRKLICH PASSIERT IST, steht in der Datenbank:

  2026-09-22T16:05:24   35 Aufgaben
  2026-09-22T16:05:25   21 Aufgaben
  2026-09-22T16:05:53   56 Aufgaben

Zweimal "Alle uebernehmen", 29 Sekunden auseinander, von Ghost. 112
Aufgaben an vier Modis -- 14 Vorlagen, jede doppelt, je 28 pro Person.
Alle noch offen, keine einzige angefasst.

Der eine Weg dorthin ist seit dem 22.09. zu: Ein Modi darf nicht mehr
verteilen (darfAufgabenVerteilen). Der andere war offen -- der zweite
Druck selbst. Wer verteilen darf, konnte den Massenknopf beliebig oft
betaetigen, und nichts hat ihn aufgehalten.

DIE SPERRE GAB ES IM HAUS SCHON, im Termin-Zweig derselben Route: "Was
es schon gibt, wird nicht doppelt angelegt." Beim Massenknopf fehlte
sie. Dass sie fehlte, ist nicht aufgefallen, weil niemand zweimal
drueckt -- bis es jemand tat.

NUR DER MASSENKNOPF, NICHT DER EINZELNE. Ein "Nochmal" an einer Karte
ist eine bewusste Entscheidung; manches macht man jede Woche neu, und
der Knopf sagt es sogar. Ein Griff, der zwoelf Aufgaben auf einmal
holt, ist etwas anderes: Ob er schon gedrueckt wurde, sieht man ihm
nicht an, und beim zweiten Mal richtet er zwoelffachen Schaden an.

UND "OFFEN" HEISST OFFEN. Was erledigt oder abgebrochen ist, darf
wiederkommen -- sonst liesse sich eine woechentliche Aufgabe nach dem
ersten Abhaken nie wieder holen. Gefragt wird nicht "gab es die schon
mal", sondern "liegt die gerade noch da".

Die Oberflaeche sagt es jetzt auch: "3 uebernommen. 9 lagen schon
offen da - die kommen nicht doppelt." In Gruen, nicht in Rot: Das ist
keine Stoerung, sondern die Auskunft, dass die Sperre gegriffen hat.
Ein Knopf, der weniger tut als er verspricht UND schweigt, ist
schlimmer als einer, der zu viel tut -- man drueckt ihn noch einmal.

Gemessen am nachgestellten Vorfall: erster Druck 12 Aufgaben, zweiter
Druck 0 statt 12 (waeren 24 geworden). Gegenproben: Abgehaktes laesst
sich neu holen, und der einzelne Nochmal-Knopf legt weiter an.
12 Messungen, 0 Befunde. pruef-modi-katalog 129 und
pruef-aufgaben-vorlagen bleiben gruen.

Die 112 Aufgaben selbst stehen noch in der Datenbank -- sie gehoert
dogiweb, ich habe dort nur Leserecht. Der Befehl dafuer geht an Filipe.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-23 17:21:15 +02:00
co-authored by Claude Opus 5
parent 84e4048ab4
commit 4454c6d064
43 changed files with 668 additions and 598 deletions
+48 -2
View File
@@ -1778,6 +1778,10 @@ vorlagenRouter.post("/workspace/api/vorlagen/uebernehmen", gleicheHerkunft,
}
const angelegt = [];
/* Was nicht angelegt wurde, WEIL es schon offen liegt. Getrennt
von "angelegt", damit die Oberflaeche beides sagen kann --
eine Zahl allein liesse offen, ob etwas schiefging. */
const uebersprungen = [];
const einfuegen = (bereich, unterart, titel, text, zusatz = {}) => {
db().prepare(`INSERT INTO eintraege
(bereich, art, titel, text, datum, status, creator_id, hook, format,
@@ -1931,10 +1935,50 @@ vorlagenRouter.post("/workspace/api/vorlagen/uebernehmen", gleicheHerkunft,
if (!auswahl.length || auswahl.some((v) => !v)) {
return res.status(400).json({ fehler: "Unbekannte Vorlage." });
}
/* ==== WAS SCHON OFFEN LIEGT, KOMMT NICHT NOCH EINMAL ========
AM 22.09.2026 UM 16:05 IST GENAU DAS PASSIERT: 56 Aufgaben
um 16:05:24, dieselben 56 um 16:05:53. Ein zweiter Druck auf
"Alle uebernehmen", 29 Sekunden spaeter -- und nichts hat
ihn aufgehalten. Vier Menschen fanden danach je 28 Aufgaben
vor, jede doppelt. Filipe hat sie nicht verteilt und wusste
nicht, woher sie kamen.
NUR BEIM MASSENKNOPF, NICHT BEIM EINZELNEN. Ein "Nochmal"
an einer einzelnen Karte ist eine bewusste Entscheidung --
manches macht man jede Woche neu, und der Knopf sagt es
sogar. Ein Griff, der zwoelf Aufgaben auf einmal holt, ist
etwas anderes: Ob er schon gedrueckt wurde, sieht man ihm
nicht an, und beim zweiten Mal richtet er zwoelffachen
Schaden an.
"OFFEN" HEISST OFFEN. Was erledigt oder abgebrochen ist,
darf wiederkommen -- sonst koennte man eine Aufgabe, die
jede Woche ansteht, nach dem ersten Abhaken nie wieder
holen. Gefragt wird also nicht "gab es die schon mal",
sondern "liegt die gerade noch da".
Dieselbe Sperre steht seit dem 10.09. im Termin-Zweig weiter
unten. Dass sie hier fehlte, ist nicht aufgefallen, weil
niemand zweimal drueckt -- bis es jemand tat. */
const liegtSchon = art === "katalog_alle"
? new Set(db().prepare(
`SELECT vorlage FROM aufgaben
WHERE verantwortlich_id = ?
AND vorlage IS NOT NULL
AND status NOT IN ('erledigt', 'abgebrochen')`)
.all(zielPerson.id).map((z) => z.vorlage))
: new Set();
const lagSchonDa = [];
for (const v of auswahl) {
if (liegtSchon.has(v.schluessel)) { lagSchonDa.push(v.titel); continue; }
katalogAufgabeAnlegen(v, zielPerson.id, req.person.id);
angelegt.push(v.titel);
}
/* DIE ZAHL GEHOERT IN DIE ANTWORT, nicht nur in die Datenbank.
Ein Knopf, der "12 uebernehmen" heisst und dann schweigend
drei anlegt, sieht aus wie ein Fehler. */
if (lagSchonDa.length) uebersprungen.push(...lagSchonDa);
} else if (art === "katalog_termin") {
/* =============================================================
@@ -2014,8 +2058,10 @@ vorlagenRouter.post("/workspace/api/vorlagen/uebernehmen", gleicheHerkunft,
}
protokolliere("vorlage_uebernommen", req.person, echteIp(req),
`${art}: ${angelegt.length} Eintrag/Einträge`);
res.json({ angelegt: angelegt.length, titel: angelegt });
`${art}: ${angelegt.length} Eintrag/Einträge`
+ (uebersprungen.length ? `, ${uebersprungen.length} lagen schon da` : ""));
res.json({ angelegt: angelegt.length, titel: angelegt,
uebersprungen: uebersprungen.length });
} catch (fehler) {
console.error("[workspace] Vorlage übernehmen:", fehler?.message);
res.status(503).json({ fehler: "nicht_verfuegbar" });