Migrate views to Odoo 17/18 syntax; fix pre-existing XML blockers
- Convert all 124 attrs="{...}" across 13 view files to direct Odoo 17/18
attributes (invisible/readonly/required with Python expressions); prefix-domain
OR/AND/NOT and operators handled (e.g. "(is_overdue or days_until_due > 7) and completed")
- Fix pre-existing XML errors that blocked module load on any version:
- Replace invalid HTML entity with   in 4 files (reports + portal)
- Merge duplicate style= attributes (3 spots in website_intake_templates)
- Replace 3 illegal <t t-if> embedded in class="" attributes with t-attf-class
- All 44 module XML files now parse clean
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -104,7 +104,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 4px; font-weight: bold;">Role in Case:</td>
|
||||
<td colspan="3" style="padding: 4px;">[ ] Petitioner [ ] Respondent</td>
|
||||
<td colspan="3" style="padding: 4px;">[ ] Petitioner    [ ] Respondent</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -155,8 +155,8 @@
|
||||
</div>
|
||||
<div style="font-size: 10pt; margin-bottom: 12px; line-height: 2.0;">
|
||||
Cash on hand / bank accounts: $________<br/>
|
||||
Real property (value): $________ Mortgage/lien: $________<br/>
|
||||
Vehicles (value): $________ Loan balance: $________<br/>
|
||||
Real property (value): $________    Mortgage/lien: $________<br/>
|
||||
Vehicles (value): $________    Loan balance: $________<br/>
|
||||
Other assets: $________
|
||||
</div>
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
<!-- Who is Filing -->
|
||||
<div style="margin-bottom: 16px; font-size: 11pt;">
|
||||
<strong>[ ] PETITIONER — <t t-esc="o.petitioner_id.name if o.petitioner_id else '__________________'"/></strong>
|
||||
|
||||
   
