Feat #2: Wochenrückblick #5

Merged
florian.wilde merged 1 commits from feat/2-wochenrueckblick into main 2026-08-17 23:27:20 +00:00
Owner

Eine Seite /rueckblick, die aus dem vorhandenen Aktivitätsverlauf zusammenfasst, was in einer Woche über alle Projekte hinweg passiert ist.

Was drin ist

  • Kennzahlen der Woche: Vorgänge, berührte Projekte, erledigte Aufgaben, neue Aufgaben, dazu die Zahl neuer Notizen.
  • Vorgänge nach Kalendertagen gebündelt, neuester Tag zuerst; jede Zeile nennt und verlinkt ihr Projekt.
  • Blättern in frühere Wochen über ?woche=-n, gedeckelt auf 25 Wochen — der Verlauf hält ohnehin nur 200 Einträge je Projekt.
  • Erreichbar über die Schnellsuche und einen Verweis vom Dashboard. Bewusst kein vierter Punkt in der Kopfleiste, die ist auf dem Telefon schon eng.

Zwei Dinge, die sonst still falsch werden

Wochengrenzen stehen als prüfbare Funktion in lib/review, nicht in der Seite. Gerechnet wird über Berliner Kalendertage, nicht über „sieben mal 24 Stunden": liegt eine Zeitumstellung in der Woche, hat sie 167 oder 169 Stunden. Und im Container läuft die Anwendung nach UTC — ein Eintrag von Sonntagabend fiele sonst in die falsche Woche.

„Aufgaben erledigt" wird am meta-Feld abgelesen (to: "DONE") und nicht am Anzeigetext. Der Text ist zum Lesen da und ändert sich mit der Formulierung; eine Zählung daran würde beim nächsten umformulierten Einzeiler unbemerkt kippen. Einträge ohne meta zählen nicht mit — lieber untertreiben als raten.

Nebenbei

  • completeTaskFromIssue schreibt jetzt ebenfalls from/to ins meta, wie es das Verschieben von Hand schon tut — sonst fehlte über Git geschlossenen Aufgaben die Grundlage für die Zählung.
  • Die Zuordnung Symbol/Farbe je Eintragsart lag in ActivityFeed und wird jetzt von zwei Stellen gebraucht → herausgezogen nach components/activityKinds.

Geprüft

  • 20 neue Unit-Tests: Wochengrenzen inklusive beider Zeitumstellungen, Monats- und Jahreswechsel, Sonntagabend-Grenzfall, Zählung
  • E2E-Test über Aufruf, Blättern und Schnellsuche
  • axe-core auf 375 px und 1280 px über drei Zustände (diese Woche, vorige Woche, leere Woche): 0 Verstöße, kein seitlicher Überlauf
  • Zählung zusätzlich gegen die laufende Anwendung geprüft: 1 bzw. 3 erledigte Aufgaben, passend zu den Testdaten

Closes #2

