Production already has a DIFFERENT, earlier module installed as `activeblue_familylaw`
(models fl.*, real data). Renamed this build's technical name to
`activeblue_familylaw_v2` so it installs ALONGSIDE the legacy app instead of replacing
it. Models (familylaw.*) and test tags (familylaw_step<N>) are unchanged — only the
module name and its group XML IDs change.
Changes:
- Folder activeblue_familylaw -> activeblue_familylaw_v2 (git mv)
- All 44 dotted refs activeblue_familylaw. -> activeblue_familylaw_v2.
(security group XML IDs in views/python; test patch targets odoo.addons.*)
- Manifest display name -> "Active Blue Family Law v2"; root menu -> "Family Law (v2)"
- scripts/validate_module.py ROOT path; BUILD_STATUS.md run commands + coexistence
note; START_HERE.md pointer
Verified in live Odoo 18:
- Fresh install + full suite: 200 tests, 0 failed, 0 errors.
- COEXISTENCE on a clone of prod db1: installing _v2 alongside the installed legacy
activeblue_familylaw left the legacy untouched (still installed 18.0.1.0.0, fl.*
models registered, fl_caselaw 25 rows intact) while adding the 30 familylaw.* models.
Exit 0, no errors. Clone dropped; prod DBs untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ran the full familylaw suite in a one-off odoo:18.0 container against an isolated
throwaway DB. Fixes found and applied:
- All mail.thread-only models also inherit mail.activity.mixin — their form chatters
reference activity_ids (install-time ParseError on familylaw.deadline et al.).
- familylaw.archive.is_destruction_eligible: added a `search` method (non-stored
computed boolean used in a search-view filter domain was unsearchable).
- familylaw.archive.action_destroy: sudo() the ir.attachment unlink (attorney isn't
the attachment owner -> AccessError on destroy).
- test_step2 test_10: use relativedelta(years=8) not 365*8 days (leap-year drift made
age compute to 7; the age code is correct).
- familylaw.ai.generate failure path: keep best-effort failed-state write but document
that it rolls back with the failing txn; the real guarantee is error PROPAGATION.
test_step6 test_07 rewritten to assert the provider error propagates (never silently
swallowed) rather than asserting non-durable persistence.
BUILD_STATUS.md updated: tests now verified green in live Odoo.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>