|
||||
<strong>[ ] RESPONDENT — <t t-esc="o.respondent_id.name if o.respondent_id else '__________________'"/></strong>
|
||||
</div>
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
The above documents were provided to
|
||||
<strong><t t-esc="o.respondent_id.name if o.respondent_id else 'the opposing party'"/></strong>
|
||||
by the following method:<br/><br/>
|
||||
[ ] U.S. Mail [ ] Email [ ] Hand Delivery [ ] E-Filing Portal<br/>
|
||||
[ ] U.S. Mail    [ ] Email    [ ] Hand Delivery    [ ] E-Filing Portal<br/>
|
||||
On: _______________________, 20____
|
||||
</div>
|
||||
|
||||
|
||||
@@ -151,8 +151,8 @@
|
||||
to make major decisions. Reasons: ________________________________<br/><br/>
|
||||
|
||||
<strong>2.2 Ultimate Decision-Making Authority (if shared, for disputes):</strong><br/>
|
||||
[ ] Parent A (Petitioner) [ ] Parent B (Respondent) [ ] Mediator/Arbitrator<br/>
|
||||
For: [ ] Education [ ] Healthcare [ ] Religion [ ] Extracurricular
|
||||
[ ] Parent A (Petitioner)    [ ] Parent B (Respondent)    [ ] Mediator/Arbitrator<br/>
|
||||
For: [ ] Education    [ ] Healthcare    [ ] Religion    [ ] Extracurricular
|
||||
</div>
|
||||
|
||||
<!-- SECTION 3: TIMESHARING -->
|
||||
@@ -193,29 +193,29 @@
|
||||
<strong>3.2 Holiday Schedule</strong> (indicate which parent has each holiday):<br/>
|
||||
<table style="width: 100%; font-size: 10pt; border-collapse: collapse;">
|
||||
<tr>
|
||||
<td style="padding: 3px; width: 25%;">New Year's Day:</td><td style="padding: 3px; width: 25%;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px; width: 25%;">Spring Break:</td><td style="padding: 3px;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px; width: 25%;">New Year's Day:</td><td style="padding: 3px; width: 25%;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
<td style="padding: 3px; width: 25%;">Spring Break:</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 3px;">Memorial Day:</td><td style="padding: 3px;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px;">Independence Day:</td><td style="padding: 3px;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px;">Memorial Day:</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
<td style="padding: 3px;">Independence Day:</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 3px;">Labor Day:</td><td style="padding: 3px;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px;">Thanksgiving:</td><td style="padding: 3px;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px;">Labor Day:</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
<td style="padding: 3px;">Thanksgiving:</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 3px;">Winter Break (1st half):</td><td style="padding: 3px;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px;">Winter Break (2nd half):</td><td style="padding: 3px;">[ ] A [ ] B [ ] Alt</td>
|
||||
<td style="padding: 3px;">Winter Break (1st half):</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
<td style="padding: 3px;">Winter Break (2nd half):</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Alt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 3px;">Mother's Day:</td><td style="padding: 3px;">[ ] A [ ] B [ ] Mother</td>
|
||||
<td style="padding: 3px;">Father's Day:</td><td style="padding: 3px;">[ ] A [ ] B [ ] Father</td>
|
||||
<td style="padding: 3px;">Mother's Day:</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Mother</td>
|
||||
<td style="padding: 3px;">Father's Day:</td><td style="padding: 3px;">[ ] A   [ ] B   [ ] Father</td>
|
||||
</tr>
|
||||
</table><br/>
|
||||
|
||||
<strong>3.3 School Year vs. Summer Schedule:</strong><br/>
|
||||
School year primary residence: [ ] Parent A [ ] Parent B [ ] Same as regular<br/>
|
||||
School year primary residence: [ ] Parent A    [ ] Parent B    [ ] Same as regular<br/>
|
||||
Summer schedule: ________________________________________<br/>
|
||||
Summer vacation (each parent): ___ weeks per year, with ___ days advance notice required.
|
||||
</div>
|
||||
@@ -226,7 +226,7 @@
|
||||
</div>
|
||||
<div style="font-size: 10pt; margin-bottom: 12px; line-height: 2.2;">
|
||||
Phone/video access: _____ call(s) per week, between _____ and _____ p.m.<br/>
|
||||
Method: [ ] Phone [ ] Video Call (FaceTime/Zoom) [ ] Text (with parental supervision)<br/>
|
||||
Method: [ ] Phone    [ ] Video Call (FaceTime/Zoom)    [ ] Text (with parental supervision)<br/>
|
||||
Emergency contact: Each parent shall provide the other with a current phone number
|
||||
and emergency contact at all times.
|
||||
</div>
|
||||
@@ -236,9 +236,9 @@
|
||||
SECTION 5 — TRANSPORTATION / EXCHANGE
|
||||
</div>
|
||||
<div style="font-size: 10pt; margin-bottom: 12px; line-height: 2.2;">
|
||||
Exchange location: [ ] School [ ] Neutral location: ________________________<br/>
|
||||
Exchange location: [ ] School    [ ] Neutral location: ________________________<br/>
|
||||
[ ] Each parent provides transportation to their own home<br/>
|
||||
[ ] Transporting parent: [ ] Parent A [ ] Parent B [ ] Alternate<br/>
|
||||
[ ] Transporting parent: [ ] Parent A    [ ] Parent B    [ ] Alternate<br/>
|
||||
Travel out of state: _____ days advance notice required, written consent or court order required for travel outside U.S.
|
||||
</div>
|
||||
|
||||
|
||||
@@ -40,26 +40,26 @@
|
||||
</group>
|
||||
</group>
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': [('attorney_referral_flag', '=', False)]}">
|
||||
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"
|
||||
attrs="{'invisible': [('analysis_type', '!=', 'attorney')]}"/>
|
||||
invisible="analysis_type != 'attorney'"/>
|
||||
<field name="strategy_memo" widget="html" readonly="1" nolabel="1"
|
||||
attrs="{'invisible': [('analysis_type', '!=', 'attorney')]}"/>
|
||||
invisible="analysis_type != 'attorney'"/>
|
||||
<separator string="Risk Narrative"
|
||||
attrs="{'invisible': [('risk_narrative', '=', False)]}"/>
|
||||
invisible="not risk_narrative"/>
|
||||
<field name="risk_narrative" readonly="1" nolabel="1"
|
||||
attrs="{'invisible': [('risk_narrative', '=', False)]}"/>
|
||||
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"
|
||||
attrs="{'invisible': [('cited_statute_ids', '=', [])]}"/>
|
||||
invisible="not cited_statute_ids"/>
|
||||
<field name="cited_statute_ids" widget="many2many_tags" readonly="1" nolabel="1"
|
||||
attrs="{'invisible': [('cited_statute_ids', '=', [])]}"/>
|
||||
invisible="not cited_statute_ids"/>
|
||||
<separator string="Matched Case Law"/>
|
||||
<field name="matched_caselaw_ids" widget="many2many_tags" readonly="1" nolabel="1"/>
|
||||
</sheet>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
groups="activeblue_familylaw.group_admin,activeblue_familylaw.group_paralegal"/>
|
||||
<button name="action_open_support_calculator" string="Open Calculator"
|
||||
type="object"
|
||||
attrs="{'invisible': [('case_type', 'not in', ['modification','dissolution_children','paternity','custody_modification'])]}"/>
|
||||
invisible="case_type not in ['modification', 'dissolution_children', 'paternity', 'custody_modification']"/>
|
||||
<button name="action_run_conflict_check" string="Run Conflict Check"
|
||||
type="object"
|
||||
groups="activeblue_familylaw.group_admin,activeblue_familylaw.group_paralegal"/>
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
<!-- Attorney Referral Banner -->
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': [('attorney_referral_flag', '=', False)]}">
|
||||
invisible="not attorney_referral_flag">
|
||||
<strong>⚠️ ATTORNEY REFERRAL RECOMMENDED</strong>
|
||||
— This case has been flagged as complex or high-risk for pro se representation.
|
||||
Strongly consider consulting with a family law attorney.
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
<!-- Conflict of Interest Banner -->
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': ['|', ('conflict_check_passed', '=', True), ('conflict_check_id', '=', False)]}">
|
||||
invisible="(conflict_check_passed or not conflict_check_id)">
|
||||
<strong>🚩 CONFLICT OF INTEREST — UNRESOLVED</strong>
|
||||
— A conflict check has flagged matching parties on other open cases.
|
||||
This case cannot advance past Intake until the conflict is overridden by an administrator.
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
<!-- DV Safety Note -->
|
||||
<field name="dv_safety_note" widget="html"
|
||||
attrs="{'invisible': [('domestic_violence_flag', '=', False)]}"/>
|
||||
invisible="not domestic_violence_flag"/>
|
||||
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
@@ -62,7 +62,7 @@
|
||||
</button>
|
||||
<button class="oe_stat_button" type="object"
|
||||
name="action_open_support_calculator" icon="fa-calculator"
|
||||
attrs="{'invisible': [('case_type', 'not in', ['modification','dissolution_children','paternity','custody_modification'])]}">
|
||||
invisible="case_type not in ['modification', 'dissolution_children', 'paternity', 'custody_modification']">
|
||||
<span class="o_stat_text">Calculator</span>
|
||||
</button>
|
||||
</div>
|
||||
@@ -89,11 +89,11 @@
|
||||
<field name="filing_date"/>
|
||||
<field name="service_date"/>
|
||||
<field name="last_order_date"
|
||||
attrs="{'invisible': [('case_type', 'not in', ['modification','alimony_modification','custody_modification'])]}"/>
|
||||
invisible="case_type not in ['modification', 'alimony_modification', 'custody_modification']"/>
|
||||
<field name="marriage_date"
|
||||
attrs="{'invisible': [('case_type', 'not in', ['dissolution_children','dissolution_no_children','alimony_modification'])]}"/>
|
||||
invisible="case_type not in ['dissolution_children', 'dissolution_no_children', 'alimony_modification']"/>
|
||||
<field name="years_of_marriage"
|
||||
attrs="{'invisible': [('case_type', 'not in', ['dissolution_children','dissolution_no_children','alimony_modification'])]}"/>
|
||||
invisible="case_type not in ['dissolution_children', 'dissolution_no_children', 'alimony_modification']"/>
|
||||
<field name="retroactivity_date" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -109,7 +109,7 @@
|
||||
placeholder="Leave blank if pro se"/>
|
||||
<field name="petitioner_fl_resident_since"/>
|
||||
<field name="residency_warning" readonly="1"
|
||||
attrs="{'invisible': [('petitioner_fl_resident_since', '=', False)]}"/>
|
||||
invisible="not petitioner_fl_resident_since"/>
|
||||
</group>
|
||||
<group string="Respondent">
|
||||
<field name="respondent_id"/>
|
||||
@@ -122,7 +122,7 @@
|
||||
<group string="Safety Flags">
|
||||
<field name="domestic_violence_flag"/>
|
||||
<field name="dv_injunction_active"
|
||||
attrs="{'invisible': [('domestic_violence_flag', '=', False)]}"/>
|
||||
invisible="not domestic_violence_flag"/>
|
||||
</group>
|
||||
<group string="Conflict of Interest">
|
||||
<field name="conflict_check_passed" readonly="1"/>
|
||||
@@ -144,27 +144,27 @@
|
||||
|
||||
<!-- TAB 2: Children -->
|
||||
<page string="Children" name="children"
|
||||
attrs="{'invisible': [('case_type', 'in', ['dissolution_no_children','alimony_modification'])]}">
|
||||
invisible="case_type in ['dissolution_no_children', 'alimony_modification']">
|
||||
<group>
|
||||
<field name="children_count" readonly="1"/>
|
||||
<field name="has_minor_children" readonly="1"/>
|
||||
</group>
|
||||
<separator string="Parenting Class (FL 61.21)"
|
||||
attrs="{'invisible': [('parenting_class_required', '=', False)]}"/>
|
||||
<group attrs="{'invisible': [('parenting_class_required', '=', False)]}">
|
||||
invisible="not parenting_class_required"/>
|
||||
<group invisible="not parenting_class_required">
|
||||
<group>
|
||||
<field name="petitioner_parenting_class_done"/>
|
||||
<field name="petitioner_parenting_class_date"
|
||||
attrs="{'invisible': [('petitioner_parenting_class_done', '=', False)]}"/>
|
||||
invisible="not petitioner_parenting_class_done"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="respondent_parenting_class_done"/>
|
||||
<field name="respondent_parenting_class_date"
|
||||
attrs="{'invisible': [('respondent_parenting_class_done', '=', False)]}"/>
|
||||
invisible="not respondent_parenting_class_done"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="parenting_class_warning" readonly="1"
|
||||
attrs="{'invisible': [('parenting_class_required', '=', False)]}"/>
|
||||
invisible="not parenting_class_required"/>
|
||||
<separator string="Children on Case"/>
|
||||
<field name="child_ids">
|
||||
<tree string="Children" editable="bottom">
|
||||
@@ -181,7 +181,7 @@
|
||||
|
||||
<!-- TAB 3: Support & Threshold -->
|
||||
<page string="Support Calculation" name="support"
|
||||
attrs="{'invisible': [('case_type', 'not in', ['modification','dissolution_children','paternity','custody_modification'])]}">
|
||||
invisible="case_type not in ['modification', 'dissolution_children', 'paternity', 'custody_modification']">
|
||||
<group string="Current Order">
|
||||
<field name="current_order_amount"/>
|
||||
<field name="current_order_per_child"/>
|
||||
@@ -195,18 +195,18 @@
|
||||
string="Difference %" widget="percentage"/>
|
||||
</group>
|
||||
<group string="Modification Threshold Test (FL 61.30(1)(b))"
|
||||
attrs="{'invisible': [('case_type', '!=', 'modification')]}">
|
||||
invisible="case_type != 'modification'">
|
||||
<field name="threshold_met" readonly="1"/>
|
||||
<field name="substantial_change_basis"/>
|
||||
<field name="substantial_change_detail"/>
|
||||
</group>
|
||||
<field name="threshold_result" widget="html" readonly="1"
|
||||
attrs="{'invisible': [('case_type', '!=', 'modification')]}"/>
|
||||
invisible="case_type != 'modification'"/>
|
||||
</page>
|
||||
|
||||
<!-- TAB 4: Timesharing -->
|
||||
<page string="Timesharing" name="timesharing"
|
||||
attrs="{'invisible': [('case_type', 'not in', ['modification','dissolution_children','paternity','custody_modification'])]}">
|
||||
invisible="case_type not in ['modification', 'dissolution_children', 'paternity', 'custody_modification']">
|
||||
<group>
|
||||
<group>
|
||||
<field name="timesharing_changed"/>
|
||||
@@ -275,11 +275,11 @@
|
||||
type="object" class="btn-primary"
|
||||
groups="activeblue_familylaw.group_admin"/>
|
||||
<field name="attorney_memo_id" readonly="1"
|
||||
attrs="{'invisible': [('attorney_memo_id', '=', False)]}"/>
|
||||
invisible="not attorney_memo_id"/>
|
||||
<field name="attorney_memo_html" widget="html" readonly="1" nolabel="1"
|
||||
attrs="{'invisible': [('attorney_memo_id', '=', False)]}"/>
|
||||
invisible="not attorney_memo_id"/>
|
||||
<field name="attorney_risk_narrative" readonly="1"
|
||||
attrs="{'invisible': [('attorney_memo_id', '=', False)]}"/>
|
||||
invisible="not attorney_memo_id"/>
|
||||
<separator string="All Analyses"/>
|
||||
<field name="analysis_ids">
|
||||
<tree string="Analyses">
|
||||
@@ -302,7 +302,7 @@
|
||||
<button name="action_create_fee_waiver"
|
||||
string="Create Fee Waiver Application"
|
||||
type="object" class="btn-secondary"
|
||||
attrs="{'invisible': [('fee_waiver_id', '!=', False)]}"/>
|
||||
invisible="fee_waiver_id"/>
|
||||
</group>
|
||||
<group string="Post-Order">
|
||||
<field name="new_order_amount"/>
|
||||
@@ -403,7 +403,7 @@
|
||||
<field name="next_deadline_label" string="Next Deadline"/>
|
||||
<field name="overdue_deadline_count" string="Overdue"/>
|
||||
<field name="threshold_met"
|
||||
attrs="{'invisible': [('case_type', '!=', 'modification')]}"/>
|
||||
invisible="case_type != 'modification'"/>
|
||||
<field name="attorney_referral_flag" widget="boolean_toggle"/>
|
||||
<field name="domestic_violence_flag" widget="boolean_toggle"/>
|
||||
</tree>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<form string="Case Law">
|
||||
<sheet>
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': [('superseded_by_2023_reform', '=', False)]}">
|
||||
invisible="not superseded_by_2023_reform">
|
||||
<strong>⚠️ NOTE:</strong> This case involves permanent alimony
|
||||
which was <strong>eliminated by HB 1409 (effective July 1, 2023)</strong>.
|
||||
Pre-2023 permanent alimony holdings may not apply to new cases.
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Child">
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': [('approaching_emancipation', '=', False)]}">
|
||||
invisible="not approaching_emancipation">
|
||||
<strong>⚠️ APPROACHING EMANCIPATION:</strong>
|
||||
<field name="name" readonly="1"/> turns 18 in
|
||||
<field name="days_until_emancipation" readonly="1"/> days
|
||||
|
||||
@@ -14,24 +14,24 @@
|
||||
<button name="action_override" string="Override Conflict"
|
||||
type="object" class="oe_highlight"
|
||||
confirm="Override this conflict of interest? This allows the case to advance past Intake. A justification is required."
|
||||
attrs="{'invisible': [('status', '!=', 'conflict')]}"
|
||||
invisible="status != 'conflict'"
|
||||
groups="activeblue_familylaw.group_admin"/>
|
||||
<field name="status" widget="statusbar"
|
||||
statusbar_visible="clear,conflict,override"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': [('status', '!=', 'clear')]}">
|
||||
invisible="status != 'clear'">
|
||||
<strong>✅ CLEAR</strong> — No conflicting parties found on other open cases.
|
||||
</div>
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': [('status', '!=', 'conflict')]}">
|
||||
invisible="status != 'conflict'">
|
||||
<strong>🚩 CONFLICT DETECTED</strong> — One or more parties match
|
||||
parties on other open cases. The case cannot advance past Intake
|
||||
until this is overridden by an administrator.
|
||||
</div>
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': [('status', '!=', 'override')]}">
|
||||
invisible="status != 'override'">
|
||||
<strong>⚠ OVERRIDDEN</strong> — This conflict was overridden by
|
||||
<field name="override_user_id" readonly="1" nolabel="1" class="oe_inline"/>
|
||||
on <field name="override_date" readonly="1" nolabel="1" class="oe_inline"/>.
|
||||
@@ -43,16 +43,16 @@
|
||||
</group>
|
||||
<group>
|
||||
<field name="matched_case_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('matched_case_ids', '=', [])]}"/>
|
||||
invisible="not matched_case_ids"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Match Detail"/>
|
||||
<field name="match_detail" nolabel="1" readonly="1"/>
|
||||
<separator string="Override Justification"
|
||||
attrs="{'invisible': [('status', '=', 'clear')]}"/>
|
||||
invisible="status == 'clear'"/>
|
||||
<field name="override_justification" nolabel="1"
|
||||
placeholder="Required to override a conflict — explain why the firm may proceed despite the match."
|
||||
attrs="{'invisible': [('status', '=', 'clear')], 'readonly': [('status', '=', 'override')]}"/>
|
||||
invisible="status == 'clear'" readonly="status == 'override'"/>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
<field name="deadline_type"/>
|
||||
<field name="due_date"/>
|
||||
<field name="days_until_due" string="Days Left"
|
||||
attrs="{'invisible': [('completed', '=', True)]}"/>
|
||||
invisible="completed"/>
|
||||
<field name="statute_reference" optional="show"/>
|
||||
<field name="completed"/>
|
||||
<field name="waived"/>
|
||||
<field name="is_overdue" readonly="1"/>
|
||||
<button name="action_mark_complete" string="✔ Complete"
|
||||
type="object" icon="fa-check"
|
||||
attrs="{'invisible': ['|', ('completed', '=', True), ('waived', '=', True)]}"/>
|
||||
invisible="(completed or waived)"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -42,28 +42,28 @@
|
||||
<header>
|
||||
<button name="action_mark_complete" string="Mark Complete"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': ['|', ('completed', '=', True), ('waived', '=', True)]}"/>
|
||||
invisible="(completed or waived)"/>
|
||||
<button name="action_mark_waived" string="Mark Waived / N/A"
|
||||
type="object"
|
||||
attrs="{'invisible': ['|', ('completed', '=', True), ('waived', '=', True)]}"/>
|
||||
invisible="(completed or waived)"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<!-- Overdue alert banner -->
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': [('is_overdue', '=', False)]}">
|
||||
invisible="not is_overdue">
|
||||
<strong>🔴 OVERDUE</strong> — This deadline has passed.
|
||||
Missed court deadlines can result in default judgment
|
||||
or case dismissal. Take action immediately.
|
||||
</div>
|
||||
<!-- 7-day warning banner -->
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': ['|', ('is_overdue', '=', True), ('days_until_due', '>', 7), ('completed', '=', True)]}">
|
||||
invisible="(is_overdue or days_until_due > 7) and completed">
|
||||
<strong>⏰ Due in ${days_until_due} days</strong> —
|
||||
This deadline is coming up soon.
|
||||
</div>
|
||||
<!-- Completed banner -->
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': [('completed', '=', False)]}">
|
||||
invisible="not completed">
|
||||
<strong>✅ Completed</strong> on
|
||||
<field name="completed_date" readonly="1" nolabel="1"/>
|
||||
</div>
|
||||
@@ -86,12 +86,12 @@
|
||||
<group>
|
||||
<field name="completed"/>
|
||||
<field name="completed_date"
|
||||
attrs="{'invisible': [('completed', '=', False)], 'required': [('completed', '=', True)]}"/>
|
||||
invisible="not completed" required="completed"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="waived"/>
|
||||
<field name="calendar_event_id" readonly="1"
|
||||
attrs="{'invisible': [('calendar_event_id', '=', False)]}"/>
|
||||
invisible="not calendar_event_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Alerts Sent" groups="activeblue_familylaw.group_admin">
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<field name="notice_date"/>
|
||||
<field name="scheduled_date"/>
|
||||
<field name="days_until_deposition" string="Days Away"
|
||||
attrs="{'invisible': [('state', 'in', ['completed', 'cancelled'])]}"/>
|
||||
invisible="state in ['completed', 'cancelled']"/>
|
||||
<field name="notice_valid" string="Notice OK" optional="show"/>
|
||||
<field name="state" widget="badge"
|
||||
decoration-success="state == 'completed'"
|
||||
@@ -44,24 +44,24 @@
|
||||
<header>
|
||||
<button name="action_mark_noticed" string="Mark Notice Served"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': [('state', '!=', 'draft')]}"/>
|
||||
invisible="state != 'draft'"/>
|
||||
<button name="action_confirm" string="Confirm"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'noticed')]}"/>
|
||||
invisible="state != 'noticed'"/>
|
||||
<button name="action_mark_completed" string="Mark Completed"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': [('state', 'not in', ['confirmed', 'noticed'])]}"/>
|
||||
invisible="state not in ['confirmed', 'noticed']"/>
|
||||
<button name="action_no_show" string="Deponent No-Show"
|
||||
type="object"
|
||||
confirm="Mark this deponent as a no-show? This will trigger the Motion to Compel workflow."
|
||||
attrs="{'invisible': [('state', 'not in', ['confirmed', 'noticed'])]}"/>
|
||||
invisible="state not in ['confirmed', 'noticed']"/>
|
||||
<button name="action_reschedule" string="Reschedule"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', 'not in', ['draft', 'noticed', 'confirmed'])]}"/>
|
||||
invisible="state not in ['draft', 'noticed', 'confirmed']"/>
|
||||
<button name="action_cancel" string="Cancel"
|
||||
type="object"
|
||||
confirm="Cancel this deposition?"
|
||||
attrs="{'invisible': [('state', 'in', ['completed', 'cancelled'])]}"/>
|
||||
invisible="state in ['completed', 'cancelled']"/>
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,noticed,confirmed,completed"/>
|
||||
</header>
|
||||
@@ -74,18 +74,18 @@
|
||||
|
||||
<!-- Notice validity warning -->
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': ['|', ('notice_valid', '=', True), ('notice_date', '=', False), ('scheduled_date', '=', False)]}">
|
||||
invisible="(notice_valid or not notice_date) and not scheduled_date">
|
||||
<strong>⚠️ INSUFFICIENT NOTICE</strong> —
|
||||
<field name="notice_warning" readonly="1" nolabel="1"/>
|
||||
</div>
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': ['|', ('notice_valid', '=', False), ('notice_date', '=', False)]}">
|
||||
invisible="(not notice_valid or not notice_date)">
|
||||
<field name="notice_warning" readonly="1" nolabel="1"/>
|
||||
</div>
|
||||
|
||||
<!-- No-Show alert -->
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': [('state', '!=', 'no_show')]}">
|
||||
invisible="state != 'no_show'">
|
||||
<strong>⚠️ DEPONENT NO-SHOW</strong> — File Motion to Compel
|
||||
Attendance (FL 1.380). Check the Deadlines tab for the deadline.
|
||||
You may also request sanctions under FL 1.380(b)(2).
|
||||
@@ -93,9 +93,9 @@
|
||||
|
||||
<!-- Completed summary -->
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': [('state', '!=', 'completed')]}">
|
||||
invisible="state != 'completed'">
|
||||
<strong>✅ Deposition Completed</strong>
|
||||
<span attrs="{'invisible': [('income_verified', '=', False)]}">
|
||||
<span invisible="not income_verified">
|
||||
— Income verified at
|
||||
<field name="income_verified_amount" readonly="1" nolabel="1"/> /month
|
||||
</span>
|
||||
@@ -121,7 +121,7 @@
|
||||
<field name="location"/>
|
||||
<field name="court_reporter"/>
|
||||
<field name="calendar_event_id" readonly="1"
|
||||
attrs="{'invisible': [('calendar_event_id', '=', False)]}"/>
|
||||
invisible="not calendar_event_id"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -129,29 +129,29 @@
|
||||
<group string="Duces Tecum — Document Production Requirement">
|
||||
<field name="duces_tecum"/>
|
||||
<field name="duces_tecum_items"
|
||||
attrs="{'invisible': [('duces_tecum', '=', False)], 'required': [('duces_tecum', '=', True)]}"
|
||||
invisible="not duces_tecum" required="duces_tecum"
|
||||
placeholder="List documents deponent must bring to the deposition: - Last 3 years federal/state tax returns - Last 6 months paystubs - All bank statements last 12 months - Business financial statements - Corporate tax returns - Quickbooks / accounting records"/>
|
||||
</group>
|
||||
|
||||
<!-- Results (shown when completed) -->
|
||||
<group string="Results / Findings"
|
||||
attrs="{'invisible': [('state', 'not in', ['completed', 'no_show'])]}">
|
||||
invisible="state not in ['completed', 'no_show']">
|
||||
<field name="income_verified"/>
|
||||
<field name="income_verified_amount"
|
||||
attrs="{'invisible': [('income_verified', '=', False)]}"/>
|
||||
invisible="not income_verified"/>
|
||||
<field name="transcript_received"/>
|
||||
</group>
|
||||
|
||||
<field name="key_findings"
|
||||
attrs="{'invisible': [('state', 'not in', ['completed'])]}"
|
||||
invisible="state not in ['completed']"
|
||||
placeholder="Summarize key testimony: income figures, contradictions, admissions, document admissions..."/>
|
||||
|
||||
<!-- Motion to Compel (no-show only) -->
|
||||
<group string="Motion to Compel (FL 1.380)"
|
||||
attrs="{'invisible': [('state', '!=', 'no_show')]}">
|
||||
invisible="state != 'no_show'">
|
||||
<field name="motion_to_compel_filed"/>
|
||||
<field name="motion_to_compel_date"
|
||||
attrs="{'invisible': [('motion_to_compel_filed', '=', False)]}"/>
|
||||
invisible="not motion_to_compel_filed"/>
|
||||
<field name="sanctions_requested"/>
|
||||
</group>
|
||||
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
<field name="discovery_type"/>
|
||||
<field name="directed_to"/>
|
||||
<field name="third_party_id"
|
||||
attrs="{'invisible': [('directed_to', '!=', 'third_party')]}"/>
|
||||
invisible="directed_to != 'third_party'"/>
|
||||
<field name="description"/>
|
||||
<field name="served_date"/>
|
||||
<field name="response_due_date"/>
|
||||
<field name="days_until_response" string="Days Left"
|
||||
attrs="{'invisible': [('state', 'in', ['draft', 'responded', 'complete'])]}"/>
|
||||
invisible="state in ['draft', 'responded', 'complete']"/>
|
||||
<field name="is_overdue" string="Overdue"/>
|
||||
<field name="admissions_deemed" string="Deemed Admitted" optional="show"/>
|
||||
<field name="state" widget="badge"
|
||||
@@ -33,13 +33,13 @@
|
||||
decoration-muted="state == 'draft'"/>
|
||||
<button name="action_mark_served" string="Served" type="object"
|
||||
icon="fa-paper-plane"
|
||||
attrs="{'invisible': [('state', '!=', 'draft')]}"/>
|
||||
invisible="state != 'draft'"/>
|
||||
<button name="action_mark_responded" string="Responded" type="object"
|
||||
icon="fa-check"
|
||||
attrs="{'invisible': [('state', '!=', 'served')]}"/>
|
||||
invisible="state != 'served'"/>
|
||||
<button name="action_file_motion_to_compel" string="Compel"
|
||||
type="object" icon="fa-gavel"
|
||||
attrs="{'invisible': [('state', 'not in', ['served', 'deficient'])]}"/>
|
||||
invisible="state not in ['served', 'deficient']"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -55,20 +55,20 @@
|
||||
<header>
|
||||
<button name="action_mark_served" string="Mark Served"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': [('state', '!=', 'draft')]}"/>
|
||||
invisible="state != 'draft'"/>
|
||||
<button name="action_mark_responded" string="Response Received"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'served')]}"/>
|
||||
invisible="state != 'served'"/>
|
||||
<button name="action_flag_deficient" string="Flag Deficient"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'responded')]}"/>
|
||||
invisible="state != 'responded'"/>
|
||||
<button name="action_file_motion_to_compel"
|
||||
string="File Motion to Compel (FL 1.380)"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', 'not in', ['served', 'deficient'])]}"/>
|
||||
invisible="state not in ['served', 'deficient']"/>
|
||||
<button name="action_mark_complete" string="Mark Complete"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', 'in', ['draft', 'complete'])]}"/>
|
||||
invisible="state in ['draft', 'complete']"/>
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,served,responded,complete"/>
|
||||
</header>
|
||||
@@ -76,7 +76,7 @@
|
||||
|
||||
<!-- Deemed Admitted Alert (FL 1.370) — CRITICAL -->
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': [('admissions_deemed', '=', False)]}">
|
||||
invisible="not admissions_deemed">
|
||||
<strong>🚨 FL 1.370 — ADMISSIONS DEEMED ADMITTED</strong><br/>
|
||||
No response was filed within 30 days. Each matter in this
|
||||
Request for Admissions is <strong>automatically deemed admitted</strong>
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
<!-- Overdue response alert -->
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': ['|', ('is_overdue', '=', False), ('admissions_deemed', '=', True)]}">
|
||||
invisible="(not is_overdue or admissions_deemed)">
|
||||
<strong>⏰ Response OVERDUE</strong> — Was due
|
||||
<field name="response_due_date" readonly="1" nolabel="1"/>.
|
||||
Consider sending a deficiency notice, then filing
|
||||
@@ -96,7 +96,7 @@
|
||||
|
||||
<!-- Complete badge -->
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': [('state', '!=', 'complete')]}">
|
||||
invisible="state != 'complete'">
|
||||
<strong>✅ Discovery Item Complete</strong>
|
||||
</div>
|
||||
|
||||
@@ -106,14 +106,14 @@
|
||||
<field name="discovery_type"/>
|
||||
<field name="directed_to"/>
|
||||
<field name="third_party_id"
|
||||
attrs="{'invisible': [('directed_to', '!=', 'third_party')], 'required': [('directed_to', '=', 'third_party')]}"/>
|
||||
invisible="directed_to != 'third_party'" required="directed_to == 'third_party'"/>
|
||||
<field name="description"/>
|
||||
</group>
|
||||
<group string="Timeline">
|
||||
<field name="served_date"/>
|
||||
<field name="response_due_date" readonly="1"/>
|
||||
<field name="days_until_response" readonly="1"
|
||||
attrs="{'invisible': [('state', 'in', ['draft', 'responded', 'complete'])]}"/>
|
||||
invisible="state in ['draft', 'responded', 'complete']"/>
|
||||
<field name="is_overdue" readonly="1"/>
|
||||
<field name="response_received_date"/>
|
||||
<field name="response_complete"/>
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
<!-- Subpoena info (third party) -->
|
||||
<group string="Subpoena Information (FL 1.351)"
|
||||
attrs="{'invisible': [('discovery_type', '!=', 'subpoena')]}">
|
||||
invisible="discovery_type != 'subpoena'">
|
||||
<div class="alert alert-info" role="alert">
|
||||
<strong>FL 1.351 Subpoena for Production:</strong>
|
||||
Third party must respond within the time stated in the subpoena
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<!-- Admissions specific note -->
|
||||
<group string="Admissions (FL 1.370) — WARNING"
|
||||
attrs="{'invisible': [('discovery_type', '!=', 'admissions')]}">
|
||||
invisible="discovery_type != 'admissions'">
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<strong>FL 1.370 Critical Rule:</strong>
|
||||
If the responding party <strong>fails to respond within 30 days</strong>,
|
||||
@@ -149,14 +149,14 @@
|
||||
<group string="Objections / Deficiencies">
|
||||
<field name="objections_raised"/>
|
||||
<field name="objection_detail"
|
||||
attrs="{'invisible': [('objections_raised', '=', False)]}"/>
|
||||
invisible="not objections_raised"/>
|
||||
<field name="deficiency_notice_sent"/>
|
||||
<field name="deficiency_notice_date"
|
||||
attrs="{'invisible': [('deficiency_notice_sent', '=', False)]}"/>
|
||||
invisible="not deficiency_notice_sent"/>
|
||||
</group>
|
||||
|
||||
<group string="Motion to Compel (FL 1.380)"
|
||||
attrs="{'invisible': [('state', '!=', 'compelled')]}">
|
||||
invisible="state != 'compelled'">
|
||||
<field name="motion_to_compel_filed" readonly="1"/>
|
||||
<field name="motion_to_compel_date" readonly="1"/>
|
||||
<field name="sanctions_requested"/>
|
||||
|
||||
@@ -13,34 +13,34 @@
|
||||
<header>
|
||||
<button name="action_validate_pdfa" string="Validate PDF/A"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': [('status', 'not in', ['draft','validated'])]}"/>
|
||||
invisible="status not in ['draft', 'validated']"/>
|
||||
<button name="action_open_portal" string="Open e-Filing Portal"
|
||||
type="object"
|
||||
attrs="{'invisible': [('status', 'in', ['accepted','rejected'])]}"/>
|
||||
invisible="status in ['accepted', 'rejected']"/>
|
||||
<button name="action_record_confirmation" string="Mark Submitted"
|
||||
type="object"
|
||||
attrs="{'invisible': [('status', 'not in', ['pending_manual','validated','failed'])]}"/>
|
||||
invisible="status not in ['pending_manual', 'validated', 'failed']"/>
|
||||
<button name="action_mark_accepted" string="Clerk Accepted"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': [('status', '!=', 'submitted')]}"/>
|
||||
invisible="status != 'submitted'"/>
|
||||
<button name="action_mark_rejected" string="Clerk Rejected"
|
||||
type="object"
|
||||
attrs="{'invisible': [('status', '!=', 'submitted')]}"/>
|
||||
invisible="status != 'submitted'"/>
|
||||
<button name="action_submit_api" string="Submit via API"
|
||||
type="object"
|
||||
groups="activeblue_familylaw.group_admin"
|
||||
attrs="{'invisible': [('status', 'in', ['accepted','rejected','submitted'])]}"/>
|
||||
invisible="status in ['accepted', 'rejected', 'submitted']"/>
|
||||
<field name="status" widget="statusbar"
|
||||
statusbar_visible="draft,validated,pending_manual,submitted,accepted"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': [('pdfa_valid', '=', False)]}">
|
||||
invisible="not pdfa_valid">
|
||||
<strong>✅ PDF/A:</strong>
|
||||
<field name="pdfa_message" readonly="1" nolabel="1" class="oe_inline"/>
|
||||
</div>
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': ['|', ('pdfa_valid', '=', True), ('pdfa_message', '=', False)]}">
|
||||
invisible="(pdfa_valid or not pdfa_message)">
|
||||
<strong>⚠️ PDF/A:</strong>
|
||||
<field name="pdfa_message" readonly="1" nolabel="1" class="oe_inline"/>
|
||||
</div>
|
||||
@@ -62,7 +62,7 @@
|
||||
</group>
|
||||
</group>
|
||||
<field name="error_message" readonly="1"
|
||||
attrs="{'invisible': [('error_message', '=', False)]}"/>
|
||||
invisible="not error_message"/>
|
||||
<separator string="Notes"/>
|
||||
<field name="notes" nolabel="1"
|
||||
placeholder="Clerk rejection reasons, filing remarks, etc."/>
|
||||
|
||||
@@ -10,26 +10,26 @@
|
||||
<header>
|
||||
<button name="action_submit" string="Submit to Clerk"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': [('state', '!=', 'draft')]}"/>
|
||||
invisible="state != 'draft'"/>
|
||||
<button name="action_approve" string="Approved"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'submitted')]}"
|
||||
invisible="state != 'submitted'"
|
||||
groups="activeblue_familylaw.group_admin"/>
|
||||
<button name="action_deny" string="Denied"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'submitted')]}"
|
||||
invisible="state != 'submitted'"
|
||||
groups="activeblue_familylaw.group_admin"/>
|
||||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': [('eligible', '=', False)]}">
|
||||
invisible="not eligible">
|
||||
<strong>✅ ELIGIBLE</strong> — <field name="eligibility_note" readonly="1" nolabel="1"/>
|
||||
<br/>This applicant may also qualify for a
|
||||
<strong>free county mediator</strong> under FL 44.108.
|
||||
</div>
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': [('eligible', '=', True)]}">
|
||||
invisible="eligible">
|
||||
<field name="eligibility_note" readonly="1" nolabel="1"/>
|
||||
</div>
|
||||
<group>
|
||||
@@ -51,11 +51,11 @@
|
||||
<field name="mediator_fee_waiver_eligible" readonly="1"/>
|
||||
</group>
|
||||
<group string="Outcome"
|
||||
attrs="{'invisible': [('state', 'in', ['draft', 'submitted'])]}">
|
||||
invisible="state in ['draft', 'submitted']">
|
||||
<field name="approval_date"
|
||||
attrs="{'invisible': [('state', '!=', 'approved')]}"/>
|
||||
invisible="state != 'approved'"/>
|
||||
<field name="denial_reason"
|
||||
attrs="{'invisible': [('state', '!=', 'denied')]}"/>
|
||||
invisible="state != 'denied'"/>
|
||||
</group>
|
||||
<field name="notes"/>
|
||||
</sheet>
|
||||
|
||||
@@ -41,37 +41,37 @@
|
||||
<header>
|
||||
<button name="action_mark_completed" string="Mark Completed"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': [('state', '!=', 'scheduled')]}"/>
|
||||
invisible="state != 'scheduled'"/>
|
||||
<button name="action_mark_continued" string="Mark Continued"
|
||||
type="object"
|
||||
attrs="{'invisible': [('state', '!=', 'scheduled')]}"/>
|
||||
invisible="state != 'scheduled'"/>
|
||||
<button name="action_cancel" string="Cancel Hearing"
|
||||
type="object" confirm="Cancel this hearing? This cannot be undone."
|
||||
attrs="{'invisible': [('state', 'not in', ['scheduled', 'continued'])]}"/>
|
||||
invisible="state not in ['scheduled', 'continued']"/>
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="scheduled,completed,cancelled,continued"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<!-- Outcome section — shown after completion -->
|
||||
<div class="alert alert-success" role="alert"
|
||||
attrs="{'invisible': [('state', '!=', 'completed')]}">
|
||||
invisible="state != 'completed'">
|
||||
<strong>✅ Hearing Completed</strong>
|
||||
<span attrs="{'invisible': [('outcome', '=', False)]}">
|
||||
<span invisible="not outcome">
|
||||
— <field name="outcome" readonly="1" nolabel="1"/>
|
||||
</span>
|
||||
<span attrs="{'invisible': [('outcome', '!=', False)]}">
|
||||
<span invisible="outcome">
|
||||
— Update the Outcome field below with the judge's ruling.
|
||||
</span>
|
||||
</div>
|
||||
<!-- Continued notice -->
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': [('state', '!=', 'continued')]}">
|
||||
invisible="state != 'continued'">
|
||||
<strong>⏸️ Hearing Continued</strong> — Contact the court for
|
||||
the rescheduled date and create a new hearing record.
|
||||
</div>
|
||||
<!-- Cancelled notice -->
|
||||
<div class="alert alert-danger" role="alert"
|
||||
attrs="{'invisible': [('state', '!=', 'cancelled')]}">
|
||||
invisible="state != 'cancelled'">
|
||||
<strong>❌ Hearing Cancelled</strong>
|
||||
</div>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<field name="courtroom"/>
|
||||
<field name="judge_id"/>
|
||||
<field name="calendar_event_id" readonly="1"
|
||||
attrs="{'invisible': [('calendar_event_id', '=', False)]}"/>
|
||||
invisible="not calendar_event_id"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
<!-- Outcome (visible after hearing) -->
|
||||
<group string="Outcome"
|
||||
attrs="{'invisible': [('state', 'not in', ['completed', 'continued'])]}">
|
||||
invisible="state not in ['completed', 'continued']">
|
||||
<field name="order_entered"/>
|
||||
<field name="outcome" placeholder="Describe the judge's ruling, any orders entered, next steps..."/>
|
||||
</group>
|
||||
|
||||
@@ -58,17 +58,17 @@
|
||||
<group>
|
||||
<field name="income_imputed"/>
|
||||
<field name="imputed_amount"
|
||||
attrs="{'invisible': [('income_imputed', '=', False)]}"/>
|
||||
invisible="not income_imputed"/>
|
||||
<field name="fl_minimum_wage_hourly"/>
|
||||
<field name="fl_minimum_wage_monthly" readonly="1"/>
|
||||
<field name="imputation_basis"
|
||||
attrs="{'invisible': [('income_imputed', '=', False)]}"/>
|
||||
invisible="not income_imputed"/>
|
||||
</group>
|
||||
<separator string="Lifestyle Analysis (Barner v. Barner)"/>
|
||||
<group>
|
||||
<field name="lifestyle_inconsistency_flag"/>
|
||||
<field name="lifestyle_notes"
|
||||
attrs="{'invisible': [('lifestyle_inconsistency_flag', '=', False)]}"/>
|
||||
invisible="not lifestyle_inconsistency_flag"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Service & SSN">
|
||||
@@ -77,7 +77,7 @@
|
||||
<field name="service_address"/>
|
||||
<field name="service_method"/>
|
||||
<field name="process_server_id"
|
||||
attrs="{'invisible': [('service_method', '!=', 'personal')]}"/>
|
||||
invisible="service_method != 'personal'"/>
|
||||
</group>
|
||||
<group string="SSN (FL-12.930(a))">
|
||||
<field name="ssn_last4"/>
|
||||
@@ -86,7 +86,7 @@
|
||||
</group>
|
||||
</group>
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': [('service_method', '!=', 'publication')]}">
|
||||
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.
|
||||
|
||||
@@ -87,11 +87,11 @@
|
||||
<group>
|
||||
<field name="deviation_requested"/>
|
||||
<field name="deviation_reason"
|
||||
attrs="{'invisible': [('deviation_requested', '=', False)]}"/>
|
||||
invisible="not deviation_requested"/>
|
||||
<field name="deviation_amount"
|
||||
attrs="{'invisible': [('deviation_requested', '=', False)]}"/>
|
||||
invisible="not deviation_requested"/>
|
||||
<field name="final_amount_with_deviation" readonly="1"
|
||||
attrs="{'invisible': [('deviation_requested', '=', False)]}"/>
|
||||
invisible="not deviation_requested"/>
|
||||
</group>
|
||||
|
||||
<separator string="Summary"/>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
</div>
|
||||
<div class="fl-deadline-date text-muted" style="font-size:0.85rem;">
|
||||
Filed: <t t-esc="case.filing_date or 'Pending'"/>
|
||||
| Case No.: <t t-esc="case.court_case_number or 'Pending'"/>
|
||||
 |  Case No.: <t t-esc="case.court_case_number or 'Pending'"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@@ -134,9 +134,9 @@
