Agentur-Events: die Karte als Aushang, Aufgaben zum Abhaken
Filipe, mit einem Bildschirmfoto des Oktober-Events: "ich will das viel geiler viel perfekter. und auch wenn man die eintraegt und so soll viel mehr perfektioniert und uebersichtlicher sein." VORHER GEMESSEN (1280 px, eine einzige Eventkarte): Kartenhoehe 1196 px -- das Fenster ist 900 px davon Banner 638 px -- 53 %, ohne einen Buchstaben Titel steht bei 1482 px -- zweimal scrollen bis zum Namen Titelgroesse 15,36 px -- 1,4 px mehr als der Fliesstext Etikett 10,88 px -- unter der eigenen Grenze (11,5) Datum 3 x -- in drei Zeilen untereinander Knoepfe 4 x gleich -- "loeschen" wie "zur Aufgabe" NACHHER, dieselbe Messung: Karte 618 px, Buehne 203 px, Titel 75 px unter der Kartenkante und 24,8 px gross, Etikett 12 px, das Datum einmal, "loeschen" abgesetzt. DIE KARTE Das Banner ist nicht mehr ein Anhang ueber dem Titel, sondern die Buehne dahinter -- Hoehe gedeckelt, Titel darauf. Dazu die Frage, die bei einem Wettbewerb wirklich zaehlt und bisher nirgends beantwortet wurde: "noch 12 Tage", mit Zeitbalken. Ein Knopf "Banner ganz" holt das vollstaendige Bild zurueck, das beim Umbau sonst verloren gegangen waere -- bei Filipes Banner steht die Ansage IM Bild. DIE AUFGABEN Aus Fliesstext wird eine Liste, und jeder hakt fuer sich ab (neue Tabelle event_punkte, Schluessel aus dem Zeilentext). Umsortieren laesst den Haken, wo er ist; wird die Bedingung selbst umgeschrieben, faellt er -- beides nachgemessen. Die Leitung sieht, wer wie weit ist, eine Creatorin sieht diese Liste gar nicht erst. DAS FORMULAR Ein Feld je Zeile statt eines leeren Textfeldes. Im echten Event stand ".Jeden Tag Live gehen" neben ". 33k Diamanten erreichen" -- einmal mit Leerzeichen, einmal ohne. Das ist die zwangslaeufige Folge davon, dass die Aufzaehlungszeichen von Hand getippt werden; jetzt setzt sie das Formular. Dazu "Laeuft 14 Tage.", eine Warnung bei verdrehtem Zeitraum und eine Vorschau, die dieselbe Funktion benutzt wie die echte Karte. NEBENBEI GEFUNDEN UND BEHOBEN * Das Banner kam bei Creatorn mit 404 zurueck -- also an genau der Karte, die fuer sie gemacht ist. Die Regel "wer das Brett sieht, sieht das Bild" galt nur fuer die sieben Community-Bretter. Jetzt fragt der Bildweg dieselbe Regel wie das Brett (darfEintragSehen); die Gegenprobe zeigt, dass ein fremder Eintrag weiterhin 404 gibt. * Zwei Stellen setzten das Formular zurueck, die kuerzere liess Vorschau und Zeilen-Editor stehen -- beim naechsten "Neuer Eintrag" standen die Aufgaben des vorigen Events noch da. * Der Schriftgrund ragte auf dem Handy 6 px ueber die Karte (feste -20 px gegen 14 px Polsterung); jetzt an die Polsterung gekoppelt. GEPRUEFT pruef-eventkarte.mjs (neu): 77 Pruefungen, 0 Fehler -- mit Gegenproben zu jeder Zusage und einer Kontrastmessung am Bildpunkt auf einem weissen Banner (14,7:1; ohne den Schriftgrund 1,05:1). pruef-agentur.mjs auf die neuen Bausteine nachgezogen, Zahl unveraendert bei 62. pruef-eintrag-bild.mjs 24/0. OFFEN, NICHT AUS DIESEM UMBAU: Das Brett `agentur` ist auf der Crew-Adresse erreichbar. Zweimal gemessen, mit und ohne diese Aenderung -- gleiches Ergebnis. Gehoert zur Trennungsregel vom 24.09.2026 und wird getrennt entschieden. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -697,33 +697,56 @@ melde("\n=== Die Kachel ===");
|
||||
Regeln koennen vollstaendig in der Antwort stehen und trotzdem
|
||||
nirgends gezeichnet werden -- ein vergessener Aufruf in karte()
|
||||
reicht, und niemand merkt es, weil die Karte ja da ist. */
|
||||
/* ==== AUF DIE NEUE KARTE UMGESTELLT (03.10.2026) ================
|
||||
|
||||
Die Eventkarte wurde umgebaut (siehe pruef-eventkarte.mjs): Buehne
|
||||
mit Titel auf dem Banner, Zeitraum einmal statt dreimal, Aufgaben
|
||||
als Liste zum Abhaken. Dabei haben die Bausteine neue Namen
|
||||
bekommen -- `.event-zeitraum__marke` heisst jetzt `.ev-noch`,
|
||||
`.event-block__text` ist zu einer Liste aus `.ev-punkt__text`
|
||||
geworden.
|
||||
|
||||
DIESE PRUEFUNG WURDE DESHALB NICHT GELOESCHT, SONDERN NACHGEZOGEN:
|
||||
Sie sagt weiterhin dieselben FUENF Dinge zu, nur an der neuen
|
||||
Stelle. Eine Pruefung wegzunehmen, weil sie nach einem Umbau rot
|
||||
wird, senkt die Zahl und beweist danach nichts mehr
|
||||
(Projektgedaechtnis, 28.08.2026: 789 statt 804 Pruefungen, und
|
||||
acht davon fielen still weg).
|
||||
|
||||
WAS SICH INHALTLICH AENDERT: Der Zustand steht nicht mehr als
|
||||
"laeuft bis TT.MM.JJJJ" da, sondern als "noch N Tage" -- dieselbe
|
||||
Aussage, nur beantwortet sie jetzt die Frage, die man wirklich
|
||||
hat. Geprueft wird deshalb auf ein WORT (nicht nur Farbe), nicht
|
||||
mehr auf einen bestimmten Satz. */
|
||||
const event = await seite.$$eval(".eintrag-karte", (karten) => {
|
||||
const k = karten.find((x) => x.querySelector(".eintrag-titel")?.textContent.trim() === "Sommer-Aktion");
|
||||
if (!k) return null;
|
||||
return {
|
||||
stand: k.dataset.event,
|
||||
marke: k.querySelector(".event-zeitraum__marke")?.textContent.trim(),
|
||||
spanne: k.querySelector(".event-zeitraum__spanne")?.textContent.trim(),
|
||||
schilder: [...k.querySelectorAll(".event-block__schild")].map((s) => s.textContent.trim()),
|
||||
texte: [...k.querySelectorAll(".event-block__text")].map((s) => s.textContent.trim()),
|
||||
marke: k.querySelector(".ev-noch")?.textContent.trim(),
|
||||
spanne: k.querySelector(".ev-spanne")?.textContent.trim(),
|
||||
schilder: [...k.querySelectorAll(".ev-block__schild")].map((s) => s.textContent.trim()),
|
||||
texte: [...k.querySelectorAll(".ev-punkt__text")].map((s) => s.textContent.trim()),
|
||||
};
|
||||
});
|
||||
ok(!!event, "die Event-Karte Sommer-Aktion steht auf der Seite");
|
||||
ok(event?.stand === "laeuft", `sie ist als laufend gekennzeichnet ("${event?.stand}")`);
|
||||
ok(/läuft bis/.test(event?.marke || ""),
|
||||
/* Ein Wort, kein leerer Platzhalter -- und es muss zum Zustand
|
||||
passen: "noch N Tage" bzw. "heute ist der letzte Tag". */
|
||||
ok(/^(noch \d+ Tage?|heute ist der letzte Tag)$/.test(event?.marke || ""),
|
||||
`der Zustand steht als WORT da, nicht nur als Farbe ("${event?.marke}")`);
|
||||
ok(/–/.test(event?.spanne || ""), `und der Zeitraum als Spanne ("${event?.spanne}")`);
|
||||
ok(event?.schilder.join(",") === "Aufgaben,Regeln",
|
||||
`beide Bloecke sind beschriftet (${event?.schilder.join(", ")})`);
|
||||
ok(event?.texte.includes("1 Punkt je Live-Stunde") && event?.texte.includes("Nur eigenes Konto"),
|
||||
"und tragen wirklich ihren Inhalt");
|
||||
`und tragen wirklich ihren Inhalt (${JSON.stringify(event?.texte)})`);
|
||||
|
||||
/* GEGENPROBE dazu: Eine Karte, die KEIN Event ist, darf nichts davon
|
||||
haben. Sonst bewiese der Block oben nur, dass die Elemente
|
||||
existieren -- nicht, dass sie zur richtigen Art gehoeren. */
|
||||
const schulung = await seite.$$eval(".eintrag-karte", (karten) => {
|
||||
const k = karten.find((x) => x.querySelector(".eintrag-titel")?.textContent.trim() === "Test schulung");
|
||||
return k ? { event: k.dataset.event ?? null, bloecke: k.querySelectorAll(".event-block").length } : null;
|
||||
return k ? { event: k.dataset.event ?? null, bloecke: k.querySelectorAll(".ev-block").length } : null;
|
||||
});
|
||||
ok(schulung && !schulung.event && schulung.bloecke === 0,
|
||||
`eine Schulung bekommt weder Zustand noch Event-Bloecke (${JSON.stringify(schulung)})`);
|
||||
|
||||
Reference in New Issue
Block a user