Zentrale: "0 betreut" war fuer die Community dieselbe tote Zahl

Im Code stand die Loesung schon -- fuer jemand anderen. Am 10.09.2026
wurde dort vermerkt:

  "BETREUT" IST FUER EINEN MODI IMMER NULL. Er betreut keine Creator.
  Auf seiner Startseite stand deshalb dauerhaft "0 betreut": eine
  Zahl, die nie etwas anderes sagen kann, und damit schlimmer als
  keine. Wer sie sieht, sucht nach dem Fehler.

Fuer ein Mitglied der Community gilt das erst recht -- und dort blieb
es stehen. Dieselbe Zahl, derselbe Grund, dieselbe Wirkung.

Jetzt steht dort, was die Community wirklich betrifft: WUENSCHE OFFEN.
Der Ort, an dem sie mitentscheidet, was als Naechstes passiert -- eine
Zahl, die zum Hingehen einlaedt, statt eine, die nichts sagt.

WORAN DIE ENTSCHEIDUNG HAENGT: `freigabeBedingung` gibt nur fuer Leute
von aussen eine SQL-Bedingung zurueck, sonst null. Damit ist die Frage
"ist das jemand aus der Community" schon beantwortet, ohne dass hier
ein Rollenname steht -- und dieselbe Bedingung sorgt dafuer, dass nur
gezaehlt wird, was diese Person auch sehen darf.

GEMESSEN, beide Seiten:
  Community : "4 Wuensche offen"
  DogFather : "2 im Team" (unveraendert)
pruef-zentrale-ring: 14 Pruefungen, 0 Fehler.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-18 21:44:27 +02:00
co-authored by Claude Opus 5
parent 4f5ac04bc9
commit c2a8c5f15f
2 changed files with 61 additions and 6 deletions
+38 -6
View File
@@ -52,6 +52,7 @@
import express from "express";
import { db, sitzungLesen, istLeitung, betreuteIds, scoutsVon, verborgeneIds, hausBedingung,
TEAM_DOGI_ROLLEN } from "./workspace.js";
import { freigabeBedingung } from "./workspace-treff.js";
export const zentraleRouter = express.Router();
@@ -332,12 +333,43 @@ zentraleRouter.get("/workspace/api/zentrale", (req, res) => {
die Zahl, die an dieser Stelle etwas bedeutet -- und sie
bekommt nur zu sehen, wer ohnehin weiss, dass es die Runde
gibt. */
TEAM_DOGI_ROLLEN.has(zeigt.rolle)
? { wert: db().prepare(
`SELECT COUNT(*) AS n FROM personen WHERE rolle IN (${
[...TEAM_DOGI_ROLLEN].map((r) => `'${r}'`).join(", ")}) AND aktiv = 1`).get().n,
schild: "im Team" }
: { wert: betreuteIds(zeigt).length, schild: "betreut" },
/* UND FUER DIE COMMUNITY GILT DASSELBE (18.09.2026).
Der Absatz darueber loest dieses Problem seit dem 10.09. fuer
einen Modi -- fuer ein Mitglied der Community blieb es
stehen. Es betreut erst recht niemanden; auf seiner
Startseite stand dauerhaft „0 betreut", aus genau demselben
Grund und mit genau derselben Wirkung: Wer eine Zahl sieht,
die sich nie aendert, sucht den Fehler bei sich.
Stattdessen die Zahl, bei der es MITREDEN kann: offene
Wuensche. Dort entscheidet die Community mit, was als
Naechstes passiert -- eine Zahl, die zum Hingehen einlaedt,
statt eine, die nichts sagt.
WORAN ERKANNT: `freigabeBedingung` gibt nur fuer Leute von
aussen eine Bedingung zurueck, sonst null. Damit steht die
Frage „ist das jemand aus der Community" schon beantwortet,
ohne dass hier ein Rollenname steht -- und die Bedingung
sorgt zugleich dafuer, dass nur gezaehlt wird, was diese
Person auch sehen darf. Zwei Fliegen, eine Zeile. */
(() => {
if (TEAM_DOGI_ROLLEN.has(zeigt.rolle)) {
return { wert: db().prepare(
`SELECT COUNT(*) AS n FROM personen WHERE rolle IN (${
[...TEAM_DOGI_ROLLEN].map((r) => `'${r}'`).join(", ")}) AND aktiv = 1`).get().n,
schild: "im Team" };
}
const bed = freigabeBedingung(zeigt, "e");
if (bed) {
const n = db().prepare(
`SELECT COUNT(*) AS n FROM eintraege e
WHERE e.bereich = 'wunsch' AND e.status = 'offen' AND ${bed.wo}`)
.get(...bed.werte).n;
return { wert: n, schild: "Wünsche offen" };
}
return { wert: betreuteIds(zeigt).length, schild: "betreut" };
})(),
],
});
} catch (fehler) {