diff --git a/app/main.py b/app/main.py index 1518195..b2ff2ef 100644 --- a/app/main.py +++ b/app/main.py @@ -113,7 +113,7 @@ def _page(filename): return _serve -for _stub in ("shop", "builder", "admin", "dash", "pos", "search", "records", "wantlist"): +for _stub in ("shop", "builder", "admin", "dash", "pos", "search", "records", "wantlist", "kiosk"): app.add_api_route(f"/{_stub}", _page(_stub + ".html"), methods=["GET"], include_in_schema=False) # public storefront release detail — release.html reads the id from the path app.add_api_route("/release/{release_id}", _page("release.html"), methods=["GET"], include_in_schema=False) diff --git a/app/shop_routes.py b/app/shop_routes.py index 2cedd69..245101c 100644 --- a/app/shop_routes.py +++ b/app/shop_routes.py @@ -136,8 +136,12 @@ async def shop_release(release_id: int, db=Depends(get_db)): SELECT position, title, duration FROM disc_release_track WHERE release_id=:r ORDER BY sequence NULLS LAST, position """), {"r": release_id})).mappings()] copies = [dict(r) for r in (await db.execute(text(""" - SELECT sku, price::float AS price, condition, sleeve_cond, product_url - FROM inventory WHERE release_id=:r AND in_stock AND store_id=1 ORDER BY price + SELECT i.sku, i.price::float AS price, i.condition, i.sleeve_cond, i.product_url, + c.label_text AS crate, r.name AS rack + FROM inventory i + LEFT JOIN virtual_crate c ON c.id = i.crate_id + LEFT JOIN virtual_rack r ON r.id = c.rack_id + WHERE i.release_id=:r AND i.in_stock AND i.store_id=1 ORDER BY i.price """), {"r": release_id})).mappings()] return {"release": dict(dr) if dr else None, "tracks": tracks, "copies": copies} diff --git a/site/kiosk.html b/site/kiosk.html new file mode 100644 index 0000000..5713171 --- /dev/null +++ b/site/kiosk.html @@ -0,0 +1,188 @@ + + +
+ + +