Bei "An alle" sieht man jetzt, wer sie hat und wer nicht

Filipe: "wenn ich eine aufgabe an alle verteile will ich dass dogfather
und die rechte hand individuel von jedem sehen wer es gemacht hat oder
nicht."

Vier Fehler, die zusammenhingen -- alle gemessen, keiner geraten:

1. "Alle" waehlen, "An alle" druecken, nichts passiert. Die Zeile
   verglich verantwortlich_id !== "alle"; niemand heisst so, also wurde
   jede Aufgabe uebersprungen und die Liste blieb leer. Die Aufgaben
   entstanden, man sah es nur nicht.

2. Der Vermerk an der Karte haette bei "alle" den Stand EINER fremden
   Person gezeigt -- welcher, haengt von der Reihenfolge der Daten ab.
   Jetzt steht dort, wie weit es ist, und darunter namentlich, wer sie
   hat: Offen / Erledigt / ueberfaellig / hat sie nicht. Das Wort steht
   immer dabei, die Farbe ist nur die Abkuerzung.

3. Die "An wen"-Reihe zeigte SECHS Personen, der Server belieferte VIER.
   Rechte und linke Hand gingen leer aus, ohne ein Wort; einzeln
   angeschrieben kam "Das gibt es nicht mehr, lade die Seite neu" zu
   jemandem, den es sehr wohl gibt. Empfaenger sind jetzt Modis UND
   linke Hand (Filipes Regel vom 22.09.), und die Menge steht EINMAL in
   workspace.js -- SQL-Abfrage, Annahme und Browserliste leiten sich
   daraus ab und koennen nicht mehr auseinanderlaufen.

4. Zweimal "An alle" legte alles doppelt an. Der Kommentar im Server
   behauptete das Gegenteil; aktiv war die Sperre nur beim Massenknopf.
   "An alle" fuellt jetzt Luecken. Die bewusste Wiederholung bleibt:
   Steht am Knopf "Nochmal" (weil wirklich alle sie haben), sagt der
   Browser das ausdruecklich, und dann legt der Server neu an.

Geprueft: pruef-modi-katalog 144 statt 133, 0 Fehler -- elf neue
Pruefungen fuer Empfaenger, Luecken und die Gegenprobe, dass ein
gewolltes "Nochmal" sehr wohl anlegt. Dazu mess-alle-einzelsicht.mjs
(eigene Wegwerf-Datenbank, nie die echte) mit Bildern bei 412 und
1280 px.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-24 17:26:35 +02:00
co-authored by Claude Opus 5
parent 67b5e00150
commit 40b48e89f1
50 changed files with 1381 additions and 650 deletions
+42
View File
@@ -139,6 +139,48 @@ export const WIE_RECHTE_HAND = new Set(["hand", "linke"]);
/** Hat diese Person die Team-Rechte einer Hand (rechts oder links)? */
export const istHand = (person) => !!person && WIE_RECHTE_HAND.has(person.rolle);
/* =====================================================================
WER EINE KATALOG-VORLAGE BEKOMMEN KANN (24.09.2026)
=====================================================================
Filipe: „wenn ich eine aufgabe an alle verteile will ich dass
dogfather und die rechte hand individuel von jedem sehen wer es
gemacht hat oder nicht."
WARUM DIESE MENGE HIER STEHT UND NICHT DREIMAL VERSTREUT. Bis heute
gab es zwei Listen, die dasselbe meinten und es nicht taten:
* Die „An wen"-Reihe im Browser bekam ihre Leute aus
`KARTEN_ROLLEN` (hand, linke, modi) -- gemessen am echten Stand
SECHS Personen.
* Der Katalog-Weg im Server nahm `rolle = 'modi'` -- VIER.
Folge: „Alle" versprach sechs und belieferte vier; die beiden
Haende gingen leer aus, ohne ein Wort. Und wer einzeln auf „An
Rechte Hand" drueckte, bekam vom Server 404 und auf dem Bildschirm
„Das gibt es nicht mehr -- wahrscheinlich hat es jemand geloescht".
Eine Meldung, die in die Irre fuehrt: Die Person gibt es sehr wohl.
ES IST EINE MENGE UND KEINE ABSCHRIFT. Wer sie erweitert, erweitert
damit die SQL-Abfrage, die Annahme-Pruefung und die Liste im
Browser zugleich -- die drei koennen gar nicht mehr auseinander-
laufen. Genau das war der Fehler, nicht die Zahl.
WARUM MODI UND LINKE HAND. Filipes Regel vom 22.09.2026: „die modis
und linke hand sollen ... sich fuer aufgaben bewerben koennen aber
die rechte hand oder dogfather muessen annehmen oder ablehnen".
Also sind das die beiden Rollen, die Aufgaben BEKOMMEN -- und
DogFather und die rechte Hand die, die verteilen und zusehen. */
export const KATALOG_EMPFAENGER = new Set(["modi", "linke"]);
/** Kann diese Rolle eine Vorlage aus dem Katalog bekommen? */
export const darfKatalogBekommen = (rolle) => KATALOG_EMPFAENGER.has(rolle);
/** Die Rollen als SQL-Platzhalterliste -- abgeleitet, nicht getippt.
* Eine Abfrage, die die Namen selbst noch einmal enthielte, waere die
* vierte Liste und damit genau das Problem von vorn. */
export const KATALOG_EMPFAENGER_SQL = [...KATALOG_EMPFAENGER];
/* DIE EINE REIHENFOLGE, IN DER ROLLEN UEBERALL ERSCHEINEN.
Sie steht hier einmal, damit keine Liste eine eigene erfindet.