screen5: Aus dem Treff wird das Rudel, aus der Zentrale die IrrenAnstalt

Filipe, 22.09.2026: "ersetze die zentrale durch, Die IrrenAnstalt.
genau so geschrieben bitte. und alles was treff heißt oder wo treff
steht soll durch Rudel ersetzt werden bitte."

Die Schreibweise "IrrenAnstalt" mit grossem A in der Mitte ist so
gewollt. Das steht als Hinweis daneben, damit sie beim naechsten Mal
niemand "korrigiert".

WAS UMBENANNT WURDE: alles, was jemand LIEST -- Kachelnamen,
Ueberschriften, Markenzeilen, Saetze, Meldungen, Aufgabenvorlagen.
116 Zeilen in 42 Dateien.

WAS BLEIBT: Adressen (treff-regeln.html), Bezeichner (TREFF_ROLLEN),
Datenbankwerte (bereich = 'treff'), Abfrageteile (b=treff). Eine
Adresse umzubenennen bricht jedes Lesezeichen, und ein Datenbankwert
umzuschreiben waere eine Umstellung ohne Gegenwert. Dieselbe
Entscheidung wie heute frueh bei Dogi-Media, wo material.html auch
material.html geblieben ist.

DREI GRAMMATIKFEHLER IM EIGENEN ENTWURF, alle vor dem Ausliefern
gefunden -- ein blindes Ersetzen reicht hier nicht:

1. "der Treff" ist maennlich, "das Rudel" saechlich. Ohne Tabelle
   waere ueberall "Der Rudel" gestanden. (Und "Treffer" waere zu
   "Rudeler" geworden, "Treffen" zu "Rudelen" -- deshalb greift die
   Regel nur bei Wortgrenze und nie vor einem Kleinbuchstaben.)

2. BINDESTRICH-ZUSAMMENSETZUNGEN. In "der Treff-Chat" gehoert der
   Artikel zu "Chat", nicht zu "Treff". Der erste Durchlauf machte
   daraus "das Rudel-Chat", "das Rudel-Kacheln" und "ein Rudel-Raum".
   Jetzt greift die Artikelregel nur, wenn das Wort allein steht.

3. GESCHUETZTE LEERZEICHEN. In den Markenzeilen steht
   `Der Treff`, damit die zwei Woerter nicht umbrechen. Das
   Muster hat daran vorbeigegriffen: "Der Rudel", auf fuenf
   Seiten. Jetzt wird das Trennzeichen mitgefasst und unveraendert
   wieder eingesetzt.

Gefunden wurden alle drei, weil jede einzelne der 116 Zeilen vor dem
Schreiben als ALT/NEU ausgegeben und gelesen wurde -- und danach
gezielt nach falschen Artikeln gesucht ("den Rudel", "der Rudel",
"einen Rudel"). Uebrig blieben sechs Treffer, und die sind alle
richtig: "einen Rudel-Raum", "der Rudel-Chat", "den Rudel-Regeln" --
Zusammensetzungen, bei denen der Artikel zum letzten Wort gehoert.

UND ZWEI PRUEFUNGEN, die die Umbenennung nicht mitbekommen haetten:
`/Treff/.test(...)` und `/Treff/i.test(...)`. Ein regulaerer Ausdruck
ist keine Zeichenkette -- sie haetten ab sofort nach einem Wort
gesucht, das die Seite nicht mehr sagt, und waeren still rot geworden,
ohne dass etwas kaputt ist.

Geprueft, alle gruen: pruef-treff, pruef-treffchat,
pruef-deutsche-texte, pruef-uebernahme, pruef-crew-adresse,
pruef-willkommen, pruef-wege-nach-draussen, pruef-vorlagen,
pruef-start-ansicht, pruef-struktur.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-22 14:25:56 +02:00
co-authored by Claude Opus 5
parent 091c5f9cd9
commit 25de892fdb
74 changed files with 708 additions and 696 deletions
+5 -5
View File
@@ -98,7 +98,7 @@ let idDogi, idLuna, idIdee, idTreff, idIdeeHoch;
jetzt.slice(0, 10), "hoch", null, jetzt, idDogi);
idIdeeHoch = d.prepare("SELECT last_insert_rowid() AS id").get().id;
d.prepare(`INSERT INTO eintraege (bereich, art, titel, text, datum, erstellt, erstellt_von)
VALUES ('treff','hallo','Beitrag aus dem Treff','Hallo zusammen',?,?,?)`)
VALUES ('treff','hallo','Beitrag aus dem Rudel','Hallo zusammen',?,?,?)`)
.run(jetzt.slice(0, 10), jetzt, idDogi);
idTreff = d.prepare("SELECT last_insert_rowid() AS id").get().id;
d.close();
@@ -144,7 +144,7 @@ melde("=== 1. Aus welchen Brettern ===");
/* DIE TREFF-BRETTER STEHEN NICHT DRIN, und das ist der Punkt. */
const treffBretter = TREFF_BRETTER.filter((b) => echte.includes(b));
ok(treffBretter.length > 0, `${treffBretter.length} Bretter gehören dem Treff`);
ok(treffBretter.length > 0, `${treffBretter.length} Bretter gehören dem Rudel`);
const drin = treffBretter.filter((b) => modul.AUS_BRETTERN.includes(b));
ok(drin.length === 0,
drin.length ? `TREFF-BRETT DABEI: ${drin.join(", ")}`
@@ -210,11 +210,11 @@ melde("=== 3. Genau einmal ===");
4. NICHT AUS JEDEM BRETT
======================================================================= */
melde("");
melde("=== 4. Nicht aus dem Treff ===");
melde("=== 4. Nicht aus dem Rudel ===");
{
const a = await ruf(`/workspace/api/eintrag/${idTreff}/zur-aufgabe`, HAUS, "POST",
{ cookie: kDogi }, {});
ok(a.code === 400, `aus einem Treff-Beitrag wird keine Aufgabe (${a.code})`);
ok(a.code === 400, `aus einem Rudel-Beitrag wird keine Aufgabe (${a.code})`);
ok(/keine Aufgabe/.test(json(a).fehler || ""), `und die Absage sagt warum (${json(a).fehler})`);
const d = oeffne();
@@ -267,7 +267,7 @@ melde("=== 6. Die Liste am Brett ===");
/* GEGENPROBE: Ein Treff-Brett sagt „nicht moeglich" -- daran
entscheidet die Oberflaeche, ob der Knopf ueberhaupt hingehoert. */
const treff = json(await ruf("/workspace/api/bereich/treff/uebernahmen", HAUS, "GET", { cookie: kDogi }));
ok(treff.moeglich === false, "ein Treff-Brett kennt keine");
ok(treff.moeglich === false, "ein Rudel-Brett kennt keine");
ok(Object.keys(treff.uebernahmen || {}).length === 0, "und liefert auch keine");
}