odoo-timesheets/tests
Jef Roosens de46399010
Add ~ marker to exclude entries from CSV export
Prefix the project name or note column with ~ to mark an entry as
count-but-don't-export. Marked entries are included in summary and
status totals but omitted from all csv output (both --raw and
aggregated, single-day and weekly).

  | 09:00 | 17:00 | 8:00 | ~Leave |  | Day off  |
  | 09:00 | 17:00 | 8:00 |  Leave |  | ~Day off |

The ~ is stripped from whichever field carries it before any
downstream processing, so project map resolution is unaffected.

Implementation:
- parse_table sets skip_csv=True on marked rows and strips the ~
- new filter_skip_csv() helper in parser.py
- to_csv_entries() skips skip_csv rows
- _cmd_csv calls filter_skip_csv() before aggregate_rows()
2026-06-02 09:31:16 +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 Add date_format config key for csv command 2026-06-02 09:31:15 +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 Add ~ marker to exclude entries from CSV export 2026-06-02 09:31:16 +02:00
test_parser.py Add ~ marker to exclude entries from CSV export 2026-06-02 09:31:16 +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