Caught and fixed by running an actual install on a throwaway DB:
- Strip 29 # comment lines from ir.model.access.csv (Odoo CSV loader treats
them as malformed rows → IndexError); 79 data rows preserved
- Remove obsolete ir.cron.numbercall field (removed in Odoo 17+) from 4 cron
records in fl_deadline_rules.xml
- Rename <tree>→<list> across 26 sites; inside x2many inline views Odoo 18 no
longer recognizes <tree>, which made it fall back to the outer model and
reject inner fields ("Field 'partner_id' does not exist in model 'fl.case'")
- Add store=True to non-stored computed fields referenced by search filters,
which Odoo 18 now rejects as unsearchable:
- fl.case: overdue_deadline_count, next_deadline_label
- fl.deposition: notice_valid
Module loads cleanly: 31 fl.* models registered, no errors.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
72 lines
3.5 KiB
XML
72 lines
3.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
|
|
<record id="view_fl_analysis_tree" model="ir.ui.view">
|
|
<field name="name">fl.analysis.tree</field>
|
|
<field name="model">fl.analysis</field>
|
|
<field name="arch" type="xml">
|
|
<list string="AI Analyses">
|
|
<field name="case_id"/>
|
|
<field name="analysis_type"/>
|
|
<field name="analysis_date"/>
|
|
<field name="model_used"/>
|
|
<field name="attorney_referral_flag"/>
|
|
<field name="confidence_level"/>
|
|
<field name="case_complexity"/>
|
|
<field name="state"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_fl_analysis_form" model="ir.ui.view">
|
|
<field name="name">fl.analysis.form</field>
|
|
<field name="model">fl.analysis</field>
|
|
<field name="arch" type="xml">
|
|
<form string="AI Case Analysis">
|
|
<sheet>
|
|
<group>
|
|
<group>
|
|
<field name="case_id"/>
|
|
<field name="analysis_type"/>
|
|
<field name="analysis_date"/>
|
|
<field name="model_used"/>
|
|
<field name="state"/>
|
|
</group>
|
|
<group>
|
|
<field name="attorney_referral_flag"/>
|
|
<field name="confidence_level"/>
|
|
<field name="case_complexity"/>
|
|
</group>
|
|
</group>
|
|
<div class="alert alert-danger" role="alert"
|
|
invisible="not attorney_referral_flag">
|
|
<strong>⚠️ ATTORNEY REFERRAL RECOMMENDED</strong><br/>
|
|
<field name="attorney_referral_reason" readonly="1" nolabel="1"/>
|
|
</div>
|
|
<separator string="Strategy Memo"
|
|
invisible="analysis_type != 'attorney'"/>
|
|
<field name="strategy_memo" widget="html" readonly="1" nolabel="1"
|
|
invisible="analysis_type != 'attorney'"/>
|
|
<separator string="Risk Narrative"
|
|
invisible="not risk_narrative"/>
|
|
<field name="risk_narrative" readonly="1" nolabel="1"
|
|
invisible="not risk_narrative"/>
|
|
<separator string="Plain English Summary (English)"/>
|
|
<field name="plain_english_summary" readonly="1" nolabel="1"/>
|
|
<separator string="Plain English Summary (Español)"/>
|
|
<field name="plain_english_summary_es" readonly="1" nolabel="1"/>
|
|
<separator string="Cited Statutes"
|
|
invisible="not cited_statute_ids"/>
|
|
<field name="cited_statute_ids" widget="many2many_tags" readonly="1" nolabel="1"
|
|
invisible="not cited_statute_ids"/>
|
|
<separator string="Matched Case Law"/>
|
|
<field name="matched_caselaw_ids" widget="many2many_tags" readonly="1" nolabel="1"/>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
</data>
|
|
</odoo>
|