From 3c903bad97b1a6cb799d02b791972498cc16fd72 Mon Sep 17 00:00:00 2001 From: Deeman Date: Fri, 20 Feb 2026 14:13:44 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20planner=20quote=20button=20=E2=80=94=20u?= =?UTF-8?q?se=20lang-prefixed=20URL=20to=20prevent=20404?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Get Supplier Quotes" CTA in planner.js used a hardcoded /leads/quote path which 404s because the route is registered at //leads/quote. Inject the correct URL server-side via window.__PADELNOMICS_QUOTE_URL__ using url_for, consistent with the existing __PADELNOMICS_CALC_URL__ / __PADELNOMICS_SAVE_URL__ pattern. Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 3 +++ padelnomics/src/padelnomics/planner/templates/planner.html | 1 + padelnomics/src/padelnomics/static/js/planner.js | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index afbbc78..8b0240e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +### Fixed +- Planner: "Get Supplier Quotes" button now navigates to the correct lang-prefixed URL (`/en/leads/quote` etc.) — hardcoded `/leads/quote` caused a 404 on prod; URL is now injected from the server via `window.__PADELNOMICS_QUOTE_URL__` + ### Added - Nav: hamburger menu on screens < 900px — clicking opens a full-width mobile panel with all nav links; overlay click and Escape key close it - Nav: mobile panel groups links under "Plan", "Explore", and "Account" section headers diff --git a/padelnomics/src/padelnomics/planner/templates/planner.html b/padelnomics/src/padelnomics/planner/templates/planner.html index 37d7761..45ee9b0 100644 --- a/padelnomics/src/padelnomics/planner/templates/planner.html +++ b/padelnomics/src/padelnomics/planner/templates/planner.html @@ -254,6 +254,7 @@ window.__PADELNOMICS_INITIAL_D__ = {{ initial_d | safe }}; window.__PADELNOMICS_CALC_URL__ = "{{ url_for('planner.calculate') }}"; window.__PADELNOMICS_SAVE_URL__ = "{{ url_for('planner.save_scenario') }}"; window.__PADELNOMICS_SCENARIO_URL__ = "{{ url_for('planner.index') }}scenarios/"; +window.__PADELNOMICS_QUOTE_URL__ = "{{ url_for('leads.quote_request') }}"; {% endblock %} diff --git a/padelnomics/src/padelnomics/static/js/planner.js b/padelnomics/src/padelnomics/static/js/planner.js index b770bf6..4a24001 100644 --- a/padelnomics/src/padelnomics/static/js/planner.js +++ b/padelnomics/src/padelnomics/static/js/planner.js @@ -819,7 +819,7 @@ function goToQuoteForm(){ country: S.country, }); if(S.budgetTarget) p.set('budget', S.budgetTarget); - window.location.href = '/leads/quote?' + p.toString(); + window.location.href = (window.__PADELNOMICS_QUOTE_URL__ || '/leads/quote') + '?' + p.toString(); } // ── Init ──────────────────────────────────────────────────