Commit graph

3 commits

Author SHA1 Message Date
8b6f0b24e2
Add date_format config key for csv command
- Add get_date_format() to config.py: reads [csv] date_format, returns
  None when absent (falls back to the default %d/%m/%y)
- _cmd_csv applies the format to both single-day and weekly date strings
- Add 3 tests for get_date_format in TestGetters
- Update timesheets.example.toml and README with [csv] date_format key
2026-06-02 09:31:15 +02:00
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
29698b1241
feat(config): add TOML config file support
- Add config.py with load_config(), find_default_config(), get_token(),
  and get_map_path()
- Auto-discover timesheets.toml in cwd; override with --config flag
- Priority: CLI flag > config file > env var / cwd default
- Add timesheets.example.toml as a committed reference template
- Add timesheets.toml to .gitignore to prevent accidental secret leakage
- Document config file format in AGENTS.md
2026-06-02 09:31:04 +02:00