Trichter und Entwicklungskarte kennen einander

An der Stufe "Im Team" steht seit jeher zweimal: "ab hier zaehlt die
Entwicklungskarte, nicht mehr diese". Gemessen: Es gab keinen Weg
dorthin. Wer den Satz las, musste die Seite selbst finden und die
Person dort aus einer Liste heraussuchen.

Das ist heute das DRITTE Mal dasselbe Muster -- ein Text verspricht
einen Weg, den es nicht gibt:
  "uebernehmen oder sauber beenden"  -> der Ausgang fehlte
  Kalender zeigt Brettzettel         -> zurueck fuehrte nichts
  "ab hier die Entwicklungskarte"    -> kein Link

HIN: Von der Talentkarte fuehrt ein Weg auf die Entwicklungskarte
GENAU DIESER Person -- ueber `?zeigen=person-<id>`, den Weg, den das
Haus dafuer schon hat (kopf.js), nicht ueber eine zweite Mechanik. Die
Karte ist beim Ankommen offen; ein Link, der auf einer Liste endet, auf
der man die Person wieder sucht, hat nichts erspart.

Der Sprung passiert ERST, wenn alle Kacheln stehen. Waehrend der
Schleife haengt die gesuchte noch nicht im Dokument und hat keine
Position -- ein Sprung dorthin waere einer an den Seitenanfang,
lautlos, und man haelt den Link fuer kaputt.

