Python program to automate exporting my Markdown timesheets to Odoo
Find a file
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
src/timesheets feat(status): add status subcommand with day and week metrics 2026-06-02 09:31:08 +02:00
tests feat(status): add status subcommand with day and week metrics 2026-06-02 09:31:08 +02:00
.coverage feat(cli): add natural language date parsing via dateparser 2026-06-02 09:31:05 +02:00
.gitignore feat(summary): add --weekly/-w and --short/-s flags 2026-06-02 09:31:07 +02:00
.python-version feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00
AGENTS.md refactor(cli): split into summary and csv subcommands 2026-06-02 09:31:06 +02:00
project_map.json feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00
pyproject.toml feat(cli): add natural language date parsing via dateparser 2026-06-02 09:31:05 +02:00
README.md feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00
timesheets.example.toml feat(status): add status subcommand with day and week metrics 2026-06-02 09:31:08 +02:00
uv.lock feat(cli): add natural language date parsing via dateparser 2026-06-02 09:31:05 +02:00