Bewerbungen: die Absage bleibt lesbar, und ihr seht, was ihr absagt
VanVan im Support: „Wenn sich ein Modi auf eine Aufgabe bewirbt und
man diese ablehnt, dann bekommt der Modi keine Benachrichtigung
darüber, dass die Aufgabe abgelehnt wurde und sieht somit auch eine
eventuelle Begründung nicht. Außerdem haben auch wir nirgendwo eine
Übersicht, bei wem wir welche Aufgaben schon abgelehnt haben."
GEMESSEN, BEVOR GEBAUT WURDE -- die Pruefungen standen zuerst da und
waren rot:
Frida sieht ihre beantwortete Bewerbung 0
Die Leitung sieht die Absagen 0
DIE URSACHE. `vorlagenBewerbungenFuer` fragt `WHERE zustand =
'beworben'`. Sobald jemand antwortet, faellt die Zeile aus JEDER
Ansicht heraus -- mitsamt der Begruendung, die Filipe am 23.09.
ausdruecklich verlangt hat („mit einem text als notiz"). Der Satz
wird also verlangt, geschrieben und weggesperrt.
Bei einer ZUSAGE fiel das nicht auf: Dort entsteht eine Aufgabe, und
an ihrer Karte steht die Antwort. Bei einer ABSAGE entsteht nichts.
Die Benachrichtigung selbst gab es (`bewerbung_antwort`, vorgabe an,
fuer ja und nein). Sie war nur das EINZIGE -- wer sie wegwischt oder
kein Geraet angemeldet hat, erfuhr nie, warum.
WAS JETZT DASTEHT
* BEIM BEWERBER: „Antwort auf deine Bewerbung" mit dem Ergebnis, dem
Satz und dem Namen dessen, der geantwortet hat. Beide Ausgaenge --
eine Liste, die nur Absagen sammelt, waere eine andere Sache. Nach
14 Tagen verschwindet sie von selbst.
SIE STEHT VOR DEM ZUKLAPPEN. Beim ersten Anlauf lag sie im Koerper
des Vorlagenbretts, und der wird nur gebaut, wenn das Brett
aufgeklappt ist -- zugeklappt ist die Vorgabe. Eine Antwort, die
man erst aufklappen muss, ist wieder keine.
* BEI DER LEITUNG: „Schon abgesagt", 90 Tage, mit der Zahl JE MENSCH
vorn. Das ist VanVans eigentliche Frage („falls sich jemand immer
wieder bewirbt und immer wieder abgelehnt wird"), und die
beantwortet eine Liste von zwanzig Zeilen nicht.
AUS BEIDEN WEGEN -- Vorlage und Aufgabe. Eine Uebersicht, die nur
die Haelfte zeigt, ist schlimmer als keine: „Frida wurde nie
abgelehnt" waere dann eine Auskunft, die stimmt und taeuscht.
ZUGEKLAPPT. Eine Liste von Absagen, die immer offen steht, ist eine
Sammlung von Nein-Sagen ueber Menschen, mit denen man morgen wieder
arbeitet.
KEIN ROT. Eine Absage ist kein Fehler; „diesmal nicht" ist keine
Aussage ueber den Menschen. Gedeckter Bernstein, und ab zwei Malen
faellt die ZAHL auf -- nicht nur die Farbe.
ZWEI EIGENE FELDER UND NICHT `bewerbungen` ERWEITERT. Dort heisst
eine Zeile im Browser „wartet auf Antwort", samt Zurueckziehen-Knopf.
Beantwortete Zeilen hineinzumischen haette bei einer Absage genau das
gezeigt. Ein Feld, dessen Bedeutung sich aendert, bricht seine Leser
lautlos.
`entschieden_von IS NOT NULL` TRENNT DREI DINGE, die alle `abgelehnt`
heissen: die Leitung hat eine Bewerbung abgelehnt (das hier), die
Person hat eine Zuteilung abgelehnt (ihre Entscheidung), und „von
jemand anderem uebernommen" (gar keine Absage).
Haustrennung gilt: `darfSchreibenMit` je Zeile.
GEPRUEFT
pruef-bewerbung-aufgaben 144/0 (weitere 10 Pruefungen plus zwei
Bilder). Die Gegenprobe steht in der Vorgeschichte: Dieselben
Pruefungen waren vor dem Bau rot.
Zwei eigene Messfehler, beide im Text festgehalten: Ich habe zuerst
auf dem AUFGABENbrett gemessen -- der Vorlagenkatalog steht aber auf
„Eure Aufgaben" (`zweig: 'team'`). Und `innerText` liefert den Text
so, wie er DASTEHT: Die Zeile suchte „Diesmal nicht" und fand
„DIESMAL NICHT", weil das Schild `text-transform: uppercase` traegt.
pruef-vorlagen 24/0, pruef-aufgaben-vorlagen, pruef-zuteilung,
pruef-aufgabenbrett, pruef-entwicklung 79/0, pruef-css-klassen,
pruef-zwischenspeicher 34/0.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -173,6 +173,8 @@
|
||||
Datei bekommt jeder, der die Seite öffnet, und genau daran ist
|
||||
dieses Brett am 17.09. schon einmal gescheitert. */
|
||||
let bewerbungen = [];
|
||||
let antworten = [];
|
||||
let absagen = null;
|
||||
let darfEntscheidenV = false;
|
||||
let darfVerteilenV = false;
|
||||
let vBereich = 'live';
|
||||
@@ -236,6 +238,16 @@
|
||||
katalog = d.katalog && Array.isArray(d.katalog.aufgaben) && d.katalog.aufgaben.length
|
||||
? d.katalog : null;
|
||||
bewerbungen = Array.isArray(d.bewerbungen) ? d.bewerbungen : [];
|
||||
/* ==== WAS SCHON BEANTWORTET IST (30.09.2026) ==============
|
||||
VanVan im Support: „dann bekommt der Modi keine
|
||||
Benachrichtigung darüber, dass die Aufgabe abgelehnt wurde
|
||||
und sieht somit auch eine eventuelle Begründung nicht."
|
||||
|
||||
ZWEI EIGENE FELDER, nicht `bewerbungen` erweitert: Dort
|
||||
heisst eine Zeile „wartet auf Antwort", und genau das
|
||||
stuende dann bei einer Absage. */
|
||||
antworten = Array.isArray(d.antworten) ? d.antworten : [];
|
||||
absagen = d.absagen && Array.isArray(d.absagen.liste) ? d.absagen : null;
|
||||
darfEntscheidenV = !!d.darf_entscheiden;
|
||||
darfVerteilenV = !!d.darf_verteilen;
|
||||
vorlagenGeladen = true;
|
||||
@@ -526,8 +538,59 @@
|
||||
});
|
||||
ziel.append(kopf);
|
||||
ziel.dataset.auf = klappStand() ? 'ja' : 'nein';
|
||||
|
||||
/* ==== DIE ANTWORT AUF DIE EIGENE BEWERBUNG (30.09.2026) =======
|
||||
|
||||
VanVan im Support: „dann bekommt der Modi keine Benachrichtigung
|
||||
darüber, dass die Aufgabe abgelehnt wurde und sieht somit auch
|
||||
eine eventuelle Begründung nicht."
|
||||
|
||||
Die Benachrichtigung ging hinaus (`bewerbung_antwort`, seit dem
|
||||
23.09.). Nur war sie das EINZIGE: Sobald jemand geantwortet
|
||||
hatte, verschwand die Bewerbung aus jeder Ansicht -- mitsamt
|
||||
der Begründung, die man ausdrücklich verlangt hatte. Wer die
|
||||
Meldung wegwischte oder kein Gerät angemeldet hat, erfuhr nie,
|
||||
warum.
|
||||
|
||||
BEI EINER ZUSAGE ENTSTEHT EINE AUFGABE, und an ihrer Karte
|
||||
steht die Antwort. Bei einer ABSAGE entsteht nichts — deshalb
|
||||
steht sie hier. Beides wird gezeigt: „angenommen" ohne die
|
||||
Absage daneben wäre eine Liste, die nur schlechte Nachrichten
|
||||
sammelt. */
|
||||
if (antworten.length) {
|
||||
const band = el('div', 'vorlagenbrett__antwort');
|
||||
band.append(el('p', 'vorlagenbrett__antwort-schild',
|
||||
antworten.length === 1
|
||||
? 'Antwort auf deine Bewerbung:'
|
||||
: `${antworten.length} Antworten auf deine Bewerbungen:`));
|
||||
for (const a2 of antworten) {
|
||||
const z = el('div', 'vorlagenbrett__antwort-zeile');
|
||||
z.dataset.zustand = a2.zustand;
|
||||
z.append(el('span', 'vorlagenbrett__antwort-wort',
|
||||
a2.zustand === 'angenommen' ? 'Angenommen' : 'Diesmal nicht'));
|
||||
z.append(el('span', 'vorlagenbrett__antwort-was', a2.titel));
|
||||
/* DER SATZ IST DER GANZE ZWECK. Ohne ihn ist „diesmal nicht"
|
||||
eine Absage ohne Grund — und die liest sich wie eine über
|
||||
den Menschen, nicht über die Aufgabe. */
|
||||
if (a2.entscheid_text) {
|
||||
z.append(el('span', 'vorlagenbrett__antwort-grund',
|
||||
'„' + a2.entscheid_text + '"'
|
||||
+ (a2.von_name ? ' – ' + a2.von_name : '')));
|
||||
}
|
||||
band.append(z);
|
||||
}
|
||||
ziel.append(band);
|
||||
}
|
||||
|
||||
|
||||
/* Zugeklappt wird der Rest gar nicht erst gebaut -- sonst lägen bei
|
||||
jedem Neuzeichnen sechzig Karten da, die niemand sieht. */
|
||||
jedem Neuzeichnen sechzig Karten da, die niemand sieht.
|
||||
|
||||
DIE ANTWORT DARUEBER IST DAVON AUSGENOMMEN (30.09.2026): Sie
|
||||
ist eine Nachricht, kein Katalogeintrag. Eine Antwort, die man
|
||||
erst aufklappen muss, ist wieder keine -- und genau das hat
|
||||
VanVan gemeldet. Es sind ein bis zwei Zeilen, und nach zwei
|
||||
Wochen verschwinden sie von selbst. */
|
||||
if (!klappStand()) return;
|
||||
|
||||
const koerper = el('div', 'vorlagenbrett__koerper');
|
||||
@@ -602,6 +665,59 @@
|
||||
koerper.append(band);
|
||||
}
|
||||
|
||||
/* ==== WAS WIR SCHON ABGESAGT HABEN (30.09.2026) ===============
|
||||
|
||||
VanVan: „Außerdem haben auch wir nirgendwo eine Übersicht, bei
|
||||
wem wir welche Aufgaben schon abgelehnt haben. Falls sich
|
||||
jemand immer wieder auf Aufgaben bewirbt die immer wieder
|
||||
abgelehnt werden, wäre das sinnvoll."
|
||||
|
||||
DIE ZAHL JE MENSCH STEHT VORN, die Liste darunter. Ihre Frage
|
||||
ist „wiederholt sich das?", und die beantwortet eine Liste von
|
||||
zwanzig Zeilen nicht.
|
||||
|
||||
ZUGEKLAPPT, solange niemand hinsieht: Es ist eine Auskunft zum
|
||||
Nachschlagen, kein Aushang. Eine Liste von Absagen, die immer
|
||||
offen steht, ist eine Sammlung von Nein-Sagen über Menschen,
|
||||
mit denen man morgen wieder arbeitet. */
|
||||
if (absagen && absagen.liste.length) {
|
||||
const block = el('details', 'vorlagenbrett__absagen');
|
||||
const kopf = el('summary', 'vorlagenbrett__absagen-kopf');
|
||||
kopf.append(el('span', 'vorlagenbrett__absagen-schild', 'Schon abgesagt'));
|
||||
kopf.append(el('span', 'vorlagenbrett__absagen-zahl',
|
||||
`${absagen.liste.length} in ${absagen.seit_tagen} Tagen`));
|
||||
block.append(kopf);
|
||||
|
||||
if (absagen.je_mensch.length) {
|
||||
const reihe2 = el('div', 'vorlagenbrett__absagen-leute');
|
||||
for (const m of absagen.je_mensch) {
|
||||
const t = el('span', 'vorlagenbrett__absagen-mensch');
|
||||
/* AB ZWEI WIRD ES HERVORGEHOBEN -- einmal „nein" ist kein
|
||||
Muster, dreimal schon. Die Grenze steht am Element und
|
||||
nicht in der Farbe allein: Wer Farben schlecht
|
||||
unterscheidet, liest die Zahl. */
|
||||
if (m.anzahl > 1) t.dataset.oft = 'ja';
|
||||
t.append(el('span', 'vorlagenbrett__absagen-name', m.name || 'Jemand'));
|
||||
t.append(el('span', 'vorlagenbrett__absagen-mal', `${m.anzahl}×`));
|
||||
reihe2.append(t);
|
||||
}
|
||||
block.append(reihe2);
|
||||
}
|
||||
|
||||
for (const a3 of absagen.liste) {
|
||||
const z = el('div', 'vorlagenbrett__absagen-zeile');
|
||||
z.append(el('span', 'vorlagenbrett__absagen-wer', a3.person_name || 'Jemand'));
|
||||
z.append(el('span', 'vorlagenbrett__absagen-was', a3.titel));
|
||||
if (a3.entscheid_text) {
|
||||
z.append(el('span', 'vorlagenbrett__absagen-grund',
|
||||
'„' + a3.entscheid_text + '"'
|
||||
+ (a3.von_name ? ' – ' + a3.von_name : '')));
|
||||
}
|
||||
block.append(z);
|
||||
}
|
||||
koerper.append(block);
|
||||
}
|
||||
|
||||
|
||||
/* Die Etappen als Reihe -- mit der Zahl darin, damit man sieht, wo
|
||||
etwas liegt, bevor man klickt. */
|
||||
|
||||
Reference in New Issue
Block a user