Berichtigt: Die Leitung sieht wieder alle 68 -- gezaehlt wird das Zugetragene

Filipe: "falsch, dogfather und die rechte hand sollen immer noch die 68
sachen sehen wie vorher und der button soll einfach perfektioniert
werden damit wir beide sie den jeweiligen als aufgabe geben koennen.
und die modis sollen nicht sehen. aber unsere sicht von dogfather und
rechte hand soll sich nicht aendern."

MEIN FEHLER WAR EINE VERWECHSLUNG von zwei Dingen, die gleich aussehen
und verschieden sind:

  EINGRENZEN  -- die Liste wird je Person kuerzer. Das habe ich gebaut.
  ZUTRAGEN    -- aus der vollen Liste bekommt jemand etwas als AUFGABE.
                 Das war gemeint.

Der Unterschied zaehlt: Die 68 sind das, woran ihr euch entlanghangelt,
wenn ihr jemanden anseht. Eine Liste, die sich je Person verkuerzt,
waere bei jedem Menschen eine andere -- und dann faellt kein Vergleich
mehr auf.

DIE KARTE ZEIGT WIEDER ALLES, und an jedem Punkt steht, ob er diesem
Menschen als Aufgabe zugetragen ist: eine Kante links und das WORT
"Aufgabe". Nicht nur die Farbe -- wer Farben schlecht unterscheidet,
saehe sonst nur einen etwas anderen Kasten.

GEZAEHLT WIRD TROTZDEM DAS ZUGETRAGENE. Filipe: "es sollen nur die
menge angezeigt werden die wir zutragen und erledigte dan auch nur die
die erledigt wurden von den zugetragenen." Aus "0 von 68 angesehen"
wird "3 von 12 erledigt".

BEIDE HAELFTEN MUSSTEN MITZIEHEN, und das ist die Stelle, an der es
leicht schiefgeht: Die Kachel nahm links die Zahl ALLER
Einschaetzungen. Waere nur das Ganze nachgezogen worden, stuende dort
"13 von 3" -- eine Zahl, die groesser ist als ihr Ganzes, und die
niemand mehr erklaeren kann. Der Verbund mit der Zuteilung steht
deshalb schon in der Abfrage, an drei Stellen: Karte, Uebersicht und
Ring.

NULL ZUGETRAGEN IST KEINE NULL, SONDERN EIN SATZ. "0 von 0 erledigt"
liest sich wie ein Versaeumnis; "noch nichts zugetragen" sagt, was zu
tun ist. Der Knopf heisst jetzt auch, was er tut: "Aufgaben zutragen".

Der leere Kasten, der im ersten Anlauf die ganze Karte ersetzte, ist
weg -- genau der hatte die Sicht der Leitung veraendert.

