From f35a317e208c78962c2e136b3a87b221dfdd97c2 Mon Sep 17 00:00:00 2001 From: Martin Quarda Date: Mon, 14 Oct 2024 08:02:49 +0200 Subject: [PATCH] delete product --- alkatorapi/views.py | 10 ++++++++++ frontend/src/scripts/index.js | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/alkatorapi/views.py b/alkatorapi/views.py index 0e5ef09..fe58381 100644 --- a/alkatorapi/views.py +++ b/alkatorapi/views.py @@ -372,6 +372,16 @@ def cart_add(request): return HttpResponse('{"status":"success", "reason":"Úspěšně přidáno do košíku."}', status=200) +def cart_delete(request): + _id = request.GET['id'] + user = request.user + cart = user.cart + product = Product.objects.get(id=_id) + cart_product = CartProduct.objects.get(cart=cart, product=product) + cart_product.delete() + return HttpResponse('{"status":"success", "reason":"Úspěšně odstraněno z košíku."') + + def cart(request): user = request.user if not user.is_authenticated: diff --git a/frontend/src/scripts/index.js b/frontend/src/scripts/index.js index b0426d8..5aec667 100644 --- a/frontend/src/scripts/index.js +++ b/frontend/src/scripts/index.js @@ -174,6 +174,22 @@ class Main extends Component { } + deleteProduct(product){ + fetch(addr_prefix + "/api/cart/delete?id=" + product.id).then(resp => resp.json()).then(json=>{ + if(json.status == "failed"){ + this.setState({ + status_text: json.reason, + status: "failed", + }) + }else{ + this.setState({ + status_text: json.reason, + status: "success", + cart: this.state.cart.filter(p => product.id != p.id), + }) + } + }) + } render(){ let photos_gallery = []; let photos_carousel = []; @@ -275,6 +291,7 @@ class Main extends Component { Název Množství Cena + Smazat @@ -283,6 +300,7 @@ class Main extends Component { {product.name} {product.quantity} {product.price} Kč + )}