feat: restructure market app with per-market URL scoping
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
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:
23
templates/_types/market/markets_listing.html
Normal file
23
templates/_types/market/markets_listing.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends '_types/root/_index.html' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="max-w-3xl mx-auto py-8 px-4">
|
||||
<h1 class="text-2xl font-bold mb-6">Markets</h1>
|
||||
|
||||
{% if markets %}
|
||||
<div class="grid gap-4">
|
||||
{% for m in markets %}
|
||||
<a href="/{{ m.slug }}/"
|
||||
class="block p-6 bg-white border border-stone-200 rounded-lg hover:border-stone-400 transition-colors">
|
||||
<h2 class="text-lg font-semibold">{{ m.name }}</h2>
|
||||
{% if m.description %}
|
||||
<p class="text-stone-600 mt-1">{{ m.description }}</p>
|
||||
{% endif %}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<p class="text-stone-500">No markets available.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user