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:
2026-05-29 14:15:25 +00:00
parent 6f6129550e
commit 983964c6d2
18 changed files with 156 additions and 156 deletions

View File

@@ -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) &nbsp;&nbsp; [ ] Parent B (Respondent) &nbsp;&nbsp; [ ] Mediator/Arbitrator<br/>
For: [ ] Education &nbsp;&nbsp; [ ] Healthcare &nbsp;&nbsp; [ ] Religion &nbsp;&nbsp; [ ] Extracurricular
[ ] Parent A (Petitioner) &#160;&#160; [ ] Parent B (Respondent) &#160;&#160; [ ] Mediator/Arbitrator<br/>
For: [ ] Education &#160;&#160; [ ] Healthcare &#160;&#160; [ ] Religion &#160;&#160; [ ] 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 &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px; width: 25%;">Spring Break:</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px; width: 25%;">New Year's Day:</td><td style="padding: 3px; width: 25%;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
<td style="padding: 3px; width: 25%;">Spring Break:</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
</tr>
<tr>
<td style="padding: 3px;">Memorial Day:</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px;">Independence Day:</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px;">Memorial Day:</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
<td style="padding: 3px;">Independence Day:</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
</tr>
<tr>
<td style="padding: 3px;">Labor Day:</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px;">Thanksgiving:</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px;">Labor Day:</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
<td style="padding: 3px;">Thanksgiving:</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
</tr>
<tr>
<td style="padding: 3px;">Winter Break (1st half):</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px;">Winter Break (2nd half):</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Alt</td>
<td style="padding: 3px;">Winter Break (1st half):</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
<td style="padding: 3px;">Winter Break (2nd half):</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Alt</td>
</tr>
<tr>
<td style="padding: 3px;">Mother's Day:</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Mother</td>
<td style="padding: 3px;">Father's Day:</td><td style="padding: 3px;">[ ] A &nbsp; [ ] B &nbsp; [ ] Father</td>
<td style="padding: 3px;">Mother's Day:</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Mother</td>
<td style="padding: 3px;">Father's Day:</td><td style="padding: 3px;">[ ] A &#160; [ ] B &#160; [ ] Father</td>
</tr>
</table><br/>
<strong>3.3 School Year vs. Summer Schedule:</strong><br/>
School year primary residence: [ ] Parent A &nbsp;&nbsp; [ ] Parent B &nbsp;&nbsp; [ ] Same as regular<br/>
School year primary residence: [ ] Parent A &#160;&#160; [ ] Parent B &#160;&#160; [ ] 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 &nbsp;&nbsp; [ ] Video Call (FaceTime/Zoom) &nbsp;&nbsp; [ ] Text (with parental supervision)<br/>
Method: [ ] Phone &#160;&#160; [ ] Video Call (FaceTime/Zoom) &#160;&#160; [ ] 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 &nbsp;&nbsp; [ ] Neutral location: ________________________<br/>
Exchange location: [ ] School &#160;&#160; [ ] Neutral location: ________________________<br/>
[ ] Each parent provides transportation to their own home<br/>
[ ] Transporting parent: [ ] Parent A &nbsp;&nbsp; [ ] Parent B &nbsp;&nbsp; [ ] Alternate<br/>
[ ] Transporting parent: [ ] Parent A &#160;&#160; [ ] Parent B &#160;&#160; [ ] Alternate<br/>
Travel out of state: _____ days advance notice required, written consent or court order required for travel outside U.S.
</div>