#!/usr/bin/env python3
"""Rewrite ux-gallery.html for both clients — all screens Ready."""
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
EDS = {
"file": ROOT / "proposals/eds-plumbing-and-sewer/mockup/ux-gallery.html",
"title": "Ed's Plumbing & Sewer — UX proposal gallery",
"hero_class": "hub-hero",
"h1": "Ed's Plumbing & Sewer — UX proposal",
"card_class": "hub-card",
"public_cards": """
Brand-forward landing with services and CTA. Company story and trust signals. Lead capture → portal lead + contact. Plumbing & sewer service index. Branded error page. Pre-launch holding page with notify-me. Hero, services, gallery, reviews, CTA. Bill’s story and trust (section on landing). Lead capture form → portal lead. Branded error page. Pre-launch holding page with notify-me. Current tips section on marketing home.Marketing home
About
Contact form
Services overview
404 not found
Under construction
Marketing home
About
Contact / estimate
404 not found
Under construction
Tips (landing teaser)
Click-through mocks for the public marketing site and Django client portal: leads, UTM analytics, and optional add-ons (email/SMS, direct mail, blog, Stripe payments, social, AI social).
Scope and interactive estimate.
What visitors see.
Private Django UI. UTM tracking included with every portal.
Client authentication.
ReadyNew leads, campaign health, add-on widgets.
ReadyStatuses, source attribution, filters.
ReadyNotes, UTM, linked contact.
ReadyLeads by source/campaign over time.
ReadyAdd-on. Required for payment notifications.
Contacts with per-channel consent.
ReadyCSV upload, mapping, consent defaults.
ReadyEmail or SMS — recipients, schedule, send.
ReadyOpens, clicks, bounces, unsubscribes.
ReadyOne-click and per-channel preference.
ReadyAdd-on. Postcards / print vendor handoff.
Sizes, media library, front/back preview.
ReadyRecipients, schedule, send.
ReadyAdd-on. Public posts + portal management.
Public post listing.
ReadySingle article view.
ReadyDraft / published management.
ReadyCreate and edit posts.
ReadyAdd-on. Requires Email & SMS.
Open / paid / past due list.
ReadyLine items, customer email, send.
ReadyStatus and payment history.
ReadyStripe checkout / confirmation.
ReadyAdd-ons. AI generator requires social consolidation (Ollama).
OAuth connect, health, disconnect.
ReadyLive FB / IG / LinkedIn previews.
ReadySchedule and queue.
ReadyOllama drafts → insert into composer.
ReadyMade by AI ML Operations, LLC
""" for cfg in (EDS, PTP): cfg["file"].write_text(gallery(cfg), encoding="utf-8") print("updated", cfg["file"])