Files
famlaw/activeblue_familylaw/models/fl_expense_case.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

28 lines
953 B
Python

from odoo import fields, models
class HrExpenseFLCase(models.Model):
"""
Extend hr.expense to link expenses to a family law case.
Enables cost-tracking per case (filing fees, process server, court reporter, etc.)
"""
_inherit = 'hr.expense'
fl_case_id = fields.Many2one(
'fl.case',
string='Family Law Case',
index=True,
help='Link this expense to a specific family law case for cost tracking'
)
expense_category = fields.Selection([
('filing_fee', 'Court Filing Fee'),
('service_fee', 'Service of Process Fee'),
('court_reporter', 'Court Reporter'),
('mediation', 'Mediation Fee'),
('copying', 'Document Copying / Printing'),
('postage', 'Postage / Certified Mail'),
('translation', 'Translation / Interpretation'),
('expert', 'Expert Witness'),
('other', 'Other Case Expense'),
], string='Case Expense Type')