Eine Seite `/rueckblick`, die aus dem vorhandenen Aktivitätsverlauf zusammenfasst, was in einer Woche über **alle** Projekte hinweg passiert ist. ## Was drin ist - **Kennzahlen** der Woche: Vorgänge, berührte Projekte, erledigte Aufgaben, neue Aufgaben, dazu die Zahl neuer Notizen. - **Vorgänge nach Kalendertagen** gebündelt, neuester Tag zuerst; jede Zeile nennt und verlinkt ihr Projekt. - **Blättern** in frühere Wochen über `?woche=-n`, gedeckelt auf 25 Wochen — der Verlauf hält ohnehin nur 200 Einträge je Projekt. - Erreichbar über die **Schnellsuche** und einen Verweis vom Dashboard. Bewusst **kein** vierter Punkt in der Kopfleiste, die ist auf dem Telefon schon eng. ## Zwei Dinge, die sonst still falsch werden **Wochengrenzen** stehen als prüfbare Funktion in `lib/review`, nicht in der Seite. Gerechnet wird über Berliner Kalendertage, nicht über „sieben mal 24 Stunden": liegt eine Zeitumstellung in der Woche, hat sie 167 oder 169 Stunden. Und im Container läuft die Anwendung nach UTC — ein Eintrag von Sonntagabend fiele sonst in die falsche Woche. **„Aufgaben erledigt"** wird am `meta`-Feld abgelesen (`to: "DONE"`) und nicht am Anzeigetext. Der Text ist zum Lesen da und ändert sich mit der Formulierung; eine Zählung daran würde beim nächsten umformulierten Einzeiler unbemerkt kippen. Einträge ohne `meta` zählen nicht mit — lieber untertreiben als raten. ## Nebenbei - `completeTaskFromIssue` schreibt jetzt ebenfalls `from`/`to` ins `meta`, wie es das Verschieben von Hand schon tut — sonst fehlte über Git geschlossenen Aufgaben die Grundlage für die Zählung. - Die Zuordnung Symbol/Farbe je Eintragsart lag in `ActivityFeed` und wird jetzt von zwei Stellen gebraucht → herausgezogen nach `components/activityKinds`. ## Geprüft - 20 neue Unit-Tests: Wochengrenzen inklusive **beider** Zeitumstellungen, Monats- und Jahreswechsel, Sonntagabend-Grenzfall, Zählung - E2E-Test über Aufruf, Blättern und Schnellsuche - axe-core auf 375 px und 1280 px über drei Zustände (diese Woche, vorige Woche, leere Woche): **0 Verstöße**, kein seitlicher Überlauf - Zählung zusätzlich gegen die laufende Anwendung geprüft: 1 bzw. 3 erledigte Aufgaben, passend zu den Testdaten Closes #2
florian.wilde added 1 commit 2026-08-17 22:55:53 +00:00
Wochenrueckblick ueber alle Projekte
CI / pruefen (pull_request) Canceled after 0s
52f2d0ce8e
Eine Seite, die aus dem vorhandenen Aktivitaetsverlauf zusammenfasst, was in
einer Woche ueber alle Projekte hinweg passiert ist: Kennzahlen oben, darunter
die Vorgaenge nach Kalendertagen gebuendelt, neuester Tag zuerst. Blaettern in
frueher Wochen ueber ?woche=-n.

Der Verlauf kennt keinen Besitzer - die Trennung laeuft ueber das Projekt,
"project: { ownerId }" steht als erste Bedingung.

Zwei Dinge, die sonst still falsch werden:

- **Wochengrenzen** stehen als pruefbare Funktion in lib/review, nicht in der
  Seite. Gerechnet wird ueber Berliner Kalendertage, nicht ueber "sieben mal
  24 Stunden": liegt eine Zeitumstellung in der Woche, hat sie 167 oder 169
  Stunden. Und im Container laeuft die Anwendung nach UTC, ein Eintrag von
  Sonntagabend fiele sonst in die falsche Woche.
- **"Aufgaben erledigt"** wird am meta-Feld abgelesen (to: "DONE") und nicht
  am Anzeigetext. Der Text ist zum Lesen da und aendert sich mit der
  Formulierung; eine Zaehlung daran wuerde beim naechsten umformulierten
  Einzeiler unbemerkt kippen. Eintraege ohne meta zaehlen nicht mit - lieber
  untertreiben als raten.

Damit completeTaskFromIssue dieselbe Grundlage liefert, schreibt es jetzt
ebenfalls from/to ins meta, wie es das Verschieben von Hand schon tut.

Die Zuordnung Symbol/Farbe je Eintragsart lag bisher in ActivityFeed und wird
jetzt von zwei Stellen gebraucht - herausgezogen nach components/activityKinds,
sonst laufen die Kopien beim naechsten neuen Eintragstyp auseinander.

Erreichbar ueber die Schnellsuche und einen Verweis vom Dashboard. Bewusst
kein vierter Punkt in der Kopfleiste - die ist auf dem Telefon schon eng.

Geprueft: 20 neue Unit-Tests (Wochengrenzen inklusive beider Zeitumstellungen,
Jahreswechsel, Zaehlung), ein E2E-Test ueber Aufruf und Blaettern, axe-core auf
375px und 1280px ueber drei Zustaende - auch die leere Woche - ohne
Beanstandung, kein seitlicher Ueberlauf.

Refs #2
florian.wilde merged commit 5713facc75 into main 2026-08-17 23:27:20 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/nebula#5