Files
famlaw/activeblue_familylaw/__manifest__.py
tocmo0nlord 49358183e7 Add self-hosted e-signature workflow (canvas pad + PyMuPDF embedding)
- fl.signature.request: token-protected request linking an fl.document to a
  signer (res.partner). State machine: draft → prepared → sent → signed |
  declined | expired. Per-report _SIGNATURE_COORDS map plus DOC_TYPE_TO_REPORT
  for resolving the QWeb report template and the signature block rectangle
- action_prepare renders the QWeb PDF and stores it; action_send_to_signer
  emails a one-time link /familylaw/sign/<token> (256-bit token, 14-day expiry,
  hourly cron sweeps stale links)
- apply_signature decodes the canvas-pad PNG, embeds it at the page-relative
  rectangle via PyMuPDF, attaches the signed PDF to the fl.document, marks
  the document signed, and audits the signer IP + timestamp
- Public portal controller (/familylaw/sign/<token>): GET shows the unsigned
  PDF in an iframe + inline HTML5 canvas pad (no external JS, mouse + touch);
  POST submits the PNG; separate decline endpoint. Token+state checks gate
  every transition
- action_validate_pdfa on the signed request reuses the e-filing pikepdf
  check (markers + OutputIntents) so e-filing-bound docs can be re-validated
- Wiring: models/__init__, controllers/__init__, manifest entry, ACL for the
  request, Signature Requests menu under Cases, signature_request_ids on
  fl.case with a Filings-tab list, "Request Signature" header button, and a
  cron for expiry
- Note: Odoo Sign / DocuSign / HelloSign deliberately NOT used per CLAUDE.md
  spec (HIPAA + FL court e-signature compliance)
- Verified: throwaway-DB install passes cleanly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 20:43:09 +00:00

94 lines
3.4 KiB
Python

{
'name': 'ActiveBlue Family Law',
'version': '18.0.1.0.0',
'category': 'Legal',
'summary': 'Florida Family Law Case Management — Pro Se',
'description': """
Florida family law case management for pro se litigants.
Covers child support modification, dissolution of marriage,
and paternity cases in Miami-Dade County (11th Circuit).
Includes FL 61.30 child support calculator, document generation,
deadline tracking, and AI-powered case law analysis via Claude API.
""",
'author': 'Active Blue LLC',
'website': 'https://avc.activeblue.net',
'depends': [
'base',
'mail',
'portal',
'website',
'contacts',
'calendar',
'project',
'crm',
'account',
'hr_expense',
'analytic',
# 'sign', # Odoo Sign — enable when confirmed installed
# 'queue_job', # OCA queue_job — install from https://github.com/OCA/queue
],
'data': [
# Security
'security/fl_security.xml',
'security/ir.model.access.csv',
# Seed data (load before views)
'data/fl_stage_data.xml',
'data/fl_issue_tags.xml',
'data/fl_statute_data.xml',
'data/fl_support_schedule.xml',
'data/ir_sequence.xml',
'data/fl_deadline_rules.xml',
'data/mail_templates.xml',
'data/fl_caselaw_data.xml',
'data/case_task_templates.xml',
# Views — backend (actions before menus so menuitem refs resolve)
'views/fl_case_views.xml',
'views/fl_party_views.xml',
'views/fl_child_views.xml',
'views/fl_support_views.xml',
'views/fl_deadline_views.xml',
'views/fl_hearing_views.xml',
'views/fl_deposition_views.xml',
'views/fl_discovery_views.xml',
'views/fl_caselaw_views.xml',
'views/fl_analysis_views.xml',
'views/fl_fee_waiver_views.xml',
'views/fl_statute_views.xml',
'views/fl_wizard_views.xml',
'views/fl_discovery_suggest_views.xml',
'views/fl_conflict_check_views.xml',
'views/fl_timesheet_views.xml',
'views/fl_efiling_views.xml',
'views/fl_signature_request_views.xml',
'views/menu_views.xml',
# Phase 4 — QWeb PDF Reports
'report/report_financial_affidavit_short.xml',
'report/report_financial_affidavit_long.xml',
'report/report_child_support_worksheet.xml',
'report/report_motion_to_modify.xml',
'report/report_notice_deposition.xml',
'report/report_motion_to_compel.xml',
'report/report_income_withholding.xml',
'report/report_fee_waiver.xml',
'report/report_notice_ssn.xml',
'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': [
'activeblue_familylaw/static/src/css/familylaw_portal.css',
'activeblue_familylaw/static/src/js/fl_calculator.js',
'activeblue_familylaw/static/src/js/fl_timeline.js',
],
},
'installable': True,
'application': True,
'license': 'LGPL-3',
}