feat: restructure market app with per-market URL scoping
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s

- URL structure changes from /<route> to /<market_slug>/<route>
- Root / shows markets listing page
- app.py: url_value_preprocessor, url_defaults, hydrate_market (events app pattern)
- Browse queries (db_nav, db_products_nocounts, db_products_counts) accept market_id
- _productInfo reads g.market.id to scope all queries
- save_nav accepts market_id, sets on new NavTop rows
- API save_nav passes g.market.id
- Scraper default URLs point to /suma-market/ on port 8001

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-10 18:08:48 +00:00
parent 6a266bd94d
commit 9b2687b039
13 changed files with 224 additions and 48 deletions

View File

@@ -338,7 +338,9 @@ async def rediects():
@clear_cache(tag='browse')
async def save_nav():
data: Dict[str, Any] = await request.get_json(force=True, silent=False)
await _save_nav(g.s, data)
market = getattr(g, "market", None)
market_id = market.id if market else None
await _save_nav(g.s, data, market_id=market_id)
return {"ok": True}