fix(fusion_claims): service-booking wizard scrolls + responsive + padded fields
Reported on the live wizard: no scroll on small screens, not responsive, fields look unpadded. - .o_service_booking: min-height:100% -> height:100% so the root is capped to the action area and overflow:auto scrolls INTERNALLY (min-height let it grow to content height, so the clipping action container never scrolled). - input/select/textarea.f: padding 10px 12px !important + line-height 1.4 so Odoo's backend input normalisation can't strip the field padding. - add a <=560px media query collapsing the .two/.three sub-grids, wrapping the time picker, and tightening margins (the main .grid already collapses at 780px). - bump version 19.0.9.4.0 -> 19.0.9.5.0 (asset cache-bust). Also harden scripts/verify_service_booking.sh: force-compile web.assets_backend + web.assets_web_dark on the clone after tests, so a broken SCSS fails the deploy gate BEFORE prod (a bad stylesheet would break the whole backend bundle; -u does not compile assets — Odoo compiles them lazily). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
'name': 'Fusion Claims',
|
'name': 'Fusion Claims',
|
||||||
'version': '19.0.9.4.0',
|
'version': '19.0.9.5.0',
|
||||||
'category': 'Sales',
|
'category': 'Sales',
|
||||||
'summary': 'Complete ADP Claims Management with Dashboard, Sales Integration, Billing Automation, and Two-Stage Verification.',
|
'summary': 'Complete ADP Claims Management with Dashboard, Sales Integration, Billing Automation, and Two-Stage Verification.',
|
||||||
'description': """
|
'description': """
|
||||||
|
|||||||
@@ -16,7 +16,10 @@
|
|||||||
color: var(--sb-text);
|
color: var(--sb-text);
|
||||||
font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, system-ui, sans-serif;
|
font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, system-ui, sans-serif;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
min-height: 100%;
|
// Fill the action area and scroll INTERNALLY. min-height let the root grow
|
||||||
|
// to its content height so the (clipping) action container never scrolled;
|
||||||
|
// height:100% caps it so overflow:auto engages on small screens.
|
||||||
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
|
||||||
* { box-sizing: border-box; }
|
* { box-sizing: border-box; }
|
||||||
@@ -65,6 +68,14 @@
|
|||||||
.body { padding: 20px 24px 6px; }
|
.body { padding: 20px 24px 6px; }
|
||||||
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
||||||
@media (max-width: 780px) { .grid { grid-template-columns: 1fr; } }
|
@media (max-width: 780px) { .grid { grid-template-columns: 1fr; } }
|
||||||
|
@media (max-width: 560px) {
|
||||||
|
.wrap { margin: 12px auto; padding: 0 10px; }
|
||||||
|
.body { padding: 14px 16px 4px; }
|
||||||
|
.topbar { padding: 14px 16px; }
|
||||||
|
.foot { padding: 14px 16px; flex-wrap: wrap; }
|
||||||
|
.two, .three { grid-template-columns: 1fr; }
|
||||||
|
.timepick { flex-wrap: wrap; }
|
||||||
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
background: var(--sb-card);
|
background: var(--sb-card);
|
||||||
@@ -109,8 +120,11 @@
|
|||||||
color: var(--sb-text);
|
color: var(--sb-text);
|
||||||
border: 1px solid var(--sb-field-border);
|
border: 1px solid var(--sb-field-border);
|
||||||
border-radius: 9px;
|
border-radius: 9px;
|
||||||
padding: 9px 11px;
|
// !important so Odoo's backend input normalisation can't strip the
|
||||||
|
// field padding inside a client action.
|
||||||
|
padding: 10px 12px !important;
|
||||||
font-size: 13.5px;
|
font-size: 13.5px;
|
||||||
|
line-height: 1.4;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
outline: none;
|
outline: none;
|
||||||
transition: border .15s, box-shadow .15s;
|
transition: border .15s, box-shadow .15s;
|
||||||
|
|||||||
@@ -140,6 +140,22 @@ else
|
|||||||
TESTS_OK=0; err "TESTS FAILED (exit $?)"; grep -E 'FAIL|ERROR|Traceback' "$LOG" | tail -40 || true
|
TESTS_OK=0; err "TESTS FAILED (exit $?)"; grep -E 'FAIL|ERROR|Traceback' "$LOG" | tail -40 || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Asset-bundle compile check: a broken SCSS/SASS breaks the ENTIRE
|
||||||
|
# web.assets_backend bundle (the whole backend UI for every user), and `-u` does
|
||||||
|
# NOT compile it — Odoo compiles assets lazily at request time. Force-compile
|
||||||
|
# both bundles here so a stylesheet error fails the gate BEFORE prod, not after.
|
||||||
|
# (CLAUDE.md asset cache-busting #3.)
|
||||||
|
if [[ "${TESTS_OK:-0}" == "1" ]]; then
|
||||||
|
c "Compile asset bundles on clone (catches SCSS errors)"
|
||||||
|
echo "env['ir.qweb']._get_asset_bundle('web.assets_backend').css(); env['ir.qweb']._get_asset_bundle('web.assets_web_dark').css(); print('ASSETS_COMPILED_OK')" \
|
||||||
|
| dexec -i "$APP" odoo shell -d "$CLONE_DB" --db_host db --db_port 5432 --db_user "$PGUSER" --db_password "$PGPW" --addons-path="$ADDONS_PATH" >>"$LOG" 2>&1 || true
|
||||||
|
if grep -q ASSETS_COMPILED_OK "$LOG"; then
|
||||||
|
ok "Asset bundles compiled OK"
|
||||||
|
else
|
||||||
|
TESTS_OK=0; err "ASSET COMPILE FAILED — see $LOG"; grep -iE 'error|scss|sass|Traceback' "$LOG" | tail -25 || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
c "VERIFY RESULT"
|
c "VERIFY RESULT"
|
||||||
if [[ "${TESTS_OK:-0}" == "1" ]]; then ok "✅ Clone-verify GREEN (full log: $LOG)"; else err "❌ Clone-verify RED (full log: $LOG)"; fi
|
if [[ "${TESTS_OK:-0}" == "1" ]]; then ok "✅ Clone-verify GREEN (full log: $LOG)"; else err "❌ Clone-verify RED (full log: $LOG)"; fi
|
||||||
|
|||||||
Reference in New Issue
Block a user