revert(sticker): restore previous layout — Notes needs full height for multi-line notes

Walk back the layout changes from d7bbeb4. Operators write multi-line
notes on these stickers (process tweaks, customer-specific reminders),
so trimming the Notes row to 10% broke a daily-use pattern.

Restored values:
  - header band 40% (was 44%)
  - body band 60% (was 56%), 7 equal rows at 14.28% each
  - QR wrap 380px (was 460px)
  - QR image 510px with -65px offset (was 620/-80px)
  - body font 38pt (was 44pt), muted 28pt (was 32pt)
  - removed per-row classes; single shared <tr> rule

Quiet quality keeper: QR is still GENERATED at 600x600 (was 300x300)
and DISPLAYED at 380px — so the printed image is now down-scaled
instead of up-scaled, which is sharper on thermal printers. No
visible layout change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-12 21:49:40 -04:00
parent d7bbeb49b7
commit 35bd50150e
2 changed files with 21 additions and 34 deletions

View File

@@ -3,7 +3,7 @@
# License OPL-1 (Odoo Proprietary License v1.0) # License OPL-1 (Odoo Proprietary License v1.0)
{ {
'name': 'Fusion Plating — Reports', 'name': 'Fusion Plating — Reports',
'version': '19.0.10.4.0', 'version': '19.0.10.4.1',
'category': 'Manufacturing/Plating', 'category': 'Manufacturing/Plating',
'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.', 'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.',
'depends': [ 'depends': [

View File

@@ -100,14 +100,11 @@
page-break-after: always; page-break-after: always;
page-break-inside: avoid; page-break-inside: avoid;
} }
/* ---- HEADER band — grew to 44% (was 40%) to fit a bigger QR /* ---- HEADER band — 40% to fit 2x WO# + logo + QR. */
for thermal-printer scan reliability. The body band is now
56% but each row stays roughly the same height because
we tightened the Notes row at the bottom. */
.fp-sticker-head-wrap { .fp-sticker-head-wrap {
position: absolute; position: absolute;
left: 0; right: 0; top: 0; left: 0; right: 0; top: 0;
height: 44%; height: 40%;
border-bottom: 2px solid #000; border-bottom: 2px solid #000;
box-sizing: border-box; box-sizing: border-box;
padding: 0; padding: 0;
@@ -174,32 +171,26 @@
render the image larger than the wrapper and offset it so render the image larger than the wrapper and offset it so
the wrapper clips that border out. ---------------------- */ the wrapper clips that border out. ---------------------- */
.fp-sticker-qr-wrap { .fp-sticker-qr-wrap {
width: 460px; width: 380px;
height: 460px; height: 380px;
display: inline-block; display: inline-block;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
.fp-sticker-qr { .fp-sticker-qr {
width: 620px; width: 510px;
height: 620px; height: 510px;
position: absolute; position: absolute;
top: -80px; top: -65px;
left: -80px; left: -65px;
margin: 0; margin: 0;
display: block; display: block;
} }
/* ---- BODY band — first 6 rows are equal-height; the /* ---- BODY band (7 rows, each 14.28% of the band) ---- */
final Notes row takes less. Header moved down to 44%
so this band is 56%; the row-height split below brings
the 6 main rows to ~9.4mm each (slightly more than the
old equal-split 8.7mm despite the smaller band). Notes
drops to ~6mm — enough for 1-2 lines of the bigger
text below. ---- */
.fp-sticker-body-wrap { .fp-sticker-body-wrap {
position: absolute; position: absolute;
left: 0; right: 0; left: 0; right: 0;
top: 44%; bottom: 0; top: 40%; bottom: 0;
} }
table.fp-sticker-body { table.fp-sticker-body {
width: 100%; width: 100%;
@@ -207,15 +198,14 @@
table-layout: fixed; table-layout: fixed;
border-collapse: collapse; border-collapse: collapse;
} }
table.fp-sticker-body tr.fp-sticker-row-main { height: 15%; } table.fp-sticker-body tr { height: 14.28%; }
table.fp-sticker-body tr.fp-sticker-row-notes { height: 10%; }
table.fp-sticker-body tr + tr td { border-top: 1px solid #000; } table.fp-sticker-body tr + tr td { border-top: 1px solid #000; }
col.fp-col-label { width: 32%; } col.fp-col-label { width: 32%; }
col.fp-col-value { width: 68%; } col.fp-col-value { width: 68%; }
table.fp-sticker-body td { table.fp-sticker-body td {
vertical-align: middle; vertical-align: middle;
padding: 0 14px; padding: 0 14px;
font-size: 44pt; font-size: 38pt;
line-height: 1.1; line-height: 1.1;
} }
td.fp-sticker-label { td.fp-sticker-label {
@@ -230,10 +220,7 @@
white-space: nowrap; white-space: nowrap;
} }
.fp-sticker-strong { font-weight: 700; } .fp-sticker-strong { font-weight: 700; }
.fp-sticker-muted { color: #555; font-size: 32pt; } .fp-sticker-muted { color: #555; font-size: 28pt; }
/* Notes row uses a slightly smaller font so 1-2 lines fit
in the trimmed-down height. -------------------------- */
tr.fp-sticker-row-notes td { font-size: 32pt; }
</style> </style>
<div class="fp-sticker"> <div class="fp-sticker">
@@ -285,7 +272,7 @@
<col class="fp-col-label"/> <col class="fp-col-label"/>
<col class="fp-col-value"/> <col class="fp-col-value"/>
</colgroup> </colgroup>
<tr class="fp-sticker-row-main"> <tr>
<td class="fp-sticker-label">PO (RO):</td> <td class="fp-sticker-label">PO (RO):</td>
<td class="fp-sticker-value"> <td class="fp-sticker-value">
<span class="fp-sticker-strong" <span class="fp-sticker-strong"
@@ -297,13 +284,13 @@
</t> </t>
</td> </td>
</tr> </tr>
<tr class="fp-sticker-row-main"> <tr>
<td class="fp-sticker-label">Customer:</td> <td class="fp-sticker-label">Customer:</td>
<td class="fp-sticker-value"> <td class="fp-sticker-value">
<span t-esc="_partner_name"/> <span t-esc="_partner_name"/>
</td> </td>
</tr> </tr>
<tr class="fp-sticker-row-main"> <tr>
<td class="fp-sticker-label">Process:</td> <td class="fp-sticker-label">Process:</td>
<td class="fp-sticker-value"> <td class="fp-sticker-value">
<t t-if="_process"> <t t-if="_process">
@@ -315,7 +302,7 @@
<t t-else="">-</t> <t t-else="">-</t>
</td> </td>
</tr> </tr>
<tr class="fp-sticker-row-main"> <tr>
<td class="fp-sticker-label">Part Number:</td> <td class="fp-sticker-label">Part Number:</td>
<td class="fp-sticker-value"> <td class="fp-sticker-value">
<t t-if="_part"> <t t-if="_part">
@@ -339,7 +326,7 @@
<t t-else="">-</t> <t t-else="">-</t>
</td> </td>
</tr> </tr>
<tr class="fp-sticker-row-main"> <tr>
<td class="fp-sticker-label">Due Date:</td> <td class="fp-sticker-label">Due Date:</td>
<td class="fp-sticker-value"> <td class="fp-sticker-value">
<t t-if="_due"> <t t-if="_due">
@@ -348,7 +335,7 @@
<t t-else="">-</t> <t t-else="">-</t>
</td> </td>
</tr> </tr>
<tr class="fp-sticker-row-main"> <tr>
<td class="fp-sticker-label">Qty:</td> <td class="fp-sticker-label">Qty:</td>
<td class="fp-sticker-value"> <td class="fp-sticker-value">
<span class="fp-sticker-strong"> <span class="fp-sticker-strong">
@@ -356,7 +343,7 @@
</span> </span>
</td> </td>
</tr> </tr>
<tr class="fp-sticker-row-notes"> <tr>
<td class="fp-sticker-label">Notes:</td> <td class="fp-sticker-label">Notes:</td>
<td class="fp-sticker-value"> <td class="fp-sticker-value">
<t t-esc="_internal_note"/> <t t-esc="_internal_note"/>