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:
@@ -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" });
|
||||
|
||||
Reference in New Issue
Block a user