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>
127 lines
6.8 KiB
XML
127 lines
6.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
|
|
<record id="view_fl_party_form" model="ir.ui.view">
|
|
<field name="name">fl.party.form</field>
|
|
<field name="model">fl.party</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Party Details">
|
|
<sheet>
|
|
<group>
|
|
<group>
|
|
<field name="case_id"/>
|
|
<field name="partner_id"/>
|
|
<field name="role"/>
|
|
<field name="preferred_language"/>
|
|
</group>
|
|
<group string="Employment">
|
|
<field name="employment_type"/>
|
|
<field name="employer_name"/>
|
|
<field name="employer_address"/>
|
|
<field name="employer_phone"/>
|
|
</group>
|
|
</group>
|
|
|
|
<notebook>
|
|
<page string="Income (FL 61.30)">
|
|
<group>
|
|
<group string="Gross Income">
|
|
<field name="gross_monthly_income"/>
|
|
</group>
|
|
<group string="Statutory Deductions (FL 61.30(3))">
|
|
<field name="fed_tax_monthly"/>
|
|
<field name="fica_ss_monthly" readonly="1"/>
|
|
<field name="fica_medicare_monthly" readonly="1"/>
|
|
<field name="mandatory_retirement"/>
|
|
<field name="mandatory_union_dues"/>
|
|
<field name="health_insurance_self"/>
|
|
<field name="other_court_ordered_support"/>
|
|
</group>
|
|
</group>
|
|
<group>
|
|
<field name="net_monthly_income" readonly="1"/>
|
|
<field name="effective_monthly_income" readonly="1"/>
|
|
</group>
|
|
<separator string="Income Sources"/>
|
|
<field name="income_source_ids">
|
|
<tree editable="bottom">
|
|
<field name="source_type"/>
|
|
<field name="description"/>
|
|
<field name="monthly_amount"/>
|
|
<field name="verified"/>
|
|
<field name="verification_document"/>
|
|
</tree>
|
|
</field>
|
|
</page>
|
|
<page string="Income Imputation (FL 61.30(2)(b))">
|
|
<group>
|
|
<field name="income_imputed"/>
|
|
<field name="imputed_amount"
|
|
attrs="{'invisible': [('income_imputed', '=', False)]}"/>
|
|
<field name="fl_minimum_wage_hourly"/>
|
|
<field name="fl_minimum_wage_monthly" readonly="1"/>
|
|
<field name="imputation_basis"
|
|
attrs="{'invisible': [('income_imputed', '=', False)]}"/>
|
|
</group>
|
|
<separator string="Lifestyle Analysis (Barner v. Barner)"/>
|
|
<group>
|
|
<field name="lifestyle_inconsistency_flag"/>
|
|
<field name="lifestyle_notes"
|
|
attrs="{'invisible': [('lifestyle_inconsistency_flag', '=', False)]}"/>
|
|
</group>
|
|
</page>
|
|
<page string="Service & SSN">
|
|
<group>
|
|
<group string="Service of Process">
|
|
<field name="service_address"/>
|
|
<field name="service_method"/>
|
|
<field name="process_server_id"
|
|
attrs="{'invisible': [('service_method', '!=', 'personal')]}"/>
|
|
</group>
|
|
<group string="SSN (FL-12.930(a))">
|
|
<field name="ssn_last4"/>
|
|
<field name="ssn_notice_filed"/>
|
|
<field name="ssn_handwritten_confirmed"/>
|
|
</group>
|
|
</group>
|
|
<div class="alert alert-warning" role="alert"
|
|
attrs="{'invisible': [('service_method', '!=', 'publication')]}">
|
|
<strong>⚠️ Service by Publication</strong> is the most complex
|
|
service method and requires a diligent search affidavit.
|
|
Attorney representation is strongly recommended.
|
|
</div>
|
|
</page>
|
|
<page string="Portal Access">
|
|
<group>
|
|
<field name="portal_user_id"/>
|
|
<field name="portal_access_granted"/>
|
|
<field name="portal_invite_sent"/>
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_fl_party_tree" model="ir.ui.view">
|
|
<field name="name">fl.party.tree</field>
|
|
<field name="model">fl.party</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Parties">
|
|
<field name="case_id"/>
|
|
<field name="partner_id"/>
|
|
<field name="role"/>
|
|
<field name="employment_type"/>
|
|
<field name="gross_monthly_income"/>
|
|
<field name="net_monthly_income"/>
|
|
<field name="income_imputed"/>
|
|
<field name="lifestyle_inconsistency_flag" string="Lifestyle ⚠"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
</data>
|
|
</odoo>
|