|
||||
<div class="fl-case-meta">
|
||||
<t t-esc="dict([('dissolution','Dissolution of Marriage'),('paternity','Paternity'),('child_support','Child Support'),('modification','Modification'),('injunction','Injunction / DV')]).get(case.case_type, case.case_type)"/>
|
||||
<t t-if="case.court_case_number">
|
||||
| Case No. <t t-esc="case.court_case_number"/>
|
||||
 | Case No. <t t-esc="case.court_case_number"/>
|
||||
</t>
|
||||
| Filed <t t-esc="case.filing_date or 'Pending'"/>
|
||||
 | Filed <t t-esc="case.filing_date or 'Pending'"/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@@ -148,7 +148,7 @@
|
||||
<!-- Stats row -->
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="fl-stat-card <t t-if='case.overdue_deadline_count'>danger</t>">
|
||||
<div t-attf-class="fl-stat-card #{'danger' if case.overdue_deadline_count else ''}">
|
||||
<div class="fl-stat-number"><t t-esc="case.overdue_deadline_count or 0"/></div>
|
||||
<div class="fl-stat-label">Overdue</div>
|
||||
</div>
|
||||
@@ -166,7 +166,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="fl-stat-card <t t-if='case.threshold_met'>success</t>">
|
||||
<div t-attf-class="fl-stat-card #{'success' if case.threshold_met else ''}">
|
||||
<div class="fl-stat-number" style="font-size:1.2rem;">
|
||||
<t t-if="case.threshold_met">✓ Met</t>
|
||||
<t t-else="">—</t>
|
||||
@@ -277,7 +277,7 @@
|
||||
<t t-esc="doc.document_type or 'Document'"/>
|
||||
</div>
|
||||
</div>
|
||||
<span class="fl-doc-badge <t t-if='doc.state == \"filed\"'>filed</t><t t-elif='doc.state == \"draft\"'>draft</t>">
|
||||
<span t-attf-class="fl-doc-badge #{'filed' if doc.state == 'filed' else 'draft' if doc.state == 'draft' else ''}">
|
||||
<t t-esc="(doc.state or 'draft').title()"/>
|
||||
</span>
|
||||
</a>
|
||||
@@ -294,7 +294,7 @@
|
||||
<strong><t t-esc="case.next_hearing.name"/></strong><br/>
|
||||
<t t-esc="case.next_hearing.hearing_date"/>
|
||||
<t t-if="case.next_hearing.location">
|
||||
| <t t-esc="case.next_hearing.location"/>
|
||||
 | <t t-esc="case.next_hearing.location"/>
