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>
This commit is contained in:
56
activeblue_familylaw/models/fl_statute.py
Normal file
56
activeblue_familylaw/models/fl_statute.py
Normal file
@@ -0,0 +1,56 @@
|
||||
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.'),
|
||||
]
|
||||
Reference in New Issue
Block a user