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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user