From 73d2077d6772ab819cdd624ee9f0be304a4a48be Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Fri, 2 Jun 2023 09:14:03 +0200 Subject: [PATCH] respect existing items in cart for order_min --- .../templates/pretixpresale/event/fragment_cart.html | 2 +- src/pretix/static/pretixpresale/js/ui/main.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html index 24210626a2..6291ed6314 100644 --- a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html +++ b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html @@ -21,7 +21,7 @@
{% for line in cart.positions %} -
+

{% if line.addon_to %} diff --git a/src/pretix/static/pretixpresale/js/ui/main.js b/src/pretix/static/pretixpresale/js/ui/main.js index 6b5d43229e..7982c1de8a 100644 --- a/src/pretix/static/pretixpresale/js/ui/main.js +++ b/src/pretix/static/pretixpresale/js/ui/main.js @@ -130,6 +130,12 @@ var form_handlers = function (el) { }).on("change", function(e) { var quantity = parseFloat(this.value) || 0; var itemOrderMin = parseFloat(this.getAttribute("data-min")) || 0; + if (itemOrderMin) { + document.querySelectorAll(".cart-row[data-item='"+this.id.substring(5)+"']").forEach(function(row) { + itemOrderMin -= (parseFloat(row.getAttribute("data-count")) || 1) + }); + if (itemOrderMin < 0) itemOrderMin = 0; + } if (quantity && quantity < itemOrderMin) { this.value = this.previousValue > quantity ? 0 : itemOrderMin; }