Keine fertigen Vorschläge mehr bei den Highlights
Filipe: "nimm die sachen da weg bitte. da sollen nur die sachen rein
kommen die die modis, linke und rechte hand oder dogfather
reinsetzen."
In der Spalte "Noch einzusortieren" standen drei vorgefertigte
Vorschlaege ("Was hier hingehoert", "Fanart von DogFather und Casper
ist ausdruecklich erwuenscht", "Ein Ausschnitt, der auf die Clips
soll"). Jemand hatte sie uebernommen, und danach standen sie zwischen
den echten Clips -- mit Datum, mit Verfasser, aeusserlich nicht von
einem echten Eintrag zu unterscheiden.
WARUM DIESES BRETT ANDERS IST ALS DIE UEBRIGEN: Anderswo ist ein
Vorschlag eine ANREGUNG, die man ausfuellt ("Der naechste Stream mit
DogFather" -> Datum eintragen). Highlights ist eine SAMMLUNG echter
Sachen. Ein vorgefertigter Text ist dort kein Anfang, sondern ein
Platzhalter, der aussieht wie Inhalt. Die anderen Bretter behalten
ihre Vorschlaege -- dazu hat er nichts gesagt.
Nebenbefund: Seine Rollenaufzaehlung ist genau TREFF_TEAM_ROLLEN
(modi, hand, linke, admin). Die Rechteregel stimmte also schon.
ZWEI ECHTE MAENGEL FIELEN DABEI AUF, beide beim Versuch, die drei
Eintraege wegzunehmen:
1. Der Knopf "loeschen" schickte DELETE OHNE GRUND. Der Server
verlangt bei einem fremden Beitrag auf einem Treff-Brett einen
(DSA Art. 17) und antwortet mit 400 -- die Oberflaeche zeigte nur
"Loeschen hat nicht geklappt." Zwei Knoepfe nebeneinander, einer
ging ("entfernen"), einer nicht, und die Meldung erklaerte nichts.
Jetzt fragt auch "loeschen" nach dem Grund, wenn der Server einen
braucht -- erkannt an `treffBrett` vom Server, nicht an einer
abgeschriebenen Brettliste -- und die Fehlermeldung gibt wieder,
was der Server gesagt hat.
2. Der Dialog liess DREI Zeichen als Grund durch, der Server verlangt
ZEHN. Wer "spam" tippte, kam durch die Nachfrage und bekam danach
eine Absage. `grund_min` steht seit dem 11.09. in /api/treff/lage
und wurde nie benutzt; jetzt ist es angeschlossen. In nachfrage.js
bestimmt der Aufrufer die Mindestlaenge (`grundMin`), Vorgabe
bleibt 3 -- fuer alle anderen Nachfragen aendert sich nichts.
UND ZWEI PRUEFUNGEN, DIE ROT WAREN, OHNE DASS ETWAS KAPUTT WAR:
- pruef-treff-start verlangte `>= 8` Vorschlaege auf dem Schirm. Das
stimmte bis zum Fenster-Umbau vom 20.09. -- seither kommen
hoechstens VIER (FENSTER = 4). Vier Tage rot, ohne dass es jemand
erfuhr. Gefragt wird jetzt der Server selbst. Und die Brettliste
["treff","anschlag","wunsch","highlight"] wird gegen den Bestand
abgeglichen statt abgeschrieben -- mit ausdruecklichem Nachweis,
dass Highlights keine mehr hat, damit das Wegfallen nicht einfach
eine Pruefung weniger bedeutet. 41 -> 42 Pruefungen.
- pruef-nachfrage zaehlte `installieren.js` als "diese Seite fragt
nach", obwohl der Aufruf dort hinter `if (typeof window.frageNach
=== 'function')` steht. Weil die Datei auf fast jeder Seite liegt,
wurde damit JEDE Seite zur fragenden -- fuenf rote Zeilen, kein
einziger echter Mangel. Ausserdem wurde die Kurzschreibweise
`{ titel, … }` als "ohne Titel" gemeldet. 46 -> 53 Pruefungen, alle
gruen; zwei davon sind neu (Gegenprobe plus Benennung der
Ausnahmen).
Beide mit Gegenprobe (git stash) belegt: schon vor dieser Aenderung
rot.
Gemessen: 11 Messungen, 0 Befunde -- darunter die Gegenprobe, dass
der alte Weg (DELETE ohne Grund) wirklich mit 400 gescheitert waere.
Gruen: pruef-treff-start (42), pruef-nachfrage (53), pruef-highlights
(31), pruef-anschlagbrett (12), pruef-css-klassen.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -169,17 +169,57 @@ melde("=== 1. Was bereitliegt ===");
|
||||
`${mit} von ${alle.length} Texten nennen DogFather, seine Kanaele oder Casper `
|
||||
+ `(${Math.round(mit / alle.length * 100)} %)`);
|
||||
|
||||
/* UND DIE VIER BRETTER, DIE DIE COMMUNITY WIRKLICH SIEHT, ganz.
|
||||
Auf dem Anschlagbrett, im Treff, in der Wunschliste und bei den
|
||||
Highlights gibt es keinen Satz, der ohne ihn auskommt -- sie
|
||||
handeln von seinen Streams. */
|
||||
for (const b of ["treff", "anschlag", "wunsch", "highlight"]) {
|
||||
/* JEDES BRETT, DAS VORSCHLAEGE HAT, ganz -- sie handeln von
|
||||
seinen Streams, und keiner kommt ohne ihn aus.
|
||||
|
||||
DIE LISTE WIRD ABGELEITET, NICHT ABGESCHRIEBEN (24.09.2026).
|
||||
Hier stand `["treff", "anschlag", "wunsch", "highlight"]`. Am
|
||||
24.09. fielen die Vorschlaege fuer Highlights weg (Filipe: "da
|
||||
sollen nur die sachen rein kommen die die modis, linke und
|
||||
rechte hand oder dogfather reinsetzen"), und die Pruefliste
|
||||
wusste es nicht: Sie verlangte weiter Texte von einem Brett,
|
||||
das keine mehr hat. Dieselbe Falle wie jede abgeschriebene
|
||||
Liste in diesem Haus -- eine, die niemand pflegt, kann nicht
|
||||
veralten.
|
||||
|
||||
DASS ES UEBERHAUPT WELCHE GIBT, wird eine Zeile tiefer
|
||||
geprueft. Sonst waere "alle geprueft" auch dann gruen, wenn
|
||||
morgen gar kein Brett mehr Vorschlaege haette -- ein
|
||||
uebersprungener Test beweist nichts. */
|
||||
/* DIE ABSICHT BLEIBT, DIE LISTE WIRD GEPRUEFT (berichtigt beim
|
||||
zweiten Anlauf am 24.09.2026).
|
||||
|
||||
Mein erster Versuch nahm einfach ALLE Bretter mit Vorschlaegen.
|
||||
Das war bequem und falsch: "Regeln", "Mitmachen" und "Was
|
||||
ansteht" haben zu Recht Saetze ohne seinen Namen ("Turnier",
|
||||
"Schritt 2: Sag im Rudel, dass du Lust hast") -- fuer die gilt
|
||||
die 60-%-Regel eine Zeile weiter oben, nicht diese hier. Die
|
||||
Pruefung waere dadurch rot geworden, ohne dass etwas kaputt
|
||||
war, und ich haette ihre Aussage veraendert statt ihre Liste zu
|
||||
reparieren.
|
||||
|
||||
Richtig ist die Schnittmenge: die Bretter, die die Community
|
||||
sieht UND die ueberhaupt Vorschlaege haben. Faellt eines weg,
|
||||
faellt es hier lautlos heraus -- deshalb steht direkt darunter,
|
||||
WIE VIELE es sein muessen, und fuer Highlights ausdruecklich,
|
||||
dass es keine mehr hat. */
|
||||
const GEMEINT = ["treff", "anschlag", "wunsch", "highlight"];
|
||||
const mitVorschlaegen = GEMEINT.filter((b) => (TREFF_START[b] || []).length > 0);
|
||||
ok(mitVorschlaegen.length === 3,
|
||||
`${mitVorschlaegen.length} der Bretter, die die Community sieht, haben `
|
||||
+ `Vorschlaege (${mitVorschlaegen.join(", ")})`);
|
||||
for (const b of mitVorschlaegen) {
|
||||
const liste = TREFF_START[b] || [];
|
||||
const ohne = liste.filter((v) => !BEZUG.test(`${v.titel} ${v.text}`));
|
||||
ok(liste.length > 0 && ohne.length === 0,
|
||||
ohne.length ? `${b}: ohne Bezug -- "${ohne[0].titel}"`
|
||||
: `${b}: alle ${liste.length} Texte sind auf ihn bezogen`);
|
||||
}
|
||||
/* UND HIGHLIGHTS HAT AUSDRUECKLICH KEINE MEHR. Ohne diese Zeile
|
||||
wuerde das Wegfallen nur dazu fuehren, dass eine Pruefung
|
||||
weniger laeuft -- und niemand merkte, wenn sie zurueckkaemen. */
|
||||
ok(!(TREFF_START.highlight || []).length,
|
||||
"Highlights hat keine fertigen Vorschlaege (auf Ansage vom 24.09.2026)");
|
||||
|
||||
/* GEGENPROBE: Ein anonymer Text MUSS auffallen. Ohne sie hiesse
|
||||
"alle bezogen" nur, dass das Muster auf alles passt. */
|
||||
@@ -333,7 +373,30 @@ melde("=== 6. Wie es aussieht ===");
|
||||
alleKnopf: document.querySelector(".startkatalog__alle")?.textContent?.trim() || "",
|
||||
leer: document.querySelector(".leer-hinweis")?.textContent?.trim() || "",
|
||||
}));
|
||||
ok(vorher.karten >= 8, `${vorher.karten} Vorschlaege stehen bereit`);
|
||||
/* WIE VIELE STEHEN DA? NICHT EINE ZAHL VON GESTERN (24.09.2026).
|
||||
|
||||
Hier stand `>= 8`. Das stimmte, bis am 20.09.2026 das Fenster
|
||||
eingefuehrt wurde -- seither kommen HOECHSTENS VIER auf einmal
|
||||
(FENSTER = 4 in workspace-bereiche.js), und die Pruefung war
|
||||
vier Tage lang rot, ohne dass es jemandem gesagt wurde. Genau
|
||||
die Sorte Zahl, vor der CLAUDE.md warnt: eine Rechnung von
|
||||
gestern, die still falsch wird.
|
||||
|
||||
Gefragt wird jetzt der Server selbst -- er weiss, wie viele er
|
||||
schickt, und die Oberflaeche muss genau so viele zeichnen.
|
||||
Zusaetzlich `> 0`, damit "gleich viele" nicht auch bei null
|
||||
gruen ist. */
|
||||
const ausDerAntwort = await seite.evaluate(async () => {
|
||||
const a = await fetch("/workspace/api/bereich/mitmachen/start?ab=0",
|
||||
{ credentials: "same-origin" });
|
||||
if (!a.ok) return null;
|
||||
const j = await a.json();
|
||||
return { geschickt: (j.vorschlaege || []).length, vorrat: j.vorrat, offen: j.offen };
|
||||
});
|
||||
ok(!!ausDerAntwort && ausDerAntwort.geschickt > 0
|
||||
&& vorher.karten === ausDerAntwort.geschickt,
|
||||
`${vorher.karten} Vorschlaege stehen bereit -- genau so viele, wie der `
|
||||
+ `Server schickt (${ausDerAntwort?.geschickt}), von ${ausDerAntwort?.offen} offenen`);
|
||||
ok(/Alle \d+ übernehmen/.test(vorher.alleKnopf), `mit einem Knopf ("${vorher.alleKnopf}")`);
|
||||
/* DER LEERTEXT IST DER DES BEREICHS, nicht der Einheitssatz. */
|
||||
ok(vorher.leer.includes("dazugehören"),
|
||||
|
||||
Reference in New Issue
Block a user