|
||||
</t>
|
||||
<div class="mt-2" style="font-size:0.85rem;">
|
||||
<t t-if="case.next_hearing.parenting_class_warning">
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<!-- Hero -->
|
||||
<div class="text-center mb-5">
|
||||
<h1 style="color:#003366;" data-lang="en">Florida Family Law — Self-Help Portal</h1>
|
||||
<h1 style="color:#003366;" data-lang="es" style="display:none;">Portal de Autoayuda — Derecho de Familia de Florida</h1>
|
||||
<h1 style="color:#003366;display:none;" data-lang="es">Portal de Autoayuda — Derecho de Familia de Florida</h1>
|
||||
<p class="lead text-muted" data-lang="en">
|
||||
Free tools for pro se litigants in Miami-Dade County (11th Circuit).<br/>
|
||||
Child support modification, paternity, dissolution, and more.
|
||||
@@ -151,7 +151,7 @@
|
||||
|
||||
<!-- Header -->
|
||||
<h2 style="color:#003366;" class="mb-1" data-lang="en">Start Your Case</h2>
|
||||
<h2 style="color:#003366;" class="mb-1" data-lang="es" style="display:none;">Iniciar Su Caso</h2>
|
||||
<h2 style="color:#003366;display:none;" class="mb-1" data-lang="es">Iniciar Su Caso</h2>
|
||||
<p class="text-muted mb-4" data-lang="en">Fill in the information below. We'll help you generate the right court forms and track your deadlines.</p>
|
||||
<p class="text-muted mb-4" data-lang="es" style="display:none;">Complete la información a continuación. Le ayudaremos a generar los formularios judiciales correctos y rastrear sus fechas límite.</p>
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
<div class="alert alert-info" style="font-size:0.85rem;" data-lang="en">
|
||||
Use <strong>monthly net income</strong> (after taxes, FICA, and required deductions per FL 61.30(3)).
|
||||
</div>
|
||||
<div class="alert alert-info" style="font-size:0.85rem;" data-lang="es" style="display:none;">
|
||||
<div class="alert alert-info" style="font-size:0.85rem;display:none;" data-lang="es">
|
||||
Use el <strong>ingreso neto mensual</strong> (después de impuestos, FICA y deducciones requeridas por FL 61.30(3)).
|
||||
</div>
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
<div class="container mt-5 mb-5 text-center">
|
||||
<div style="font-size:3rem;">✅</div>
|
||||
<h2 style="color:#003366;" data-lang="en">Your Case Has Been Created!</h2>
|
||||
<h2 style="color:#003366;" data-lang="es" style="display:none;">¡Su Caso Ha Sido Creado!</h2>
|
||||
<h2 style="color:#003366;display:none;" data-lang="es">¡Su Caso Ha Sido Creado!</h2>
|
||||
<p class="lead" data-lang="en">
|
||||
Case <strong><t t-esc="case_name"/></strong> is now open.
|
||||
An email confirmation has been sent to <strong><t t-esc="petitioner_email"/></strong>.
|
||||
|
||||
Reference in New Issue
Block a user