Compare commits
2 commits
62a1c4e1e9
...
33c148e6a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33c148e6a1 | ||
|
|
9bd48654fd |
6 changed files with 131 additions and 21 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 ""
|
||||
|
|
|
|||
|
|
@ -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 ""
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -666,7 +666,16 @@
|
|||
<t t-set="safe_uom_category" t-value="product_display_info.get(product.id, {}).get('safe_uom_category', '')" />
|
||||
<t t-set="quantity_step" t-value="product_display_info.get(product.id, {}).get('quantity_step', 1)" />
|
||||
<t t-set="order_id_safe" t-value="group_order.id if group_order else ''" />
|
||||
<form class="add-to-cart-form" t-attf-data-order-id="{{ order_id_safe }}" t-attf-data-product-id="{{ product.id }}" t-attf-data-product-name="{{ product.name }}" t-attf-data-product-price="{{ display_price }}" t-attf-data-uom-category="{{ safe_uom_category }}" t-attf-data-quantity-step="{{ quantity_step }}">
|
||||
<form
|
||||
class="add-to-cart-form"
|
||||
t-attf-data-order-id="{{ order_id_safe }}"
|
||||
t-attf-data-product-id="{{ product.id }}"
|
||||
t-attf-data-product-name="{{ product.name }}"
|
||||
t-attf-data-product-price="{{ display_price }}"
|
||||
t-attf-data-uom-category="{{ safe_uom_category }}"
|
||||
t-attf-data-quantity-step="{{ quantity_step }}"
|
||||
t-att-data-out-of-stock="'true' if product.is_out_of_stock else 'false'"
|
||||
>
|
||||
<div class="qty-control">
|
||||
<label t-attf-for="qty_{{ product.id }}" class="sr-only">Quantity of <t t-esc="product.name" />
|
||||
</label>
|
||||
|
|
@ -677,8 +686,14 @@
|
|||
<button class="qty-increase" type="button" t-attf-data-product-id="{{ product.id }}" aria-label="Increase quantity">
|
||||
<i class="fa fa-plus" />
|
||||
</button>
|
||||
<button class="add-to-cart-btn" type="button" t-attf-aria-label="{{ 'Add %s to cart' % product.name }}" t-attf-title="{{ 'Add %s to cart' % product.name }}">
|
||||
<i class="fa fa-shopping-cart" aria-hidden="true" />
|
||||
<button
|
||||
class="add-to-cart-btn"
|
||||
type="button"
|
||||
t-att-data-out-of-stock="'true' if product.is_out_of_stock else 'false'"
|
||||
t-attf-aria-label="{{ 'Out of stock' if product.is_out_of_stock else 'Add %s to cart' % product.name }}"
|
||||
t-attf-title="{{ 'Out of stock' if product.is_out_of_stock else 'Add %s to cart' % product.name }}"
|
||||
>
|
||||
<i t-attf-class="fa {{ 'fa-ban text-muted' if product.is_out_of_stock else 'fa-shopping-cart' }}" aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue