3bed76aea452705a25482398c939e816f50e1379
Extends the existing timelog (used by S1/S2 battle tests) with: - state: running / paused / stopped / reconciled (default running) - last_paused_at + total_paused_seconds (drives accrued compute) - accrued_seconds (compute, depends date_started/_finished/paused) - billed_hrs/min/sec + billed_total_seconds + billed_pct (compute) - product_id (split-by-product reconciliation per screen 10) - notes - job_id (related, indexed — for fp.job.active_timer_ids O2M) Field naming follows the existing date_started / date_finished convention (NOT started_at / stopped_at as my plan said — adjusted inline to match what's already in the file). The existing battle tests use the timelog without state — default 'running' so they're unaffected. State only flips when Sub 12b's Stop Timer dialog commits. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Odoo 19 custom modules
Languages
Python
55.9%
HTML
26.1%
JavaScript
14.9%
SCSS
1.8%
CSS
0.8%
Other
0.4%