When we ship a JS-only fix, users with a long-lived tab keep running the old code until they hard-refresh — there is no clean way to push new code to an already-loaded page. Now /eskaera/check-status returns the module's installed_version as client_version, and the eskaera page embeds the same version in data-build-version on the cart container. The JS captures the page's build version at init; on every check-status response it compares them and triggers window.location. reload() on mismatch. A sessionStorage timestamp guards against reload loops if the versions stay disagreeing (cached HTML upstream). The version bump in __manifest__.py also invalidates the asset bundle URL hash, so even users without this signalling path get fresh JS on their next navigation. This is forward-looking: clients on the old JS (no check) still need one manual refresh today, but every future deploy will auto-recover. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| exceptions.py | ||
| portal.py | ||
| website_sale.py | ||
| website_sale_i18n.py | ||
| website_sale_pickup.py | ||
| website_sale_pricing.py | ||
| website_sale_products.py | ||
| website_sale_utils.py | ||
| website_sale_validators.py | ||