ZURUECK: Die Entwicklungskarte sagt jetzt, wie dieser Mensch gekommen
ist -- mit dem Namen der Talentkarte und wer ihn eingearbeitet hat.
Beim ersten Beurteilen ist genau das die Frage ("woher kommt der
eigentlich?"), und wer sie nicht beantwortet bekommt, faengt bei null
an, obwohl vier Wochen Beobachtung vorliegen.

NUR DER WEG, NICHT DIE DATEN. Die Merkmale aus dem Trichter hierher zu
kopieren waere bequem und falsch: zwei Kataloge, zwei Fragen (taugt er?
/ wie entwickelt er sich?). Eine Zahl aus dem einen sieht im anderen
aus wie eine Beurteilung und ist keine.

Moeglich wurde beides erst durch `talent_stufe.person_id` von vorhin --
ohne die Verknuepfung gibt es keine Richtung, in die man zeigen
koennte.

pruef-nachwuchs 236 -> 244. Geprueft wird nicht, ob ein Link DASTEHT,
sondern ob man am Ziel ankommt: Karte offen, richtige Person, Kachel
hervorgehoben, Herkunft da, Rueckweg da. Mit Gegenprobe an einer
zweiten Karte, die NICHT aus dem Trichter kam (sonst hiesse "kam ueber
den Trichter" nur, dass ueberall etwas steht).

Gegenproben:
  Sprung ausgebaut    -> 5 rot
  Herkunft ausgebaut  -> 2 rot, genau die beiden richtigen

Und wieder eine Schriftgroesse unter der Hausgrenze (.7rem = 11,2 px),
gefunden von pruef-css-klassen. Zurueckhaltend wird ueber FARBE
gedaempft, nicht ueber Groesse -- das ist der Unterschied zwischen
"leise" und "zusammengekniffen".

Gruen: nachwuchs, entwicklung, sprung, modi-wortleck, namen,
css-klassen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-18 01:01:12 +02:00
co-authored by Claude Opus 5
parent a435e734c9
commit 1a2dfa07f3
38 changed files with 622 additions and 401 deletions
+49
View File
@@ -1349,3 +1349,52 @@
font-size: .88rem;
}
/* Der Weg von der Talentkarte zur Entwicklungskarte. Die Stufe sagt
zweimal „ab hier zaehlt die Entwicklungskarte" -- bis heute ohne
einen Weg dorthin. */
.t-person__weiter {
font-size: .8rem; font-weight: 600;
color: var(--text-leise);
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-color: color-mix(in srgb, var(--text-leise) 40%, transparent);
}
.t-person__weiter:hover { color: var(--text); }
.t-person__weiter:focus-visible { outline: 2px solid var(--akzent); outline-offset: 3px; }
/* =====================================================================
WIE DIESER MENSCH GEKOMMEN IST (17.09.2026)
Die Gegenrichtung: Wer eine Entwicklungskarte aufschlaegt, sieht
Namen und Punkte -- aber nicht, dass derselbe Mensch vier Wochen
beobachtet wurde. Beim ersten Beurteilen ist genau das die Frage.
Eine Zeile, kein Kasten: Es ist Herkunft, nicht Inhalt.
===================================================================== */
.e-herkunft {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 9px;
margin: 0 0 12px;
padding-bottom: 10px;
border-bottom: 1px solid color-mix(in srgb, var(--rand) 70%, transparent);
font-size: .82rem;
}
.e-herkunft__schild {
/* 11,52 px -- die Hausgrenze liegt bei 11,5. Der erste Anlauf stand
auf .7rem (11,2) und wurde von pruef-css-klassen gefunden: eine
Stelle mehr als die Grundlinie. Zurueckhaltend wird die Zeile ueber
FARBE, nicht ueber Groesse. */
font-size: .72rem; font-weight: 700; letter-spacing: .03em;
text-transform: uppercase;
color: var(--text-still);
}
.e-herkunft__weg {
font-weight: 600;
color: var(--text-leise);
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-color: color-mix(in srgb, var(--text-leise) 40%, transparent);
}
.e-herkunft__weg:hover { color: var(--text); }
.e-herkunft__weg:focus-visible { outline: 2px solid var(--akzent); outline-offset: 3px; }
.e-herkunft__buddy { color: var(--text-still); }
+59
View File
@@ -252,9 +252,28 @@
/* NUR HIER WIRD GESPRUNGEN: Wer eine Person anklickt, will zu ihrer
Karte. Überall sonst bleibt die Seite stehen, wo sie steht. */
k.addEventListener('click', () => karte(p.id, true));
/* VON AUSSEN AUF EINE KARTE (17.09.2026).
Die Talentseite verweist seit heute hierher -- bis dahin oeffnete
sich eine Karte NUR durch Klick auf ihre Kachel. Wer dem Link
folgte, landete auf einer Liste und musste die Person suchen;
genau der Schritt, den der Link ersparen sollte.
`?zeigen=` ist der vorhandene Weg (kopf.js), nicht ein zweiter.
Er wird an der Kachel ausgewertet, waehrend sie entsteht --
vorher gibt es sie nicht, und ein Sprung ins Nichts scrollt
kommentarlos an den Seitenanfang. */
if (window.zielSchluessel?.() === `person-${p.id}`) {
gesucht = k;
}
return k;
}
/* Welche Kachel von aussen gesucht wurde (`?zeigen=person-…`).
Sie wird beim Bauen gemerkt und erst danach angesprungen -- vorher
haengt sie nicht im Dokument und hat keine Position. */
let gesucht = null;
/* ---- Die Karte einer Person ----------------------------------------- */
/* DIE SEITE BEWEGT SICH NUR NOCH, WENN MAN ES WILL (15.09.2026).
@@ -297,6 +316,31 @@
letzteKarte = { id, daten: r };
ziel.textContent = '';
/* WIE DIESER MENSCH GEKOMMEN IST (17.09.2026).
Wer eine Karte aufschlaegt, sieht Namen und Punkte -- aber nicht,
dass derselbe Mensch vier Wochen lang beobachtet wurde und wer
ihn eingearbeitet hat. Beim ersten Beurteilen ist genau das die
Frage: „Woher kommt der eigentlich?"
NUR DER WEG, NICHT DIE DATEN. Die Merkmale aus dem Trichter
hierher zu kopieren waere bequem und falsch -- zwei Kataloge,
zwei Fragen (taugt er? / wie entwickelt er sich?). Eine Zahl aus
dem einen sieht im anderen aus wie eine Beurteilung und ist
keine. */
if (r.herkunft) {
const h = el('p', 'e-herkunft');
h.append(el('span', 'e-herkunft__schild', 'Kam über den Trichter'));
const hin = el('a', 'e-herkunft__weg', r.herkunft.titel);
hin.href = 'talente.html';
h.append(hin);
if (r.herkunft.buddy_name) {
h.append(el('span', 'e-herkunft__buddy',
'· eingearbeitet von ' + r.herkunft.buddy_name));
}
ziel.append(h);
}
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));
@@ -768,7 +812,22 @@
ziel.append(el('p', 'leise',
'Noch niemand im Team. Zugänge legst du in „Personen & Zugänge" an.'));
}
gesucht = null;
for (const p of lage.personen) ziel.append(personKarte(p, lage));
/* ERST JETZT SPRINGEN. Die Kachel entsteht in der Schleife
darueber; waehrenddessen haengt sie noch nicht im Dokument
und hat keine Position. Ein Sprung dorthin waere ein Sprung
an den Seitenanfang -- lautlos, und man haelt den Link fuer
kaputt.
Die Karte wird MIT geoeffnet: Wer von der Talentseite kommt,
will die Karte sehen und nicht die Kachel dazu. Genau der
Schritt, den der Link ersparen soll. */
if (gesucht) {
const wen = Number(gesucht.dataset.person);
window.zielMarkieren?.([gesucht], 'diese eine Karte');
if (wen) await karte(wen, true);
}
await ampel();
} else {
/* Für die Beurteilten ist DIESE Seite die eigene Karte — das,
+16
View File
@@ -286,6 +286,22 @@
wer.append(el('span', 't-person__schon',
`${schon} ${schon === 1 ? 'offene Aufgabe' : 'offene Aufgaben'}`));
}
/* DER WEG ZUR ENTWICKLUNGSKARTE (17.09.2026).
Der Satz dieser Stufe sagt zweimal „ab hier zaehlt die
Entwicklungskarte" -- und es gab keinen Weg dorthin. Wer ihn
las, musste die Seite selbst finden und die Person dort
heraussuchen. Genau dasselbe Muster wie beim fehlenden Ausgang
aus dem Trichter: ein Text, der einen Weg verspricht, den es
nicht gibt.
`?zeigen=` ist der Weg, den das Haus dafuer hat (kopf.js) --
keine zweite Mechanik. */
if (k.person.aktiv) {
const zurKarte = el('a', 't-person__weiter', 'Entwicklungskarte');
zurKarte.href = `entwicklung.html?zeigen=person-${k.person.id}`;
wer.append(zurKarte);
}
a.append(wer);
if (k.person.aktiv) startAufgaben(a, k, schon);
}