odoo-timesheets/tests
Jef Roosens f372a691d4
feat(status): add status subcommand with day and week metrics
- Add status.py with compute_day_status() and compute_week_status()
- Add projected_hours_for_day(): for each entry, use its duration if
  closed, or the next entry's start time as the close time if open
- Open entries (start present, end absent) are preserved by the parser
  instead of being skipped; aggregate_rows() skips them for summaries
- Expected end is computed by filling remaining hours into available
  time slots from the open entry's start; clamped to latest_end if a
  pre-logged entry ends later, with a note explaining why
- Projected week total sums projected_hours_for_day() across all days
- Add status subcommand to cli.py with shared source/day arguments
- Add [work] daily_hours / weekly_hours config keys (default 8 / 40)
- Add timesheets.example.toml [work] section
- Add tests for projected_hours_for_day, compute_day_status,
  compute_week_status and all DayStatus/WeekStatus fields
2026-06-02 09:31:08 +02:00
..
2026 - W21.md feat(parser): support multiple tables in a single markdown document 2026-06-02 09:31:02 +02:00
__init__.py feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00
test_config.py feat(config): add TOML config file support 2026-06-02 09:31:04 +02:00
test_joplin.py feat(joplin): add --joplin flag to fetch weekly timesheet note from Joplin 2026-06-02 09:31:02 +02:00
test_output.py feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00
test_parser.py feat(status): add status subcommand with day and week metrics 2026-06-02 09:31:08 +02:00
test_projects.py feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00
test_status.py feat(status): add status subcommand with day and week metrics 2026-06-02 09:31:08 +02:00
test_utils.py feat(cli): add natural language date parsing via dateparser 2026-06-02 09:31:05 +02:00