odoo-timesheets/tests
Jef Roosens ecdd28e8a3
feat(joplin): add --joplin flag to fetch weekly timesheet note from Joplin
- Add joplin.py with fetch_week_note() that walks Work > Timesheets > YYYY
  and returns the body of the matching YYYY-WNN note via joppy ClientApi
- Add filter_rows_by_date() to parser.py to extract only rows belonging
  to a specific day based on '# ... YYYY-MM-DD' headings in the document
- Update cli.py: input and --joplin are now a mutually exclusive required
  group; add --token flag with JOPLIN_TOKEN env var fallback; --date is
  parsed into a real date object used for both output and day filtering
- Add joppy as a runtime dependency (lazy-imported in cli.py)
- Add tests for filter_rows_by_date and full mocked coverage of joplin.py
- Update AGENTS.md with Joplin usage, notebook structure, and test rules

The actual Joplin structure has notes directly inside the year notebook
(Work > Timesheets > YYYY), not in per-week sub-notebooks as initially
assumed. fetch_week_note() reflects this flat structure.
2026-06-02 09:31:02 +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_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(joplin): add --joplin flag to fetch weekly timesheet note from Joplin 2026-06-02 09:31:02 +02:00
test_projects.py feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00
test_utils.py feat: set up modularized version of project with testing 2026-06-02 09:31:01 +02:00