tocmo0nlord a6f8d31316 Step 4: deadline engine (per-proceeding clocks, weekend roll, overdue cron, calendar mirror)
familylaw.deadline — a procedural clock attached to a PROCEEDING:
- Deterministic due_date: trigger_date + days, with Rule-2.514-style weekend
  roll-forward (_roll_forward); _holiday_dates() hook left empty by design
  (holidays are jurisdiction/year-specific — content-maintenance concern)
- STANDARD_OFFSETS (answer 20 / disclosure 45 / discovery 30 / objection 10) as
  defaults; per-record `days` override. Flagged "verify current rule".
- state pending/done/waived/overdue; is_overdue computed + searchable
- _cron_flag_overdue daily ir.cron flips pending+past -> overdue, audited
- calendar.event mirror auto-created/updated on date changes (allday)
- proceeding.deadline_ids + action_seed_standard_deadlines (idempotent)

Adds 'calendar' dependency, data/familylaw_cron.xml, deadline views + menu,
Deadlines tab + Seed button on proceeding form, security rules.

Tests (familylaw_step4): 20 tests with FIXED dates — 20/45/30-day math, weekend
roll (Sat/Sun -> Mon), type-default vs explicit days, overdue detect, cron flag,
is_overdue search, calendar mirror create+update, per-proceeding isolation,
idempotent seeding.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 04:02:20 +00:00
Description
No description provided
3.2 MiB
Languages
Python 100%