From 664a0e4f29835a6caa8b3ea96c8e73b51c284808 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:22:10 +0000 Subject: [PATCH 1/2] Initial plan From 2e0ebdeeb2ae8abcf52819c70b4daabe0fd327df Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 9 Apr 2026 10:32:47 +0000 Subject: [PATCH 2/2] Fix stock display bug: invalidate Redis product cache on stock changes Agent-Logs-Url: https://github.com/dsaub/proyecto-final/sessions/96ec0a57-b92c-4200-be0c-c991880a939c Co-authored-by: dsaub <54474838+dsaub@users.noreply.github.com> --- tienda/views.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tienda/views.py b/tienda/views.py index da6bc5a..7b1b2b6 100644 --- a/tienda/views.py +++ b/tienda/views.py @@ -442,6 +442,8 @@ def _create_stock_reservation_for_cart(request: HttpRequest, cart_items, payment for item in cart_items ]) + cache.delete_many([f"product_{product_id}" for product_id in product_ids]) + return reservation, [] @@ -592,6 +594,7 @@ def create_order_from_cart(request, payment_method, payment_reference="", shippi product_row = product_map.get(item.product_id) product_row.stock -= item.quantity product_row.save(update_fields=["stock"]) + cache.delete(f"product_{product_row.id}") cart.items.all().delete() @@ -967,6 +970,7 @@ def editar_producto(request: HttpRequest, id: int): producto.primary_image = primary_image producto.save() + cache.delete(f"product_{producto.id}") if secondary_images_files: producto.secondary_images.clear() @@ -996,6 +1000,7 @@ def borrar_producto(request: HttpRequest, id: int): producto = get_object_or_404(Product, id=id, creator=request.user) nombre = producto.name + cache.delete(f"product_{producto.id}") producto.delete() messages.success(request, f"Producto '{nombre}' eliminado correctamente.") return redirect("mis_productos")