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:
@@ -5940,6 +5940,57 @@ export function db() {
|
||||
geaendert TEXT
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_eintraege_bereich ON eintraege (bereich, creator_id);
|
||||
|
||||
/* =================================================================
|
||||
WER HAT WELCHEN PUNKT EINES EVENTS GESCHAFFT? (03.10.2026)
|
||||
|
||||
Filipe: „ich will das viel geiler viel perfekter."
|
||||
|
||||
Ein Agentur-Event ist ein Wettbewerb mit Bedingungen -- „jeden
|
||||
Tag live", „22 Live-Stunden", „33k Diamanten". Bis heute stand
|
||||
das als Fliesstext auf der Karte, und jede Creatorin musste
|
||||
sich selbst merken, wo sie steht. Genau daran stirbt eine
|
||||
Aktion: nicht am Aufruf, sondern daran, dass niemand seinen
|
||||
eigenen Stand sieht.
|
||||
|
||||
EINE ZEILE IST EIN HAKEN -- eine Person, ein Punkt. Kein Feld
|
||||
am Eintrag mit einer Liste darin: „jeder fuer sich" heisst,
|
||||
dass zwanzig Personen am SELBEN Event verschiedene Haken
|
||||
haben. Dieselbe Ueberlegung steht schon bei termin_wecker.
|
||||
|
||||
WARUM EIN SCHLUESSEL AUS DEM TEXT UND KEINE ZEILENNUMMER:
|
||||
Die Aufgaben stehen als Text in der Spalte
|
||||
event_aufgaben;
|
||||
DogFather kann sie jederzeit umschreiben. Haengt der Haken an
|
||||
„Zeile 2", wandert er beim Einfuegen einer Zeile darueber
|
||||
stillschweigend auf eine andere Aufgabe -- und jemand hat
|
||||
plotzlich etwas abgehakt, was er nie gemacht hat. Das ist der
|
||||
schlimmere Ausgang, weil es niemandem auffaellt.
|
||||
|
||||
Haengt er dagegen am TEXT der Zeile, gilt: Zeilen umsortieren
|
||||
oder daruebersetzen aendert nichts; wird die Aufgabe selbst
|
||||
umgeschrieben, faellt ihr Haken weg. Letzteres ist richtig --
|
||||
eine geaenderte Bedingung ist eine andere Bedingung, und ein
|
||||
Haken daran waere eine Falschauskunft.
|
||||
|
||||
Der Schluessel wird in workspace-bereiche.js gebildet
|
||||
(punktSchluessel); hier steht er nur als Text. Eine zweite
|
||||
Rechenvorschrift in der Datenbank waere die, die auslaeuft.
|
||||
|
||||
ON DELETE CASCADE an beiden Seiten: Ein Haken ohne Event ist
|
||||
nichts, und einer ohne Person auch nicht. */
|
||||
CREATE TABLE IF NOT EXISTS event_punkte (
|
||||
eintrag_id INTEGER NOT NULL REFERENCES eintraege(id) ON DELETE CASCADE,
|
||||
person_id INTEGER NOT NULL REFERENCES personen(id) ON DELETE CASCADE,
|
||||
punkt TEXT NOT NULL,
|
||||
gesetzt TEXT NOT NULL,
|
||||
PRIMARY KEY (eintrag_id, person_id, punkt)
|
||||
);
|
||||
/* Fuer „wie weit ist mein Team?" -- die Abfrage geht ueber das
|
||||
Event, nicht ueber die Person. */
|
||||
CREATE INDEX IF NOT EXISTS idx_event_punkte_eintrag
|
||||
ON event_punkte (eintrag_id);
|
||||
|
||||
/* Die Tabellen des Rudels folgen weiter unten, gleich nachdem
|
||||
dieser Bauplan durch ist -- sie haengen an eintraege und
|
||||
personen und koennen deshalb nicht davor stehen. Ihr SQL steht
|
||||
|
||||
Reference in New Issue
Block a user