odoo-timesheets/tests
Jef Roosens 9f0a6e2027
feat(parser): resolve overlapping timesheet entries
Parallel work is logged as overlapping entries. resolve_overlaps()
splits the shared time equally using the midpoint of the overlap region:

- Partial overlap: the midpoint becomes the boundary between the two
  entries (earlier entry trimmed, later entry delayed).
- Full containment: the containing entry is split into two pieces
  surrounding the contained one, with the midpoint rule applied to
  the overlap region.

Open entries (no end time) are passed through unchanged.

resolve_overlaps() is called automatically in filter_rows_by_date,
filter_week_sections, and the --input single-day path in cli.py, so
all subcommands benefit without further changes.
2026-06-02 09:31:11 +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(stories): add stories subcommand 2026-06-02 09:31:09 +02:00
test_parser.py feat(parser): resolve overlapping timesheet entries 2026-06-02 09:31:11 +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