From ad98cb0d45dd466e2009f5921f4d31dc1b18f14f Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Thu, 15 Sep 2022 15:51:12 +0100 Subject: [PATCH] marketplace html skeleton --- .../templates/diagonalley/index.html | 2 +- .../templates/diagonalley/market.html | 419 ++++++++++++++++++ lnbits/extensions/diagonalley/views.py | 39 +- 3 files changed, 443 insertions(+), 17 deletions(-) create mode 100644 lnbits/extensions/diagonalley/templates/diagonalley/market.html 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 + }, + )