From 9bd48654fd6f5b3963cc164dcd8e0cded742be6f Mon Sep 17 00:00:00 2001 From: snt Date: Tue, 3 Mar 2026 15:24:01 +0100 Subject: [PATCH 1/2] [I18N] website_sale_aplicoop: Translate weekdays --- website_sale_aplicoop/controllers/portal.py | 33 ++++++++-------- website_sale_aplicoop/i18n/es.po | 42 +++++++++++++++++++++ website_sale_aplicoop/i18n/eu.po | 42 +++++++++++++++++++++ 3 files changed, 99 insertions(+), 18 deletions(-) diff --git a/website_sale_aplicoop/controllers/portal.py b/website_sale_aplicoop/controllers/portal.py index 1755a94..398ff32 100644 --- a/website_sale_aplicoop/controllers/portal.py +++ b/website_sale_aplicoop/controllers/portal.py @@ -14,6 +14,19 @@ _logger = logging.getLogger(__name__) class CustomerPortal(sale_portal.CustomerPortal): """Extend sale portal to include draft orders.""" + def _get_weekday_names(self): + """Return translated weekday names (Monday first, Sunday last).""" + _t = request.env._ + return [ + _t("Monday"), + _t("Tuesday"), + _t("Wednesday"), + _t("Thursday"), + _t("Friday"), + _t("Saturday"), + _t("Sunday"), + ] + def _prepare_orders_domain(self, partner): """Override to include draft and done orders.""" return [ @@ -35,15 +48,7 @@ class CustomerPortal(sale_portal.CustomerPortal): ) # Add translated day names for pickup_day display - values["day_names"] = [ - request.env._("Monday"), - request.env._("Tuesday"), - request.env._("Wednesday"), - request.env._("Thursday"), - request.env._("Friday"), - request.env._("Saturday"), - request.env._("Sunday"), - ] + values["day_names"] = self._get_weekday_names() request.session["my_orders_history"] = values["orders"].ids[:100] return request.render("sale.portal_my_orders", values) @@ -58,14 +63,6 @@ class CustomerPortal(sale_portal.CustomerPortal): # If it's a template render (not a redirect), add day_names to the context if hasattr(response, "qcontext"): - response.qcontext["day_names"] = [ - request.env._("Monday"), - request.env._("Tuesday"), - request.env._("Wednesday"), - request.env._("Thursday"), - request.env._("Friday"), - request.env._("Saturday"), - request.env._("Sunday"), - ] + response.qcontext["day_names"] = self._get_weekday_names() return response diff --git a/website_sale_aplicoop/i18n/es.po b/website_sale_aplicoop/i18n/es.po index 6930aa6..30bf9b8 100644 --- a/website_sale_aplicoop/i18n/es.po +++ b/website_sale_aplicoop/i18n/es.po @@ -13,6 +13,48 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Monday" +msgstr "Lunes" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Tuesday" +msgstr "Martes" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Wednesday" +msgstr "Miércoles" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Thursday" +msgstr "Jueves" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Friday" +msgstr "Viernes" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Saturday" +msgstr "Sábado" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Sunday" +msgstr "Domingo" + #. module: base #: model:ir.module.module,description:base.module_website_sale_aplicoop msgid "" diff --git a/website_sale_aplicoop/i18n/eu.po b/website_sale_aplicoop/i18n/eu.po index 5dc201b..60a7634 100644 --- a/website_sale_aplicoop/i18n/eu.po +++ b/website_sale_aplicoop/i18n/eu.po @@ -13,6 +13,48 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Monday" +msgstr "Astelehena" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Tuesday" +msgstr "Asteartea" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Wednesday" +msgstr "Asteazkena" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Thursday" +msgstr "Osteguna" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Friday" +msgstr "Ostirala" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Saturday" +msgstr "Larunbata" + +#. module: website_sale_aplicoop +#. odoo-python +#: code:addons/website_sale_aplicoop/controllers/portal.py:0 +msgid "Sunday" +msgstr "Igandea" + #. module: base #: model:ir.module.module,description:base.module_website_sale_aplicoop msgid "" From 33c148e6a153b6067bb93fe5b0d268dff7ac420a Mon Sep 17 00:00:00 2001 From: snt Date: Tue, 3 Mar 2026 15:30:43 +0100 Subject: [PATCH 2/2] [FIX] website_sale_aplicoop: block out-of-stock add --- .../controllers/website_sale.py | 1 + .../static/src/js/website_sale.js | 13 ++++++++++++ .../views/website_templates.xml | 21 ++++++++++++++++--- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/website_sale_aplicoop/controllers/website_sale.py b/website_sale_aplicoop/controllers/website_sale.py index e3fac6b..3d7a051 100644 --- a/website_sale_aplicoop/controllers/website_sale.py +++ b/website_sale_aplicoop/controllers/website_sale.py @@ -260,6 +260,7 @@ class AplicoopWebsiteSale(WebsiteSale): # ============ MISC ============ "items": env_lang._("items"), "added_to_cart": env_lang._("added to cart"), + "out_of_stock": env_lang._("Out of stock"), } return labels diff --git a/website_sale_aplicoop/static/src/js/website_sale.js b/website_sale_aplicoop/static/src/js/website_sale.js index 0acea67..9ccd9f7 100644 --- a/website_sale_aplicoop/static/src/js/website_sale.js +++ b/website_sale_aplicoop/static/src/js/website_sale.js @@ -792,6 +792,19 @@ var quantityInput = form.querySelector(".product-qty"); var quantity = quantityInput ? parseFloat(quantityInput.value) : 1; + // Block add-to-cart if product is flagged out of stock (from template) + var isOutOfStock = + (form.getAttribute("data-out-of-stock") || "false") === "true" || + (cartBtn.getAttribute("data-out-of-stock") || "false") === "true"; + if (isOutOfStock) { + var labels = self._getLabels(); + self._showNotification( + labels.out_of_stock || "Product is out of stock", + "warning" + ); + return; + } + console.log("Adding:", { productId: productId, productName: productName, diff --git a/website_sale_aplicoop/views/website_templates.xml b/website_sale_aplicoop/views/website_templates.xml index 9b3bd20..c5cdb78 100644 --- a/website_sale_aplicoop/views/website_templates.xml +++ b/website_sale_aplicoop/views/website_templates.xml @@ -666,7 +666,16 @@ -
+
@@ -677,8 +686,14 @@ -