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/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/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 ""
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 @@