diff --git a/lnbits/extensions/diagonalley/templates/diagonalley/index.html b/lnbits/extensions/diagonalley/templates/diagonalley/index.html
index a8062910..c951fb0a 100644
--- a/lnbits/extensions/diagonalley/templates/diagonalley/index.html
+++ b/lnbits/extensions/diagonalley/templates/diagonalley/index.html
@@ -1818,7 +1818,7 @@
this.getProducts()
this.getZones()
this.getOrders()
- this.getMarkets() // NOT YET IMPLEMENTED
+ this.getMarkets()
this.customerKeys = [
'cb4c0164fe03fcdadcbfb4f76611c71620790944c24f21a1cd119395cdedfe1b',
'a9c17358a6dc4ceb3bb4d883eb87967a66b3453a0f3199f0b1c8eef8070c6a07'
diff --git a/lnbits/extensions/diagonalley/templates/diagonalley/market.html b/lnbits/extensions/diagonalley/templates/diagonalley/market.html
new file mode 100644
index 00000000..b1a3ce88
--- /dev/null
+++ b/lnbits/extensions/diagonalley/templates/diagonalley/market.html
@@ -0,0 +1,419 @@
+{% extends "public.html" %} {% block page %}
+
+
+
+
+ {{ market.name }}
+
+
+
+
+
+
+
+
+
+ {% raw %}
+
+ {{ cart.size }}
+
+ {% endraw %}
+
+
+ {% raw %}
+
+
+ {{p.quantity}} x
+
+
+
+
+
+
+
+
+ {{ p.name }}
+
+
+
+ {{p.price}} sats
+
+
+ {% endraw %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% raw %}
+
+
+
+ Add to cart
+
+
+
+ {{ item.product }}
+
+
+
+
+
+
+
+
+
+ {{ item.price }} satsBTC {{ (item.price / 1e8).toFixed(8) }}
+ {{item.quantity}} left
+
+
+ {{cat}}
+
+
+
{{ item.description }}
+
+
+
+
+
+
+
+ View details
+
+
+ {% endraw %}
+
+
+
+
+
+
+
+
+
+
+ Select the shipping zone:
+
+
+
+
+ {% raw %} Total: {{ finalCost }} {% endraw %}
+
+
+ Checkout
+ Cancel
+
+
+
+
+
+
+
+
+
+
+
+ Copy invoice
+ Close
+
+
+
+
+{% endblock %} {% block scripts %}
+
+
+{% endblock %}
diff --git a/lnbits/extensions/diagonalley/views.py b/lnbits/extensions/diagonalley/views.py
index 5a94d993..4e1db476 100644
--- a/lnbits/extensions/diagonalley/views.py
+++ b/lnbits/extensions/diagonalley/views.py
@@ -13,6 +13,8 @@ from lnbits.extensions.diagonalley import diagonalley_ext, diagonalley_renderer
from ...core.crud import get_wallet
from .crud import (
+ get_diagonalley_market,
+ get_diagonalley_market_stalls,
get_diagonalley_products,
get_diagonalley_stall,
get_diagonalley_zone,
@@ -59,20 +61,25 @@ async def display(request: Request, stall_id):
)
-# @diagonalley_ext.get("/market/{market_id}", response_class=HTMLResponse)
-# async def display(request: Request, stall_id):
-# stalls = await get_diagonalley_stall(stall_id)
-# products = await get_diagonalley_products(stall_id)
+@diagonalley_ext.get("/market/{market_id}", response_class=HTMLResponse)
+async def display(request: Request, market_id):
+ market = await get_diagonalley_market(market_id)
+
+ if not market:
+ raise HTTPException(
+ status_code=HTTPStatus.NOT_FOUND, detail="Marketplace doesn't exist."
+ )
+
+ stalls = await get_diagonalley_market_stalls(market_id)
+ stalls_ids = [stall.id for stall in stalls]
+ products = [product.dict() for product in await get_diagonalley_products(stalls_ids)]
-# if not stall:
-# raise HTTPException(
-# status_code=HTTPStatus.NOT_FOUND, detail="Stall does not exist."
-# )
-# return diagonalley_renderer().TemplateResponse(
-# "diagonalley/stall.html",
-# {
-# "request": request,
-# "stall": stall.dict(),
-# "products": [product.dict() for product in products]
-# },
-# )
+ return diagonalley_renderer().TemplateResponse(
+ "diagonalley/market.html",
+ {
+ "request": request,
+ "market": market,
+ "stalls": [stall.dict() for stall in stalls],
+ "products": products
+ },
+ )