Phase 6: portal, website intake, calculator, and case law library

- controllers/portal.py: FamilyLawPortal with 8 routes (cases list,
  case detail, calculator pre-fill, caselaw library, deadline complete
  AJAX, public intake landing/form/submit)
- views/portal_case_templates.xml: portal home card, case list, full
  case detail with timeline widget, AI summary, DV safety banner
- views/portal_calculator_templates.xml: FL 61.30 interactive calculator
- views/portal_caselaw_templates.xml: searchable case law library (EN/ES)
- views/website_intake_templates.xml: public 4-step intake form with DV
  quick-exit, fee waiver, and intake confirmation page
- static/src/css/familylaw_portal.css: full portal/website CSS (EN/ES
  lang toggle, deadline card color coding, timeline, AI summary box)
- static/src/js/fl_calculator.js: FL 61.30 schedule lookup, above-
  schedule formula, FL 61.30(11)(b) substantial timesharing calculation
- static/src/js/fl_timeline.js: deadline timeline widget with filter
  buttons and mark-complete AJAX
- __init__.py: import controllers package
- __manifest__.py: add Phase 6 portal view files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Carlos Garcia
2026-05-06 23:42:37 -05:00
parent 7ce691a394
commit 6dc2144db7
11 changed files with 2456 additions and 32 deletions

View File

@@ -65,6 +65,11 @@
'report/report_mandatory_disclosure.xml',
'report/report_default_motion.xml',
'report/report_parenting_plan.xml',
# Phase 6 — Portal & Website Templates
'views/portal_case_templates.xml',
'views/portal_calculator_templates.xml',
'views/portal_caselaw_templates.xml',
'views/website_intake_templates.xml',
],
'assets': {
'web.assets_frontend': [