Geprueft: pruef-entwicklung 61 -> 63 Punkte. Die neuen halten
ausdruecklich fest, was ich falsch gemacht hatte: Die Leitung sieht den
GANZEN Katalog (68), und die Liste bleibt auch nach dem Zutragen
vollstaendig -- nur die Marke wandert. Ohne diese zwei Zeilen waere
dieselbe Eingrenzung beim naechsten Umbau wieder eine Zeile Arbeit und
niemandem aufgefallen. Dazu pruef-css-klassen und pruef-tippziele.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-25 04:04:29 +02:00
co-authored by Claude Opus 5
parent 7099d53da0
commit 4b48aa46f6
45 changed files with 813 additions and 687 deletions
+70 -32
View File
@@ -132,8 +132,23 @@
if (!letzteKarte) return;
const r = letzteKarte.daten;
const alle = r.bloecke.flatMap((b) => b.punkte);
const gesetzt = alle.filter((pt) => pt.meins).length;
const satz = `${gesetzt} von ${r.gesamt} angesehen`;
/* GEZAEHLT WIRD DAS ZUGETRAGENE (25.09.2026).
Filipe: „es sollen nur die menge angezeigt werden die wir
zutragen und erledigte dan auch nur die die erledigt wurden von
den zugetragenen."
BEIDE HAELFTEN MUESSEN MITZIEHEN. `r.gesamt` ist seit heute die
Zahl der zugetragenen Aufgaben, nicht mehr 68. Zaehlte die linke
Zahl weiter ALLE Einschaetzungen, stuende an einer Kachel
„13 von 3" -- eine Zahl, die groesser ist als ihr Ganzes, und
die niemand mehr erklaeren kann. An dieser Stelle faellt so
etwas besonders leicht durch: Der Ring rechnet mit derselben
Zahl weiter. */
const gesetzt = alle.filter((pt) => pt.zugetragen && pt.meins).length;
const satz = r.gesamt
? `${gesetzt} von ${r.gesamt} erledigt`
: 'noch nichts zugetragen';
const kopf = document.querySelector('#karte .e-karte__stand');
if (kopf) kopf.textContent = satz;
@@ -152,8 +167,8 @@
Math.max(0, Math.min(100, anteilNeu)) + ' 100');
kachel.ringZahl.textContent = r.gesamt > 0 ? String(anteilNeu) : '–';
kachel.ring.setAttribute('aria-label', r.gesamt > 0
? `${gesetzt} von ${r.gesamt} angesehen (${anteilNeu} Prozent)`
: 'noch nichts einzuschätzen');
? `${gesetzt} von ${r.gesamt} erledigt (${anteilNeu} Prozent)`
: 'noch nichts zugetragen');
kachel.standZahl.textContent = String(gesetzt);
/* Fertig ist ein ruhiger voller Ring -- kein Gruen, keine Feier:
Es ist der Normalzustand, nicht ein Preis. */
@@ -395,7 +410,18 @@
waere Name + Rolle + alles, was sonst noch draufsteht. */
k.dataset.name = p.name;
const gesamt = Number(lage.gesamt_fremd) || 0;
/* DAS GANZE IST DAS ZUGETRAGENE (25.09.2026).
Filipe: „es sollen nur die menge angezeigt werden die wir
zutragen." Hier stand `lage.gesamt_fremd` -- die 68 des
Katalogs, fuer jeden dieselbe Zahl. Bei jemandem, dem drei
Aufgaben zugetragen sind, sagte die Kachel „0 von 68" und der
Ring 0 Prozent, obwohl es um drei geht.
`p.gesetzt` ZAEHLT SEIT HEUTE NUR ZUGETRAGENES (der Verbund im
Server) -- sonst stuende hier „13 von 3", eine Zahl groesser als
ihr Ganzes. */
const gesamt = Number(p.zugeteilt) || 0;
const gesetzt = Number(p.gesetzt) || 0;
const anteil = gesamt > 0 ? Math.round(gesetzt / gesamt * 100) : 0;
@@ -447,8 +473,8 @@
const ring = el('span', 'e-ring');
ring.setAttribute('role', 'img');
ring.setAttribute('aria-label', gesamt > 0
? `${gesetzt} von ${gesamt} angesehen (${anteil} Prozent)`
: 'noch nichts einzuschätzen');
? `${gesetzt} von ${gesamt} erledigt (${anteil} Prozent)`
: 'noch nichts zugetragen');
if (gesamt > 0 && gesetzt >= gesamt) ring.dataset.voll = 'ja';
/* BEI NULL PROZENT DARF NICHTS ZU SEHEN SEIN (gemessen am
Bildschirmfoto). Der Bogen hat runde Enden -- damit zeichnet
@@ -500,9 +526,14 @@
/* ==== DER FUSS: die feine Zeile ============================== */
const fuss = el('span', 'e-person__fuss');
const stand = el('span', 'e-person__stand');
const standZahl = el('span', 'e-person__stand-zahl', String(gesetzt));
const standZahl = el('span', 'e-person__stand-zahl', gesamt ? String(gesetzt) : '');
stand.append(standZahl);
stand.append(el('span', 'e-person__stand-rest', ` von ${gesamt} angesehen`));
/* NULL ZUGETRAGEN IST KEINE NULL, SONDERN EIN SATZ. „0 von 0
erledigt" liest sich wie ein Versaeumnis; „noch nichts
zugetragen" sagt, was zu tun ist -- und wer es zu tun hat. */
stand.append(el('span', 'e-person__stand-rest', gesamt
? ` von ${gesamt} erledigt`
: 'noch nichts zugetragen'));
if (gesamt > 0 && gesetzt >= gesamt) stand.dataset.voll = 'ja';
fuss.append(stand);
@@ -1496,7 +1527,9 @@
const kopf = el('div', 'e-karte__kopf');
kopf.append(el('h2', 'e-karte__name', r.person.name));
kopf.append(el('span', 'e-karte__rolle', r.person.rolle_name));
kopf.append(el('span', 'e-karte__stand', `${r.gesetzt} von ${r.gesamt} angesehen`));
kopf.append(el('span', 'e-karte__stand', r.gesamt
? `${r.gesetzt} von ${r.gesamt} erledigt`
: 'noch nichts zugetragen'));
/* Der Weg zum Notizbrett. Der Katalog ist das, was man regelmäßig
durchgeht; die Notiz das, was zwischendurch auffällt. Beides
nebeneinander, nicht statt. */
@@ -1515,34 +1548,25 @@
Frage, wenn die Karte leer aussieht. */
const waehlen = el('button', 'schritt e-karte__waehlen',
r.gesamt
? `Punkte auswählen · ${r.gesamt} von ${r.gesamt_katalog}`
: 'Punkte auswählen');
? `Aufgaben zutragen · ${r.gesamt} von ${r.gesamt_katalog}`
: 'Aufgaben zutragen');
waehlen.type = 'button';
if (!r.gesamt) waehlen.dataset.leer = 'ja';
waehlen.addEventListener('click', () => punkteWaehlen(id, r.person.name));
kopf.append(waehlen);
ziel.append(kopf);
/* NOCH NICHTS AUSGESUCHT HEISST NICHT „KAPUTT". Ohne diesen Satz
stuende die Karte leer da, und niemand wuesste, ob die Seite
gerade laedt, ob es einen Fehler gab oder ob schlicht noch
niemand ausgesucht hat. Ein leerer Bildschirm ohne Erklaerung
ist die schlechteste Antwort von allen. */
if (!r.gesamt) {
const leer = el('div', 'e-leerwahl');
leer.append(el('p', 'e-leerwahl__titel',
`Für ${r.person.name} ist noch nichts ausgesucht.`));
leer.append(el('p', 'e-leerwahl__satz',
'Nicht jeder Punkt passt zu jedem. Such aus, was für sie oder ihn '
+ 'wirklich gilt – nur das steht danach hier, und nur daran wird '
+ 'gemessen.'));
const los = el('button', 'knopf e-leerwahl__knopf', 'Punkte auswählen');
los.type = 'button';
los.addEventListener('click', () => punkteWaehlen(id, r.person.name));
leer.append(los);
ziel.append(leer);
return;
}
/* DER LEERE ZUSTAND IST WEG (korrigiert 25.09.2026).
Hier stand ein Kasten, der die ganze Karte ersetzte, solange
nichts zugetragen war. Filipe: „aber unsere sicht von dogfather
und rechte hand soll sich nicht aendern."
Er hat recht: Die 68 sind das, woran ihr euch entlanghangelt,
wenn ihr jemanden anseht. Ob ihm etwas als Aufgabe zugetragen
ist, ist eine andere Frage -- sie steht in der Zahl oben und als
Marke an den einzelnen Punkten, aber sie verdeckt die Liste
nicht mehr. */
/* ---- Abweichungen zuerst ------------------------------------------
Sie stehen oben, weil sie das Einzige sind, was diese Seite
@@ -1749,9 +1773,23 @@
const z = el('article', 'e-punkt');
if (pt.meins) z.dataset.stufe = pt.meins.stufe;
if (pt.meins?.verblasst) z.dataset.verblasst = 'ja';
/* ZUGETRAGEN HEISST: er hat es als AUFGABE (25.09.2026).
Die Liste bleibt vollstaendig -- die Marke sagt, welche davon
diesem Menschen aufgetragen sind. Ohne sie muesste man das
Auswahlfenster aufmachen, um zu sehen, was man ihm gegeben hat. */
if (pt.zugetragen) z.dataset.zugetragen = 'ja';
const kopf = el('div', 'e-punkt__kopf');
kopf.append(el('h4', 'e-punkt__titel', pt.titel));
if (pt.zugetragen) {
/* DAS WORT STEHT DA, NICHT NUR DIE FARBE. Wer Farben schlecht
unterscheidet, sieht sonst nur einen etwas anderen Kasten --
dieselbe Ueberlegung wie bei den Marken im Vorlagenbrett. */
const m = el('span', 'e-punkt__auftrag', 'Aufgabe');
m.title = 'Diesem Menschen als Aufgabe zugetragen';
kopf.append(m);
}
const erw = erwartung.find((e) => e.schluessel === pt.stufe);
if (erw) {
const m = el('span', 'e-punkt__erwartung', erw.name);