Python program to automate exporting my Markdown timesheets to Odoo
Find a file
Jef Roosens 2d60624e0e
feat(stories): add stories subcommand
- Add stories subcommand listing stories worked on, grouped by project
- Preserve story_raw in parser row dicts alongside the stripped story,
  so markdown links are available for display
- print_stories() filters to rows with a non-empty story field,
  deduplicates by stripped story text (preferring the linked version),
  sums hours per story, and outputs an indented Markdown list
- Project names resolved through project_map (same as csv/summary)
- -w/--weekly flag aggregates stories across the full week
- Add tests for print_stories covering deduplication, link preservation,
  grouping, empty rows, and story-less row exclusion
- Fix flex daily target in status: use projected hours per prior day
  rather than fixed 8h when computing remaining hours for today
2026-06-02 09:31:09 +02:00
src/timesheets feat(stories): add stories subcommand 2026-06-02 09:31:09 +02:00
tests feat(stories): add stories subcommand 2026-06-02 09:31:09 +02:00
.coverage feat(stories): add stories subcommand 2026-06-02 09:31:09 +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