From 5cf21fcb8c91896bb2b889dd4a90cc0b2ef3e9e5 Mon Sep 17 00:00:00 2001 From: unwox Date: Mon, 13 Oct 2025 21:04:15 +0600 Subject: finishing touches for shop functionality --- pages/shop/_product/index.fnl | 2 +- pages/shop/cart/add.fnl | 3 ++- pages/shop/index.fnl | 6 +++--- pages/shop/order/index.fnl | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) (limited to 'pages') diff --git a/pages/shop/_product/index.fnl b/pages/shop/_product/index.fnl index f8b38f7..0dd5ff9 100644 --- a/pages/shop/_product/index.fnl +++ b/pages/shop/_product/index.fnl @@ -64,7 +64,7 @@ [:a {:href (.. "/shop/" product.name "/edit")} "% Редактировать"]]) "") - (templates.add-to-basket-form product "mb-0-5" redirect-url) + (templates.add-to-basket-form product basket "mb-0-5" redirect-url) (templates.product-overview product "mb-0-5") [:div {:class "mb-1" :style "font-style: italic;"} diff --git a/pages/shop/cart/add.fnl b/pages/shop/cart/add.fnl index 53366b4..b276608 100644 --- a/pages/shop/cart/add.fnl +++ b/pages/shop/cart/add.fnl @@ -19,7 +19,8 @@ (let [body-values (lib.parse-values request.body)] (if (and order-id request.body - (< 0 (tonumber body-values.quantity))) + (< 0 (tonumber body-values.quantity)) + (not (shop.in-basket? db order-id body-values.name))) (do (shop.create-order-line db order-id body-values.name body-values.quantity) diff --git a/pages/shop/index.fnl b/pages/shop/index.fnl index dff486c..da83114 100644 --- a/pages/shop/index.fnl +++ b/pages/shop/index.fnl @@ -31,7 +31,7 @@ where " ORDER BY products.position") []))) -(fn item-template [product] +(fn item-template [product basket] (local item-url (.. "/shop/" product.name)) (local images []) (for [i 2 5] @@ -61,7 +61,7 @@ [:a {:href item-url} [:h3 {:class "shop-item-title"} product.title]] [:div {:class "shop-item-price"} - (templates.add-to-basket-form product "" "/shop")] + (templates.add-to-basket-form product basket "" "/shop")] (templates.product-overview product "mb-0-25 font-size-0-875") [:div {} product.short-description]])) @@ -90,7 +90,7 @@ (if (< 0 (# products)) (table.concat (icollect [_ v (ipairs products)] - (item-template v))) + (item-template v basket))) (HTML [:em {} "Пока что здесь ничего нет!"])))]])]) (fn render [request db authenticated?] diff --git a/pages/shop/order/index.fnl b/pages/shop/order/index.fnl index 7d25a40..019b61a 100644 --- a/pages/shop/order/index.fnl +++ b/pages/shop/order/index.fnl @@ -8,11 +8,11 @@ [{:title "" :fields [ (forms.text-input "name" "Как к вам обращаться?" true) - (forms.text-input "contact" "Телеграм или E-mail для связи" true) + (forms.text-input "contact" "Telegram, Whatsapp или E-mail для связи" true) (forms.checkbox-input "correct-order" "Данные заказа верны" true) (forms.checkbox-input "consent" (.. - "Я даю согласие ИП «Горенкин Владислав Константинович» (ИНН ...)" + "Я даю согласие " ;; "ИП «Горенкин Владислав Константинович» (ИНН ...)") " на хранение и обработку предоставленных персональных данных для уточнения деталей заказа.") true)]}]) -- cgit v1.2.3