{% extends "brickwork_marketing/shell/marketing.html" %} {% comment %} A public conversion flow: multi-step lead capture on the marketing shell. COPY THIS FILE into your project and edit it. It is not on the template loader path, so you cannot extend it (ADR-056). In practice you copy it once per step, or copy it once and vary the step content by template. What your view must supply: form this step's own form steps [{label, status}] where status is "complete" | "current" | "upcoming" conversion_state "ready" | "invalid" | "loading" | "error" | "success" footer_groups [{heading, links:[{label, href}]}] This is the marketing-family conversion archetype: a visitor requests a demo or a callback without entering the product. It is not app/onboarding.html (centred shell, account setup) and not auth/signup.html (create an account). Keep it on the marketing shell so the public chrome, footer and campaign CTAs stay visible. HOW THE FLOW WORKS, matching app/wizard.html: brickwork ships the progress indicator and nothing else. There is no client-side wizard state machine. Each step is an ordinary Django page at its own URL: /demo/request/ -> /demo/company/ -> /demo/confirm/ Each step POSTs to itself. On valid, your view saves and redirects to the next step. On invalid, it re-renders this step with the bound form. "Back" is a plain link to the previous URL. Your view computes each step's status; brickwork does not track it. States: conversion_state is the page's real branch. "ready": current step form + stepper. "invalid": bound form with field errors; same stepper position. "loading": submit in flight; primary button loading=True. "error": backend failed after validation; bw_alert danger above the form. "success": final confirmation (usually the last URL). No form; show the completed stepper and a success alert. Empty is not used: an abandoned flow is a redirect to step one, not a blank band. Accessibility: inherits shell/marketing.html's skip link and header/footer landmarks; the stepper is a native
Step 2 of 3. We use this to pick the right specialist, not to score a lead.