From 1d04b85a6e1e6ef44086b03c6ffd375084e7878e Mon Sep 17 00:00:00 2001 From: thsh-odoo Date: Tue, 30 May 2023 05:12:26 +0000 Subject: [PATCH] [FIX] website_event: traceback on register button MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit How to reproduce the bug ======================== ​1.Open the register page of an event 2.Do not pick any ticket 3.Click Register => an traceback is raised Technical ========= '?.length > 0' statement was checking the length of the array instead of the values of the array. This issue comes after this https://github.com/odoo/odoo/pull/120437 After this commit: ================== Now the traceback will not raise. Task-3329432 closes odoo/odoo#126352 X-original-commit: 1c47606cf1cd56c4d0980c7419c508e37c90f58f Signed-off-by: Warnon Aurélien (awa) --- addons/website_event/static/src/js/website_event.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/website_event/static/src/js/website_event.js b/addons/website_event/static/src/js/website_event.js index 5c6ec58a648..eba11ce9028 100644 --- a/addons/website_event/static/src/js/website_event.js +++ b/addons/website_event/static/src/js/website_event.js @@ -44,8 +44,10 @@ var EventRegistrationForm = Widget.extend({ $('#registration_form select').each(function () { post[$(this).attr('name')] = $(this).val(); }); - var tickets_ordered = Object.values(post).map((value) => parseInt(value))?.length > 0; - if (!tickets_ordered) { + + // "post" looks like: { nb_register-9: "2", nb_register-10: "0" } + const noTicketsOrdered = Object.values(post).map((value) => parseInt(value)).every(value => value === 0); + if (noTicketsOrdered) { $('
') .text(_t('Please select at least one ticket.')) .insertAfter('#registration_form table');