redz1029 2585cce36d feat(programmer): sheet-driven stats, monitor status, drill-down history
- Wire daySheetsForUserProvider(userId) into ProgrammerDashboard so
  computeProgrammerStats/computeBadges receive real sheet data instead of
  the placeholder const <ProgrammerDaySheet>[].
- Monitor tab: watch allDaySheetsProvider and build sheetStatusByUser map
  for today; pass it to buildMonitorEntries; add "Sheets pending" chip
  (pending + disapproved today) to the summary row.
- ProgrammerDrillDownScreen: add _RecentDaySheetsPanel below the dashboard
  showing the last 10 sheets (date + status pill) with tap-to-daySheetDetail.
- DaySheetDetailScreen (T17 gaps): replace const [] liveRows with
  programmerDayDataProvider(sheet.workDate) built rows for non-approved
  sheets; fix _onApprove timer check to filter only the sheet programmer's
  own tasks (QN-1).
- Add test/programmer_drill_down_test.dart (3 tests, all passing).

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-09-28 18:29:28 +08:00
2026-05-03 15:00:35 +08:00
2026-04-27 06:20:39 +08:00
2026-04-09 19:01:53 +08:00
2026-04-09 19:01:53 +08:00
2026-04-09 19:01:53 +08:00
2026-04-27 06:20:39 +08:00
2026-04-09 19:01:53 +08:00
2026-02-09 20:10:42 +08:00
2026-04-09 19:01:53 +08:00
2026-04-09 19:01:53 +08:00
2026-04-27 06:20:39 +08:00
2026-04-09 19:01:53 +08:00
2026-04-09 19:01:53 +08:00
2026-04-09 19:01:53 +08:00
2026-02-09 20:10:42 +08:00
2026-04-09 19:01:53 +08:00
2026-04-09 19:01:53 +08:00
S
Description
No description provided
Readme 275 MiB
Languages
Dart 80.1%
JavaScript 5.8%
PLpgSQL 5.5%
Shell 3.4%
HTML 3%
Other 1.9%