From 435c4acba68237cb81149d1736537225fd93f1a9 Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Fri, 3 Aug 2018 10:19:20 +0200 Subject: [PATCH 1/3] Widget: set default number to 1 if there is only one product --- src/pretix/presale/views/widget.py | 5 +++-- src/pretix/static/pretixpresale/js/widget/widget.js | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/pretix/presale/views/widget.py b/src/pretix/presale/views/widget.py index 5c559d9dd..f84ad5575 100644 --- a/src/pretix/presale/views/widget.py +++ b/src/pretix/presale/views/widget.py @@ -195,7 +195,7 @@ class WidgetAPIProductList(View): } for item in g ] }) - return grps, display_add_to_cart + return grps, display_add_to_cart, len(items) def dispatch(self, request, *args, **kwargs): self.subevent = None @@ -274,11 +274,12 @@ class WidgetAPIProductList(View): fail = True if not fail and (ev.presale_is_running or request.event.settings.show_items_outside_presale_period): - data['items_by_category'], data['display_add_to_cart'] = self._get_items() + data['items_by_category'], data['display_add_to_cart'], data['itemnum'] = self._get_items() data['display_add_to_cart'] = data['display_add_to_cart'] and ev.presale_is_running else: data['items_by_category'] = [] data['display_add_to_cart'] = False + data['itemnum'] = 0 vouchers_exist = self.request.event.get_cache().get('vouchers_exist') if vouchers_exist is None: diff --git a/src/pretix/static/pretixpresale/js/widget/widget.js b/src/pretix/static/pretixpresale/js/widget/widget.js index 3ef0b42b7..b00ca777a 100644 --- a/src/pretix/static/pretixpresale/js/widget/widget.js +++ b/src/pretix/static/pretixpresale/js/widget/widget.js @@ -150,7 +150,8 @@ Vue.component('availbox', { + '' + '' + '' + + ' :value="$root.itemnum == 1 ? 1 : false" v-bind:max="order_max" v-bind:name="input_name"' + + ' v-if="order_max !== 1">' + '' + ''), props: { @@ -705,7 +706,8 @@ var create_widget = function (element) { error_message: null, error_url_after: null, vouchers_exist: false, - cart_exists: false + cart_exists: false, + itemcount: 0 } }, created: function () { @@ -733,6 +735,7 @@ var create_widget = function (element) { app.cart_id = cart_id; app.cart_exists = data.cart_exists; app.vouchers_exist = data.vouchers_exist; + app.itemnum = data.itemnum; app.loading--; }, function (error) { app.categories = []; From 0cfcadf5facb2c01d7420504ab22988829b3dafe Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sun, 5 Aug 2018 12:52:00 +0200 Subject: [PATCH 2/3] Fix test cases --- src/tests/presale/test_widget.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tests/presale/test_widget.py b/src/tests/presale/test_widget.py index 49f48b9c8..d93944424 100644 --- a/src/tests/presale/test_widget.py +++ b/src/tests/presale/test_widget.py @@ -192,6 +192,7 @@ class WidgetCartTest(CartTestMixin, TestCase): "name": "Everything" } ], + "itemnum": 2, "display_add_to_cart": True, "cart_exists": False } @@ -234,6 +235,7 @@ class WidgetCartTest(CartTestMixin, TestCase): "name": "Everything" } ], + "itemnum": 1, "display_add_to_cart": True, "cart_exists": False } @@ -252,7 +254,8 @@ class WidgetCartTest(CartTestMixin, TestCase): "error": "This voucher is expired.", "items_by_category": [], "display_add_to_cart": False, - "cart_exists": False + "cart_exists": False, + "itemnum": 0, } def test_css_customized(self): From f15f0a6226a09cad8f9ed3e74692c20aa03dbf36 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sun, 5 Aug 2018 12:53:42 +0200 Subject: [PATCH 3/3] Update widget.js --- src/pretix/static/pretixpresale/js/widget/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/static/pretixpresale/js/widget/widget.js b/src/pretix/static/pretixpresale/js/widget/widget.js index b00ca777a..fdb39ab04 100644 --- a/src/pretix/static/pretixpresale/js/widget/widget.js +++ b/src/pretix/static/pretixpresale/js/widget/widget.js @@ -150,7 +150,7 @@ Vue.component('availbox', { + '' + '' + '' + '' + ''),