Files
famlaw/activeblue_familylaw/models/fl_statute.py
Carlos Garcia 1d52d85a78 Phase 1: core models, security, seed data, and backend views
Implements full Phase 1 of the activeblue_familylaw Odoo 18 module:
- 17 Python models (fl.case, fl.party, fl.child, fl.support.calculation,
  fl.fee.waiver, fl.income.withholding, fl.deadline, fl.hearing,
  fl.deposition, fl.discovery, fl.document, fl.caselaw, fl.analysis,
  fl.ai.engine, fl.argument, fl.statute, fl.issue.tag) + hr.expense extension
- 3 wizard stubs (intake, analysis, generate-packet)
- Security: 4 groups (admin/paralegal/portal-petitioner/portal-respondent)
  + record rules scoping portal users to their own cases
- Seed data: issue tags, FL statutes, FL DCF support schedule, ir.sequence
- 13 backend view XML files with FL 61.30 worksheet, fee waiver
  eligibility banner, DV safety resources, emancipation alerts
- Static CSS/JS stubs for Phase 6 portal

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 18:52:04 -04:00

57 lines
1.8 KiB
Python

from odoo import fields, models
class FlStatute(models.Model):
_name = 'fl.statute'
_description = 'Florida Statute Reference'
_order = 'name'
name = fields.Char(
string='Statute',
required=True,
help='e.g. FL 61.30'
)
title = fields.Char(string='Title', required=True)
description = fields.Text(string='Summary')
category = fields.Selection([
('child_support', 'Child Support'),
('modification', 'Modification'),
('alimony', 'Alimony'),
('timesharing', 'Timesharing / Parental Responsibility'),
('dissolution', 'Dissolution of Marriage'),
('paternity', 'Paternity'),
('domestic_violence', 'Domestic Violence'),
('enforcement', 'Enforcement'),
('disclosure', 'Mandatory Disclosure'),
('fee_waiver', 'Fee Waiver / Indigent Status'),
('procedure', 'Procedure'),
('discovery', 'Discovery'),
('other', 'Other'),
], string='Category')
url = fields.Char(string='Official URL')
active = fields.Boolean(default=True)
_sql_constraints = [
('name_uniq', 'unique(name)', 'Statute reference must be unique.'),
]
class FlIssueTag(models.Model):
_name = 'fl.issue.tag'
_description = 'Legal Issue Tag'
_order = 'name'
name = fields.Char(string='Tag', required=True)
name_es = fields.Char(string='Tag (Spanish)')
color = fields.Integer(string='Color Index', default=0)
case_type = fields.Selection([
('modification', 'Modification'),
('dissolution', 'Dissolution'),
('paternity', 'Paternity'),
('all', 'All Cases'),
], string='Applies To', default='all')
_sql_constraints = [
('name_uniq', 'unique(name)', 'Issue tag name must be unique.'),
]