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>
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from odoo import fields, models
|
|
|
|
|
|
class FlArgument(models.Model):
|
|
"""
|
|
Phase 5 — AI-generated legal argument builder.
|
|
Phase 1: Stub.
|
|
"""
|
|
_name = 'fl.argument'
|
|
_description = 'Legal Argument'
|
|
_order = 'sequence, id'
|
|
|
|
case_id = fields.Many2one(
|
|
'fl.case', ondelete='cascade', index=True
|
|
)
|
|
sequence = fields.Integer(default=10)
|
|
argument_text = fields.Text(
|
|
string='Argument',
|
|
required=True
|
|
)
|
|
argument_type = fields.Selection([
|
|
('petitioner', 'Petitioner Argument'),
|
|
('respondent', 'Respondent Counter-Argument'),
|
|
('procedural', 'Procedural Point'),
|
|
], string='Type', default='petitioner')
|
|
strength = fields.Selection([
|
|
('strong', 'Strong'),
|
|
('moderate', 'Moderate'),
|
|
('weak', 'Weak'),
|
|
], string='Argument Strength')
|
|
caselaw_ids = fields.Many2many(
|
|
'fl.caselaw',
|
|
'fl_argument_caselaw_rel',
|
|
'argument_id', 'caselaw_id',
|
|
string='Supporting Case Law'
|
|
)
|
|
statute_ids = fields.Many2many(
|
|
'fl.statute',
|
|
'fl_argument_statute_rel',
|
|
'argument_id', 'statute_id',
|
|
string='Supporting Statutes'
|
|
)
|
|
notes = fields.Text(string='Notes')
|
|
ai_generated = fields.Boolean(
|
|
string='AI Generated',
|
|
default=False
|
|
)
|