Der Ring oben zeigt Arbeit statt der Uhrzeit

Auf der Startseite von Creator, rechter Hand und Modis ist der Ring das
groesste Element, ganz oben. Er rechnete:

    prozent = (aktuelle Stunde - 6) / 18

...und nannte das "Tag geschafft". Um 9 Uhr also 17 %, um 23 Uhr 94 %
-- unabhaengig davon, ob jemand etwas getan hatte.

Aufgefallen auf einem Bildschirmfoto: Bei einer Modi stand "0 % TAG
GESCHAFFT", waehrend sie ueberhaupt nichts offen hatte. Beide Angaben
waren fuer sich richtig und zusammen Unsinn -- und es war das Erste,
was sie sah.

JETZT ZAEHLT ER ARBEIT. Nenner ist, was heute auf dem Tisch liegt:
heute faellig ODER laenger offen. Die naheliegende Rechnung ueber "nur
heute faellig" waere derselbe Fehler noch einmal gewesen -- bei drei
ueberfaelligen Sachen haette der Ring "nichts faellig" gemeldet.
Zaehler ist, was HEUTE fertig wurde (erledigt_am), nicht was irgendwann
abgehakt wurde. Liegt nichts an: voller Ring, und der Titel sagt es in
Worten statt nur eine 100 zu zeigen.

Gemessen danach, dieselbe Seite: "33 % Heute geschafft", darunter
"2 Sachen sind ueberfaellig -- das zuerst". Die Seite erzaehlt jetzt
eine Geschichte statt zweier.

NEU: pruef-zentrale-ring (10 Pruefungen)
Drei Lagen, drei Menschen: etwas anliegend und teils fertig / nichts
anliegend / drei ueberfaellige und nichts fertig. Dazu zwei
Abgrenzungen (morgen faellig und vorgestern erledigt duerfen nicht
mitzaehlen) und die Gegenprobe: zwischen zwei Abfragen wird eine
Aufgabe fertig gemacht, der Ring MUSS springen -- er tut es, 0 % -> 33 %.
Der letzte Abschnitt rechnet die alte Uhrzeit-Formel mit und meldet,
falls der Ring je wieder auf ihren Wert faellt.

NEU: mess-startseite -- ein Messwerkzeug, kein Pruefwerkzeug
Es sagt nicht richtig/falsch, sondern wie viel da ist: Seitenlaenge in
Handy-Bildschirmen, Bedienelemente, Woerter, Ring, je Rolle, mit
echten Aufgaben statt im leeren Zustand. Gemessener Stand:

    admin 7,0 Schirme / 58 Bedienelemente   hand    5,7 / 43
    modi  5,0 / 37                          manager 4,9 / 38
    scout 4,5 / 34                          creator 4,3 / 32

pruef-sicht, pruef-verborgen, pruef-modi-verborgen und
pruef-haus-trennung laufen unveraendert durch -- die neue Abfrage
folgt der fremden Sicht ueber dieselbe Variable wie der Rest.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-17 02:21:12 +02:00
co-authored by Claude Opus 5
parent 78b64f6eca
commit b57b9cebb5
3 changed files with 441 additions and 3 deletions
+33 -3
View File
@@ -263,11 +263,41 @@ zentraleRouter.get("/workspace/api/zentrale", (req, res) => {
segmente.push({ name: `${p2(s)} Uhr`, rolle: "stunde",
stufe: mitTermin.has(s) ? "dran" : (s < stundeJetzt ? "frei" : "offen") });
}
const durch = Math.min(Math.max(stundeJetzt - VON, 0), BIS - VON);
/* ---------- DIE ZAHL IN DER MITTE (17.09.2026) ----------
HIER STAND DIE UHRZEIT, und sie nannte sich "Tag geschafft":
`(aktuelle Stunde - 6) / 18`. Um 9 Uhr also 17 %, um 23 Uhr
94 % -- unabhaengig davon, ob jemand auch nur eine Sache getan
hatte. Das groesste Element der Startseite, ganz oben, und es
beantwortete die Frage nicht, die es stellte.
Gesehen auf dem Bildschirmfoto eines Modis: "0 % TAG
GESCHAFFT", waehrend sie ueberhaupt nichts offen hatte. Beides
war "richtig" und zusammen war es Unsinn.
JETZT ZAEHLT ES ARBEIT. Nenner ist, was heute auf dem Tisch
liegt: was heute faellig ist ODER laenger offen steht -- denn
ein Ring, der bei drei ueberfaelligen Sachen "nichts faellig"
meldet, waere derselbe Fehler noch einmal. Zaehler ist, was
HEUTE fertig geworden ist (`erledigt_am`), nicht was irgendwann
einmal abgehakt wurde.
Liegt nichts an, sind es 100 % und der Titel sagt es in Worten.
Ein voller Ring ohne Erklaerung waere wieder eine Zahl, bei der
man raten muss. */
const meineAufgaben = d.prepare(
`SELECT status, frist, erledigt_am FROM aufgaben
WHERE verantwortlich_id = ?`).all(zeigt.id);
const nochOffen = (a) => ["offen", "arbeit", "review"].includes(a.status);
const offenDran = meineAufgaben.filter(
(a) => nochOffen(a) && a.frist && String(a.frist) <= heute).length;
const heuteFertig = meineAufgaben.filter(
(a) => String(a.erledigt_am || "").slice(0, 10) === heute).length;
const dran = offenDran + heuteFertig;
return res.json({
art: "tag",
titel: "Tag geschafft",
prozent: Math.round((durch / (BIS - VON)) * 100),
titel: dran ? "Heute geschafft" : "Heute nichts offen",
prozent: dran ? Math.round((heuteFertig / dran) * 100) : 100,
segmente,
zahlen: [
{ wert: meine.length, schild: "heute" },