From b81b0951965b5d7200f05a7b6e1a0717a7005bc6 Mon Sep 17 00:00:00 2001
From: Ernesto Tejeda
Date: Wed, 23 Sep 2020 16:18:11 -0400
Subject: [PATCH 01/21] [ADD] website_sale_stock_provisioning_date: new module.
Show the future provisioning date closest to the current date
for a product in the eCommerce.
---
.../README.rst | 101 ++++
.../__init__.py | 2 +
.../__manifest__.py | 21 +
.../i18n/es.po | 55 +++
.../website_sale_stock_provisioning_date.pot | 44 ++
.../models/__init__.py | 3 +
.../models/product_product.py | 23 +
.../models/product_template.py | 41 ++
.../readme/CONTRIBUTORS.rst | 5 +
.../readme/DESCRIPTION.rst | 4 +
.../readme/USAGE.rst | 17 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 447 ++++++++++++++++++
.../website_sale_stock_provisioning_date.js | 15 +
...bsite_sale_stock_provisioning_date_tour.js | 39 ++
...ebsite_sale_stock_product_availability.xml | 16 +
.../tests/__init__.py | 2 +
...st_website_sale_stock_provisioning_date.py | 51 ++
.../views/assets.xml | 13 +
.../views/product_template_views.xml | 14 +
20 files changed, 913 insertions(+)
create mode 100644 website_sale_stock_provisioning_date/README.rst
create mode 100644 website_sale_stock_provisioning_date/__init__.py
create mode 100644 website_sale_stock_provisioning_date/__manifest__.py
create mode 100644 website_sale_stock_provisioning_date/i18n/es.po
create mode 100644 website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
create mode 100644 website_sale_stock_provisioning_date/models/__init__.py
create mode 100644 website_sale_stock_provisioning_date/models/product_product.py
create mode 100644 website_sale_stock_provisioning_date/models/product_template.py
create mode 100644 website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst
create mode 100644 website_sale_stock_provisioning_date/readme/DESCRIPTION.rst
create mode 100644 website_sale_stock_provisioning_date/readme/USAGE.rst
create mode 100644 website_sale_stock_provisioning_date/static/description/icon.png
create mode 100644 website_sale_stock_provisioning_date/static/description/index.html
create mode 100644 website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
create mode 100644 website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
create mode 100644 website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
create mode 100644 website_sale_stock_provisioning_date/tests/__init__.py
create mode 100644 website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py
create mode 100644 website_sale_stock_provisioning_date/views/assets.xml
create mode 100644 website_sale_stock_provisioning_date/views/product_template_views.xml
diff --git a/website_sale_stock_provisioning_date/README.rst b/website_sale_stock_provisioning_date/README.rst
new file mode 100644
index 0000000000..f90bab17af
--- /dev/null
+++ b/website_sale_stock_provisioning_date/README.rst
@@ -0,0 +1,101 @@
+====================================
+Website Sale Stock Provisioning Date
+====================================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github
+ :target: https://github.com/OCA/e-commerce/tree/12.0/website_sale_stock_provisioning_date
+ :alt: OCA/e-commerce
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/e-commerce-12-0/e-commerce-12-0-website_sale_stock_provisioning_date
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/113/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module extends the functionality of website to show you the
+future provisioning date closest to the current date for a product
+in the eCommerce.
+
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+To use this module, you need to:
+
+#. Go to *Sales > Products > Products*, create a new product or edit an
+ existing one.
+#. Check 'Show Next Provisioning Date' field under eCommerce tab.
+#. Go to Website Shop.
+#. Click on a product that have 'Show Next Provisioning Date' checked.
+#. If it is true for that product that
+ `'quantity on hand' - 'outgoing quantity' <= 0`,
+ then you will see the future provisioning date closest to
+ the current date for this product under the 'Add to Cart' button
+ (If there is such a date).
+
+Note: The closest future provisioning date is the date of the future
+stock movement and the closest to the current date. This can be
+generated after confirming a purchase order to receive the product on
+a date after the current date.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Tecnativa
+
+Contributors
+~~~~~~~~~~~~
+
+* `Tecnativa `_:
+
+ * Ernesto Tejeda
+ * Pedro M. Baeza
+ * Sergio Teruel
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+This module is part of the `OCA/e-commerce `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/website_sale_stock_provisioning_date/__init__.py b/website_sale_stock_provisioning_date/__init__.py
new file mode 100644
index 0000000000..3275ac2adf
--- /dev/null
+++ b/website_sale_stock_provisioning_date/__init__.py
@@ -0,0 +1,2 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from . import models
diff --git a/website_sale_stock_provisioning_date/__manifest__.py b/website_sale_stock_provisioning_date/__manifest__.py
new file mode 100644
index 0000000000..1404b23d34
--- /dev/null
+++ b/website_sale_stock_provisioning_date/__manifest__.py
@@ -0,0 +1,21 @@
+# Copyright 2020 Tecnativa - Ernesto Tejeda
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+{
+ 'name': 'Website Sale Stock Provisioning Date',
+ 'summary': 'Display provisioning date for a product in shop online',
+ 'version': '12.0.1.0.0',
+ 'development_status': 'Beta',
+ 'category': 'Website',
+ 'website': 'https://github.com/OCA/e-commerce',
+ 'author': 'Tecnativa, Odoo Community Association (OCA)',
+ 'license': 'AGPL-3',
+ 'application': False,
+ 'installable': True,
+ 'depends': [
+ 'website_sale_stock',
+ ],
+ 'data': [
+ 'views/assets.xml',
+ 'views/product_template_views.xml',
+ ],
+}
diff --git a/website_sale_stock_provisioning_date/i18n/es.po b/website_sale_stock_provisioning_date/i18n/es.po
new file mode 100644
index 0000000000..ef2bb4b338
--- /dev/null
+++ b/website_sale_stock_provisioning_date/i18n/es.po
@@ -0,0 +1,55 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * website_sale_stock_provisioning_date
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-23 20:14+0000\n"
+"PO-Revision-Date: 2020-09-23 16:17-0400\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+"X-Generator: Poedit 2.0.6\n"
+
+#. module: website_sale_stock_provisioning_date
+#. openerp-web
+#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:10
+#, python-format
+msgid "Next provisioning date:"
+msgstr "Fecha de aprovisionamiento:"
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model,name:website_sale_stock_provisioning_date.model_product_product
+msgid "Product"
+msgstr "Producto"
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model,name:website_sale_stock_provisioning_date.model_product_template
+msgid "Product Template"
+msgstr "Plantilla de producto"
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product__show_next_provisioning_date
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template__show_next_provisioning_date
+msgid "Show Next Provisioning Date"
+msgstr "Mostrar fecha de aprovisionamiento"
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model.fields,help:website_sale_stock_provisioning_date.field_product_product__show_next_provisioning_date
+#: model:ir.model.fields,help:website_sale_stock_provisioning_date.field_product_template__show_next_provisioning_date
+msgid ""
+"Shows the next provisioning date in the website shop if the product is out "
+"of stock. This option may not make sense if you don't select an "
+"'Availability' option that shows the inventory of the product in the website "
+"shop."
+msgstr ""
+"Muestra en la tienda online la fecha de aprovisionamiento prevista si el "
+"producto está sin existencias. Esta opción puede no tener sentido si usted "
+"no selecciona una opción de disponibilidad que muestre el inventario del "
+"producto en la tienda online."
diff --git a/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
new file mode 100644
index 0000000000..53e5ae50f9
--- /dev/null
+++ b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
@@ -0,0 +1,44 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * website_sale_stock_provisioning_date
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: website_sale_stock_provisioning_date
+#. openerp-web
+#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:10
+#, python-format
+msgid "Next provisioning date:"
+msgstr ""
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model,name:website_sale_stock_provisioning_date.model_product_product
+msgid "Product"
+msgstr ""
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model,name:website_sale_stock_provisioning_date.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product__show_next_provisioning_date
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template__show_next_provisioning_date
+msgid "Show Next Provisioning Date"
+msgstr ""
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model.fields,help:website_sale_stock_provisioning_date.field_product_product__show_next_provisioning_date
+#: model:ir.model.fields,help:website_sale_stock_provisioning_date.field_product_template__show_next_provisioning_date
+msgid "Shows the next provisioning date in the website shop if the product is out of stock. This option may not make sense if you don't select an 'Availability' option that shows the inventory of the product in the website shop."
+msgstr ""
+
diff --git a/website_sale_stock_provisioning_date/models/__init__.py b/website_sale_stock_provisioning_date/models/__init__.py
new file mode 100644
index 0000000000..4218bd2646
--- /dev/null
+++ b/website_sale_stock_provisioning_date/models/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from . import product_product
+from . import product_template
diff --git a/website_sale_stock_provisioning_date/models/product_product.py b/website_sale_stock_provisioning_date/models/product_product.py
new file mode 100644
index 0000000000..24f9a834cb
--- /dev/null
+++ b/website_sale_stock_provisioning_date/models/product_product.py
@@ -0,0 +1,23 @@
+# Copyright 2019 Tecnativa - Ernesto Tejeda
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from odoo import fields, models
+
+
+class ProductProduct(models.Model):
+ _inherit = 'product.product'
+
+ def _get_next_provisioning_date(self):
+ domain = [
+ ("company_id", "=", self.env.user.company_id.id),
+ ("product_id", "in", self.ids),
+ ("state", "not in", ["draft", "done", "cancel"]),
+ ("location_id.usage", "=", "supplier"),
+ ("location_dest_id.usage", "=", "internal"),
+ ("date_expected", ">=", fields.Datetime.now()),
+ ]
+ move = (
+ self.env["stock.move"]
+ .sudo()
+ .search(domain, order="date_expected", limit=1)
+ )
+ return move and move.date_expected.date() or False
diff --git a/website_sale_stock_provisioning_date/models/product_template.py b/website_sale_stock_provisioning_date/models/product_template.py
new file mode 100644
index 0000000000..5f5adbc955
--- /dev/null
+++ b/website_sale_stock_provisioning_date/models/product_template.py
@@ -0,0 +1,41 @@
+# Copyright 2019 Tecnativa - Ernesto Tejeda
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from odoo import api, fields, models
+
+
+class ProductTemplate(models.Model):
+ _inherit = 'product.template'
+
+ show_next_provisioning_date = fields.Boolean(
+ help="Shows the next provisioning date in the website shop "
+ "if the product is out of stock. This option may not make "
+ "sense if you don't select an 'Availability' option that "
+ "shows the inventory of the product in the website shop."
+ )
+
+ def _get_next_provisioning_date(self):
+ return self.product_variant_ids._get_next_provisioning_date()
+
+ @api.multi
+ def _get_combination_info(self, combination=False, product_id=False,
+ add_qty=1, pricelist=False,
+ parent_combination=False, only_template=False):
+ combination_info = super()._get_combination_info(
+ combination=combination,
+ product_id=product_id,
+ add_qty=add_qty,
+ pricelist=pricelist,
+ parent_combination=parent_combination,
+ only_template=only_template,
+ )
+ if combination_info['product_id']:
+ product = self.env['product.product'].sudo().browse(
+ combination_info['product_id'])
+ else:
+ product = self.sudo()
+ provisioning_date = False
+ if (product.show_next_provisioning_date
+ and product.qty_available - product.outgoing_qty <= 0):
+ provisioning_date = product._get_next_provisioning_date()
+ combination_info.update(provisioning_date=provisioning_date)
+ return combination_info
diff --git a/website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst b/website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst
new file mode 100644
index 0000000000..0c71102569
--- /dev/null
+++ b/website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst
@@ -0,0 +1,5 @@
+* `Tecnativa `_:
+
+ * Ernesto Tejeda
+ * Pedro M. Baeza
+ * Sergio Teruel
diff --git a/website_sale_stock_provisioning_date/readme/DESCRIPTION.rst b/website_sale_stock_provisioning_date/readme/DESCRIPTION.rst
new file mode 100644
index 0000000000..6e0e80d192
--- /dev/null
+++ b/website_sale_stock_provisioning_date/readme/DESCRIPTION.rst
@@ -0,0 +1,4 @@
+This module extends the functionality of website to show you the
+future provisioning date closest to the current date for a product
+in the eCommerce.
+
diff --git a/website_sale_stock_provisioning_date/readme/USAGE.rst b/website_sale_stock_provisioning_date/readme/USAGE.rst
new file mode 100644
index 0000000000..ba38632717
--- /dev/null
+++ b/website_sale_stock_provisioning_date/readme/USAGE.rst
@@ -0,0 +1,17 @@
+To use this module, you need to:
+
+#. Go to *Sales > Products > Products*, create a new product or edit an
+ existing one.
+#. Check 'Show Next Provisioning Date' field under eCommerce tab.
+#. Go to Website Shop.
+#. Click on a product that have 'Show Next Provisioning Date' checked.
+#. If it is true for that product that
+ `'quantity on hand' - 'outgoing quantity' <= 0`,
+ then you will see the future provisioning date closest to
+ the current date for this product under the 'Add to Cart' button
+ (If there is such a date).
+
+Note: The closest future provisioning date is the date of the future
+stock movement and the closest to the current date. This can be
+generated after confirming a purchase order to receive the product on
+a date after the current date.
diff --git a/website_sale_stock_provisioning_date/static/description/icon.png b/website_sale_stock_provisioning_date/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/website_sale_stock_provisioning_date/static/description/index.html b/website_sale_stock_provisioning_date/static/description/index.html
new file mode 100644
index 0000000000..8275f9e2c9
--- /dev/null
+++ b/website_sale_stock_provisioning_date/static/description/index.html
@@ -0,0 +1,447 @@
+
+
+
+
+
+
+Website Sale Stock Provisioning Date
+
+
+
+
+
Website Sale Stock Provisioning Date
+
+
+

+
This module extends the functionality of website to show you the
+future provisioning date closest to the current date for a product
+in the eCommerce.
+
Table of contents
+
+
+
+
To use this module, you need to:
+
+- Go to Sales > Products > Products, create a new product or edit an
+existing one.
+- Check ‘Show Next Provisioning Date’ field under eCommerce tab.
+- Go to Website Shop.
+- Click on a product that have ‘Show Next Provisioning Date’ checked.
+- If it is true for that product that
+‘quantity on hand’ - ‘outgoing quantity’ <= 0,
+then you will see the future provisioning date closest to
+the current date for this product under the ‘Add to Cart’ button
+(If there is such a date).
+
+
Note: The closest future provisioning date is the date of the future
+stock movement and the closest to the current date. This can be
+generated after confirming a purchase order to receive the product on
+a date after the current date.
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+- Tecnativa:
+- Ernesto Tejeda
+- Pedro M. Baeza
+- Sergio Teruel
+
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/e-commerce project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
new file mode 100644
index 0000000000..b5c0c25928
--- /dev/null
+++ b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
@@ -0,0 +1,15 @@
+/* Copyright 2020 Tecnativa - Ernesto Tejeda
+ * License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */
+odoo.define('website_sale_stock_provisioning_date.load', function (require) {
+ 'use strict';
+ var ajax = require('web.ajax');
+ var core = require('web.core');
+ var QWeb = core.qweb;
+ var load_xml = ajax.loadXML(
+ '/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml',
+ QWeb
+ );
+ load_xml.then(function() {
+ $('.oe_website_sale').find('input[name="add_qty"]').trigger('change');
+ });
+});
diff --git a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
new file mode 100644
index 0000000000..55561944b0
--- /dev/null
+++ b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
@@ -0,0 +1,39 @@
+/* Copyright 2020 Tecnativa - Ernesto Tejeda
+ * License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */
+odoo.define("website_sale_stock_provisioning_date.tour", function (require) {
+ "use strict";
+
+ var tour = require("web_tour.tour");
+ var base = require("web_editor.base");
+
+ var steps = [
+ {
+ content: "search provisioning date",
+ trigger: 'form input[name="search"]',
+ run: "text provisioning date",
+ },
+ {
+ content: "search provisioning date",
+ trigger: 'form:has(input[name="search"]) .oe_search_button',
+ },
+ {
+ content: "click on product test",
+ trigger: '.oe_product_cart a:contains("provisioning date")',
+ },
+ {
+ trigger: "a#add_to_cart",
+ extra_trigger: ".availability_messages:has(span:contains('Next provisioning date:'))",
+ },
+ ];
+ tour.register("website_sale_stock_provisioning_date",
+ {
+ url: "/shop",
+ test: true,
+ wait_for: base.ready(),
+ },
+ steps
+ );
+ return {
+ steps: steps,
+ };
+});
diff --git a/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml b/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
new file mode 100644
index 0000000000..36dc818de2
--- /dev/null
+++ b/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+ Next provisioning date:
+
+
+
+
+
diff --git a/website_sale_stock_provisioning_date/tests/__init__.py b/website_sale_stock_provisioning_date/tests/__init__.py
new file mode 100644
index 0000000000..871b1f4cdc
--- /dev/null
+++ b/website_sale_stock_provisioning_date/tests/__init__.py
@@ -0,0 +1,2 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from . import test_website_sale_stock_provisioning_date
diff --git a/website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py b/website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py
new file mode 100644
index 0000000000..84b7cd1bdf
--- /dev/null
+++ b/website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py
@@ -0,0 +1,51 @@
+# Copyright 2020 Tecnativa - Ernesto Tejeda
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from datetime import datetime, timedelta
+from odoo.tests.common import Form, HttpCase
+
+
+class WebsiteSaleStockProvisioningDate(HttpCase):
+
+ def setUp(self):
+ super().setUp()
+ product = self.env['product.product'].create({
+ 'name': 'product test - provisioning date',
+ 'type': 'product',
+ 'website_published': True,
+ 'show_next_provisioning_date': True,
+ })
+ incoming_picking_type = self.env['stock.picking.type'].search(
+ [
+ ('code', '=', 'incoming'),
+ '|',
+ ('warehouse_id.company_id', '=', self.env.user.company_id.id),
+ ('warehouse_id', '=', False)
+ ],
+ limit=1,
+ )
+ picking_form = Form(
+ recordp=self.env['stock.picking'].with_context(
+ default_picking_type_id=incoming_picking_type.id),
+ view="stock.view_picking_form",
+ )
+ with picking_form.move_ids_without_package.new() as move:
+ move.product_id = product
+ move.product_uom_qty = 10
+ picking = picking_form.save()
+ picking_form = Form(picking)
+ picking_form.scheduled_date = datetime.now() + timedelta(days=2)
+ picking = picking_form.save()
+ picking.action_confirm()
+
+ def test_ui_website(self):
+ """Test frontend tour."""
+ tour = (
+ "odoo.__DEBUG__.services['web_tour.tour']",
+ "website_sale_stock_provisioning_date",
+ )
+ self.browser_js(
+ url_path="/shop",
+ code="%s.run('%s')" % tour,
+ ready="%s.tours['%s'].ready" % tour,
+ login="admin"
+ )
diff --git a/website_sale_stock_provisioning_date/views/assets.xml b/website_sale_stock_provisioning_date/views/assets.xml
new file mode 100644
index 0000000000..4ad4cd6ac7
--- /dev/null
+++ b/website_sale_stock_provisioning_date/views/assets.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/website_sale_stock_provisioning_date/views/product_template_views.xml b/website_sale_stock_provisioning_date/views/product_template_views.xml
new file mode 100644
index 0000000000..cbd34af472
--- /dev/null
+++ b/website_sale_stock_provisioning_date/views/product_template_views.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ product.template
+
+
+
+
+
+
+
+
From 3958173e3f64f2ea48706064ecc9ee878e561477 Mon Sep 17 00:00:00 2001
From: Ernesto Tejeda
Date: Thu, 8 Apr 2021 12:29:31 -0400
Subject: [PATCH 02/21] [IMP] website_sale_stock_provisioning_date: black,
isort, prettier
---
.../__manifest__.py | 29 +++++++--------
.../models/product_product.py | 6 ++--
.../models/product_template.py | 35 ++++++++++++-------
.../readme/DESCRIPTION.rst | 1 -
.../website_sale_stock_provisioning_date.js | 16 +++++----
...bsite_sale_stock_provisioning_date_tour.js | 8 +++--
...ebsite_sale_stock_product_availability.xml | 12 +++++--
...st_website_sale_stock_provisioning_date.py | 33 +++++++++--------
.../views/assets.xml | 14 +++++---
.../views/product_template_views.xml | 9 +++--
10 files changed, 93 insertions(+), 70 deletions(-)
diff --git a/website_sale_stock_provisioning_date/__manifest__.py b/website_sale_stock_provisioning_date/__manifest__.py
index 1404b23d34..c75887dead 100644
--- a/website_sale_stock_provisioning_date/__manifest__.py
+++ b/website_sale_stock_provisioning_date/__manifest__.py
@@ -1,21 +1,16 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
- 'name': 'Website Sale Stock Provisioning Date',
- 'summary': 'Display provisioning date for a product in shop online',
- 'version': '12.0.1.0.0',
- 'development_status': 'Beta',
- 'category': 'Website',
- 'website': 'https://github.com/OCA/e-commerce',
- 'author': 'Tecnativa, Odoo Community Association (OCA)',
- 'license': 'AGPL-3',
- 'application': False,
- 'installable': True,
- 'depends': [
- 'website_sale_stock',
- ],
- 'data': [
- 'views/assets.xml',
- 'views/product_template_views.xml',
- ],
+ "name": "Website Sale Stock Provisioning Date",
+ "summary": "Display provisioning date for a product in shop online",
+ "version": "12.0.1.0.0",
+ "development_status": "Beta",
+ "category": "Website",
+ "website": "https://github.com/OCA/e-commerce",
+ "author": "Tecnativa, Odoo Community Association (OCA)",
+ "license": "AGPL-3",
+ "application": False,
+ "installable": True,
+ "depends": ["website_sale_stock",],
+ "data": ["views/assets.xml", "views/product_template_views.xml",],
}
diff --git a/website_sale_stock_provisioning_date/models/product_product.py b/website_sale_stock_provisioning_date/models/product_product.py
index 24f9a834cb..8a0d88d493 100644
--- a/website_sale_stock_provisioning_date/models/product_product.py
+++ b/website_sale_stock_provisioning_date/models/product_product.py
@@ -4,7 +4,7 @@
class ProductProduct(models.Model):
- _inherit = 'product.product'
+ _inherit = "product.product"
def _get_next_provisioning_date(self):
domain = [
@@ -16,8 +16,6 @@ def _get_next_provisioning_date(self):
("date_expected", ">=", fields.Datetime.now()),
]
move = (
- self.env["stock.move"]
- .sudo()
- .search(domain, order="date_expected", limit=1)
+ self.env["stock.move"].sudo().search(domain, order="date_expected", limit=1)
)
return move and move.date_expected.date() or False
diff --git a/website_sale_stock_provisioning_date/models/product_template.py b/website_sale_stock_provisioning_date/models/product_template.py
index 5f5adbc955..0d19816ba8 100644
--- a/website_sale_stock_provisioning_date/models/product_template.py
+++ b/website_sale_stock_provisioning_date/models/product_template.py
@@ -4,22 +4,28 @@
class ProductTemplate(models.Model):
- _inherit = 'product.template'
+ _inherit = "product.template"
show_next_provisioning_date = fields.Boolean(
help="Shows the next provisioning date in the website shop "
- "if the product is out of stock. This option may not make "
- "sense if you don't select an 'Availability' option that "
- "shows the inventory of the product in the website shop."
+ "if the product is out of stock. This option may not make "
+ "sense if you don't select an 'Availability' option that "
+ "shows the inventory of the product in the website shop."
)
def _get_next_provisioning_date(self):
return self.product_variant_ids._get_next_provisioning_date()
@api.multi
- def _get_combination_info(self, combination=False, product_id=False,
- add_qty=1, pricelist=False,
- parent_combination=False, only_template=False):
+ def _get_combination_info(
+ self,
+ combination=False,
+ product_id=False,
+ add_qty=1,
+ pricelist=False,
+ parent_combination=False,
+ only_template=False,
+ ):
combination_info = super()._get_combination_info(
combination=combination,
product_id=product_id,
@@ -28,14 +34,19 @@ def _get_combination_info(self, combination=False, product_id=False,
parent_combination=parent_combination,
only_template=only_template,
)
- if combination_info['product_id']:
- product = self.env['product.product'].sudo().browse(
- combination_info['product_id'])
+ if combination_info["product_id"]:
+ product = (
+ self.env["product.product"]
+ .sudo()
+ .browse(combination_info["product_id"])
+ )
else:
product = self.sudo()
provisioning_date = False
- if (product.show_next_provisioning_date
- and product.qty_available - product.outgoing_qty <= 0):
+ if (
+ product.show_next_provisioning_date
+ and product.qty_available - product.outgoing_qty <= 0
+ ):
provisioning_date = product._get_next_provisioning_date()
combination_info.update(provisioning_date=provisioning_date)
return combination_info
diff --git a/website_sale_stock_provisioning_date/readme/DESCRIPTION.rst b/website_sale_stock_provisioning_date/readme/DESCRIPTION.rst
index 6e0e80d192..d4f76b6486 100644
--- a/website_sale_stock_provisioning_date/readme/DESCRIPTION.rst
+++ b/website_sale_stock_provisioning_date/readme/DESCRIPTION.rst
@@ -1,4 +1,3 @@
This module extends the functionality of website to show you the
future provisioning date closest to the current date for a product
in the eCommerce.
-
diff --git a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
index b5c0c25928..258790e4bf 100644
--- a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
+++ b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
@@ -1,15 +1,17 @@
/* Copyright 2020 Tecnativa - Ernesto Tejeda
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */
-odoo.define('website_sale_stock_provisioning_date.load', function (require) {
- 'use strict';
- var ajax = require('web.ajax');
- var core = require('web.core');
+odoo.define("website_sale_stock_provisioning_date.load", function(require) {
+ "use strict";
+ var ajax = require("web.ajax");
+ var core = require("web.core");
var QWeb = core.qweb;
var load_xml = ajax.loadXML(
- '/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml',
- QWeb
+ "/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml",
+ QWeb
);
load_xml.then(function() {
- $('.oe_website_sale').find('input[name="add_qty"]').trigger('change');
+ $(".oe_website_sale")
+ .find('input[name="add_qty"]')
+ .trigger("change");
});
});
diff --git a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
index 55561944b0..8a5b5030e0 100644
--- a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
+++ b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
@@ -1,6 +1,6 @@
/* Copyright 2020 Tecnativa - Ernesto Tejeda
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */
-odoo.define("website_sale_stock_provisioning_date.tour", function (require) {
+odoo.define("website_sale_stock_provisioning_date.tour", function(require) {
"use strict";
var tour = require("web_tour.tour");
@@ -22,10 +22,12 @@ odoo.define("website_sale_stock_provisioning_date.tour", function (require) {
},
{
trigger: "a#add_to_cart",
- extra_trigger: ".availability_messages:has(span:contains('Next provisioning date:'))",
+ extra_trigger:
+ ".availability_messages:has(span:contains('Next provisioning date:'))",
},
];
- tour.register("website_sale_stock_provisioning_date",
+ tour.register(
+ "website_sale_stock_provisioning_date",
{
url: "/shop",
test: true,
diff --git a/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml b/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
index 36dc818de2..ec6dce8573 100644
--- a/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
+++ b/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
@@ -1,12 +1,18 @@
-
+
-
+
-
+
Next provisioning date:
diff --git a/website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py b/website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py
index 84b7cd1bdf..1ca258bd06 100644
--- a/website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py
+++ b/website_sale_stock_provisioning_date/tests/test_website_sale_stock_provisioning_date.py
@@ -1,31 +1,34 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from datetime import datetime, timedelta
+
from odoo.tests.common import Form, HttpCase
class WebsiteSaleStockProvisioningDate(HttpCase):
-
def setUp(self):
super().setUp()
- product = self.env['product.product'].create({
- 'name': 'product test - provisioning date',
- 'type': 'product',
- 'website_published': True,
- 'show_next_provisioning_date': True,
- })
- incoming_picking_type = self.env['stock.picking.type'].search(
+ product = self.env["product.product"].create(
+ {
+ "name": "product test - provisioning date",
+ "type": "product",
+ "website_published": True,
+ "show_next_provisioning_date": True,
+ }
+ )
+ incoming_picking_type = self.env["stock.picking.type"].search(
[
- ('code', '=', 'incoming'),
- '|',
- ('warehouse_id.company_id', '=', self.env.user.company_id.id),
- ('warehouse_id', '=', False)
+ ("code", "=", "incoming"),
+ "|",
+ ("warehouse_id.company_id", "=", self.env.user.company_id.id),
+ ("warehouse_id", "=", False),
],
limit=1,
)
picking_form = Form(
- recordp=self.env['stock.picking'].with_context(
- default_picking_type_id=incoming_picking_type.id),
+ recordp=self.env["stock.picking"].with_context(
+ default_picking_type_id=incoming_picking_type.id
+ ),
view="stock.view_picking_form",
)
with picking_form.move_ids_without_package.new() as move:
@@ -47,5 +50,5 @@ def test_ui_website(self):
url_path="/shop",
code="%s.run('%s')" % tour,
ready="%s.tours['%s'].ready" % tour,
- login="admin"
+ login="admin",
)
diff --git a/website_sale_stock_provisioning_date/views/assets.xml b/website_sale_stock_provisioning_date/views/assets.xml
index 4ad4cd6ac7..135e69c271 100644
--- a/website_sale_stock_provisioning_date/views/assets.xml
+++ b/website_sale_stock_provisioning_date/views/assets.xml
@@ -1,13 +1,17 @@
-
+
-
-
+
+
diff --git a/website_sale_stock_provisioning_date/views/product_template_views.xml b/website_sale_stock_provisioning_date/views/product_template_views.xml
index cbd34af472..fc854e7e32 100644
--- a/website_sale_stock_provisioning_date/views/product_template_views.xml
+++ b/website_sale_stock_provisioning_date/views/product_template_views.xml
@@ -1,13 +1,16 @@
-
+
product.template
-
+
-
+
From 21d5d135a4c6a54b337d2ec7218c26bd7b41f81e Mon Sep 17 00:00:00 2001
From: Ernesto Tejeda
Date: Thu, 8 Apr 2021 12:31:50 -0400
Subject: [PATCH 03/21] [MIG] website_sale_stock_provisioning_date: Migration
to 13.0
---
website_sale_stock_provisioning_date/README.rst | 11 +++++------
.../__manifest__.py | 6 +++---
website_sale_stock_provisioning_date/i18n/es.po | 2 +-
.../i18n/website_sale_stock_provisioning_date.pot | 15 +++++++++------
.../models/product_product.py | 4 ++--
.../models/product_template.py | 11 ++++++-----
.../static/description/index.html | 6 +++---
7 files changed, 29 insertions(+), 26 deletions(-)
diff --git a/website_sale_stock_provisioning_date/README.rst b/website_sale_stock_provisioning_date/README.rst
index f90bab17af..3e073ed0e7 100644
--- a/website_sale_stock_provisioning_date/README.rst
+++ b/website_sale_stock_provisioning_date/README.rst
@@ -14,13 +14,13 @@ Website Sale Stock Provisioning Date
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github
- :target: https://github.com/OCA/e-commerce/tree/12.0/website_sale_stock_provisioning_date
+ :target: https://github.com/OCA/e-commerce/tree/13.0/website_sale_stock_provisioning_date
:alt: OCA/e-commerce
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/e-commerce-12-0/e-commerce-12-0-website_sale_stock_provisioning_date
+ :target: https://translation.odoo-community.org/projects/e-commerce-13-0/e-commerce-13-0-website_sale_stock_provisioning_date
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/113/12.0
+ :target: https://runbot.odoo-community.org/runbot/113/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -29,7 +29,6 @@ This module extends the functionality of website to show you the
future provisioning date closest to the current date for a product
in the eCommerce.
-
**Table of contents**
.. contents::
@@ -62,7 +61,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -96,6 +95,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/e-commerce `_ project on GitHub.
+This module is part of the `OCA/e-commerce `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/website_sale_stock_provisioning_date/__manifest__.py b/website_sale_stock_provisioning_date/__manifest__.py
index c75887dead..f43e167177 100644
--- a/website_sale_stock_provisioning_date/__manifest__.py
+++ b/website_sale_stock_provisioning_date/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Website Sale Stock Provisioning Date",
"summary": "Display provisioning date for a product in shop online",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"development_status": "Beta",
"category": "Website",
"website": "https://github.com/OCA/e-commerce",
@@ -11,6 +11,6 @@
"license": "AGPL-3",
"application": False,
"installable": True,
- "depends": ["website_sale_stock",],
- "data": ["views/assets.xml", "views/product_template_views.xml",],
+ "depends": ["website_sale_stock"],
+ "data": ["views/assets.xml", "views/product_template_views.xml"],
}
diff --git a/website_sale_stock_provisioning_date/i18n/es.po b/website_sale_stock_provisioning_date/i18n/es.po
index ef2bb4b338..d422a1dda6 100644
--- a/website_sale_stock_provisioning_date/i18n/es.po
+++ b/website_sale_stock_provisioning_date/i18n/es.po
@@ -19,7 +19,7 @@ msgstr ""
#. module: website_sale_stock_provisioning_date
#. openerp-web
-#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:10
+#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:0
#, python-format
msgid "Next provisioning date:"
msgstr "Fecha de aprovisionamiento:"
diff --git a/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
index 53e5ae50f9..c603fc0b97 100644
--- a/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
+++ b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * website_sale_stock_provisioning_date
+# * website_sale_stock_provisioning_date
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -15,7 +15,7 @@ msgstr ""
#. module: website_sale_stock_provisioning_date
#. openerp-web
-#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:10
+#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:0
#, python-format
msgid "Next provisioning date:"
msgstr ""
@@ -39,6 +39,9 @@ msgstr ""
#. module: website_sale_stock_provisioning_date
#: model:ir.model.fields,help:website_sale_stock_provisioning_date.field_product_product__show_next_provisioning_date
#: model:ir.model.fields,help:website_sale_stock_provisioning_date.field_product_template__show_next_provisioning_date
-msgid "Shows the next provisioning date in the website shop if the product is out of stock. This option may not make sense if you don't select an 'Availability' option that shows the inventory of the product in the website shop."
+msgid ""
+"Shows the next provisioning date in the website shop if the product is out "
+"of stock. This option may not make sense if you don't select an "
+"'Availability' option that shows the inventory of the product in the website"
+" shop."
msgstr ""
-
diff --git a/website_sale_stock_provisioning_date/models/product_product.py b/website_sale_stock_provisioning_date/models/product_product.py
index 8a0d88d493..e5a0fa6208 100644
--- a/website_sale_stock_provisioning_date/models/product_product.py
+++ b/website_sale_stock_provisioning_date/models/product_product.py
@@ -6,9 +6,9 @@
class ProductProduct(models.Model):
_inherit = "product.product"
- def _get_next_provisioning_date(self):
+ def _get_next_provisioning_date(self, company):
domain = [
- ("company_id", "=", self.env.user.company_id.id),
+ ("company_id", "=", company.id),
("product_id", "in", self.ids),
("state", "not in", ["draft", "done", "cancel"]),
("location_id.usage", "=", "supplier"),
diff --git a/website_sale_stock_provisioning_date/models/product_template.py b/website_sale_stock_provisioning_date/models/product_template.py
index 0d19816ba8..2ae274275c 100644
--- a/website_sale_stock_provisioning_date/models/product_template.py
+++ b/website_sale_stock_provisioning_date/models/product_template.py
@@ -1,6 +1,6 @@
# Copyright 2019 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-from odoo import api, fields, models
+from odoo import fields, models
class ProductTemplate(models.Model):
@@ -13,10 +13,9 @@ class ProductTemplate(models.Model):
"shows the inventory of the product in the website shop."
)
- def _get_next_provisioning_date(self):
- return self.product_variant_ids._get_next_provisioning_date()
+ def _get_next_provisioning_date(self, company):
+ return self.product_variant_ids._get_next_provisioning_date(company)
- @api.multi
def _get_combination_info(
self,
combination=False,
@@ -47,6 +46,8 @@ def _get_combination_info(
product.show_next_provisioning_date
and product.qty_available - product.outgoing_qty <= 0
):
- provisioning_date = product._get_next_provisioning_date()
+ website_id = self.env.context.get("website_id")
+ company = self.env["website"].browse(website_id).company_id
+ provisioning_date = product._get_next_provisioning_date(company)
combination_info.update(provisioning_date=provisioning_date)
return combination_info
diff --git a/website_sale_stock_provisioning_date/static/description/index.html b/website_sale_stock_provisioning_date/static/description/index.html
index 8275f9e2c9..dbccbafeb4 100644
--- a/website_sale_stock_provisioning_date/static/description/index.html
+++ b/website_sale_stock_provisioning_date/static/description/index.html
@@ -367,7 +367,7 @@ Website Sale Stock Provisioning Date
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module extends the functionality of website to show you the
future provisioning date closest to the current date for a product
in the eCommerce.
@@ -409,7 +409,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -438,7 +438,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/e-commerce project on GitHub.
+
This module is part of the OCA/e-commerce project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From 3bd2b2a59f1c00bbd2da199b86e3adffa9ca1118 Mon Sep 17 00:00:00 2001
From: miguels73 <55379877+miguels73@users.noreply.github.com>
Date: Tue, 27 Jul 2021 12:17:54 +0200
Subject: [PATCH 04/21] [IMP] website_sale_stock_provisioning_date: black,
isort, prettier
---
.../static/src/js/website_sale_stock_provisioning_date.js | 8 +++-----
.../src/js/website_sale_stock_provisioning_date_tour.js | 2 +-
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
index 258790e4bf..7200086051 100644
--- a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
+++ b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date.js
@@ -1,6 +1,6 @@
/* Copyright 2020 Tecnativa - Ernesto Tejeda
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */
-odoo.define("website_sale_stock_provisioning_date.load", function(require) {
+odoo.define("website_sale_stock_provisioning_date.load", function (require) {
"use strict";
var ajax = require("web.ajax");
var core = require("web.core");
@@ -9,9 +9,7 @@ odoo.define("website_sale_stock_provisioning_date.load", function(require) {
"/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml",
QWeb
);
- load_xml.then(function() {
- $(".oe_website_sale")
- .find('input[name="add_qty"]')
- .trigger("change");
+ load_xml.then(function () {
+ $(".oe_website_sale").find('input[name="add_qty"]').trigger("change");
});
});
diff --git a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
index 8a5b5030e0..8cf5f071be 100644
--- a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
+++ b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.js
@@ -1,6 +1,6 @@
/* Copyright 2020 Tecnativa - Ernesto Tejeda
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */
-odoo.define("website_sale_stock_provisioning_date.tour", function(require) {
+odoo.define("website_sale_stock_provisioning_date.tour", function (require) {
"use strict";
var tour = require("web_tour.tour");
From eae0e1acfe426b2c3531b1666943e2e360a5c4de Mon Sep 17 00:00:00 2001
From: miguels73 <55379877+miguels73@users.noreply.github.com>
Date: Tue, 27 Jul 2021 12:18:10 +0200
Subject: [PATCH 05/21] [MIG][14.0] website_sale_stock_provisioning_date:
Migration to 14.0
---
website_sale_stock_provisioning_date/__manifest__.py | 2 +-
.../models/product_product.py | 8 +++-----
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/website_sale_stock_provisioning_date/__manifest__.py b/website_sale_stock_provisioning_date/__manifest__.py
index f43e167177..6d31afeb1a 100644
--- a/website_sale_stock_provisioning_date/__manifest__.py
+++ b/website_sale_stock_provisioning_date/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Website Sale Stock Provisioning Date",
"summary": "Display provisioning date for a product in shop online",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"development_status": "Beta",
"category": "Website",
"website": "https://github.com/OCA/e-commerce",
diff --git a/website_sale_stock_provisioning_date/models/product_product.py b/website_sale_stock_provisioning_date/models/product_product.py
index e5a0fa6208..64e0495972 100644
--- a/website_sale_stock_provisioning_date/models/product_product.py
+++ b/website_sale_stock_provisioning_date/models/product_product.py
@@ -13,9 +13,7 @@ def _get_next_provisioning_date(self, company):
("state", "not in", ["draft", "done", "cancel"]),
("location_id.usage", "=", "supplier"),
("location_dest_id.usage", "=", "internal"),
- ("date_expected", ">=", fields.Datetime.now()),
+ ("date", ">=", fields.Datetime.now()),
]
- move = (
- self.env["stock.move"].sudo().search(domain, order="date_expected", limit=1)
- )
- return move and move.date_expected.date() or False
+ move = self.env["stock.move"].sudo().search(domain, order="date", limit=1)
+ return move and move.date.date() or False
From 391d7cb2ceb431439155ac5ebb7d87c901c8ddf9 Mon Sep 17 00:00:00 2001
From: miguels73 <55379877+miguels73@users.noreply.github.com>
Date: Thu, 4 Nov 2021 18:17:40 +0100
Subject: [PATCH 06/21] [IMP] website_sale_stock_provisioning_date: format date
The provisioning date was always showing in the same format without
respecting the date format defined in the language settings.
It is added in function `_get_combination_info` instead of in function
`_get_next_provisioning_date` so that the date is still formatted even
if function `_get_next_provisioning_date` is inherited.
---
.../README.rst | 10 +++++-----
.../website_sale_stock_provisioning_date.pot | 20 ++++++++++++++++++-
.../models/product_template.py | 2 ++
.../static/description/index.html | 6 +++---
4 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/website_sale_stock_provisioning_date/README.rst b/website_sale_stock_provisioning_date/README.rst
index 3e073ed0e7..559c86f316 100644
--- a/website_sale_stock_provisioning_date/README.rst
+++ b/website_sale_stock_provisioning_date/README.rst
@@ -14,13 +14,13 @@ Website Sale Stock Provisioning Date
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github
- :target: https://github.com/OCA/e-commerce/tree/13.0/website_sale_stock_provisioning_date
+ :target: https://github.com/OCA/e-commerce/tree/14.0/website_sale_stock_provisioning_date
:alt: OCA/e-commerce
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/e-commerce-13-0/e-commerce-13-0-website_sale_stock_provisioning_date
+ :target: https://translation.odoo-community.org/projects/e-commerce-14-0/e-commerce-14-0-website_sale_stock_provisioning_date
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/113/13.0
+ :target: https://runbot.odoo-community.org/runbot/113/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -61,7 +61,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -95,6 +95,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/e-commerce `_ project on GitHub.
+This module is part of the `OCA/e-commerce `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
index c603fc0b97..129463216d 100644
--- a/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
+++ b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -13,6 +13,24 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product__display_name
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product__id
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template__id
+msgid "ID"
+msgstr ""
+
+#. module: website_sale_stock_provisioning_date
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product____last_update
+#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template____last_update
+msgid "Last Modified on"
+msgstr ""
+
#. module: website_sale_stock_provisioning_date
#. openerp-web
#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:0
diff --git a/website_sale_stock_provisioning_date/models/product_template.py b/website_sale_stock_provisioning_date/models/product_template.py
index 2ae274275c..84c41acd43 100644
--- a/website_sale_stock_provisioning_date/models/product_template.py
+++ b/website_sale_stock_provisioning_date/models/product_template.py
@@ -1,6 +1,7 @@
# Copyright 2019 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models
+from odoo.tools.misc import format_date
class ProductTemplate(models.Model):
@@ -49,5 +50,6 @@ def _get_combination_info(
website_id = self.env.context.get("website_id")
company = self.env["website"].browse(website_id).company_id
provisioning_date = product._get_next_provisioning_date(company)
+ provisioning_date = format_date(self.env, provisioning_date)
combination_info.update(provisioning_date=provisioning_date)
return combination_info
diff --git a/website_sale_stock_provisioning_date/static/description/index.html b/website_sale_stock_provisioning_date/static/description/index.html
index dbccbafeb4..fcfcd43e61 100644
--- a/website_sale_stock_provisioning_date/static/description/index.html
+++ b/website_sale_stock_provisioning_date/static/description/index.html
@@ -367,7 +367,7 @@ Website Sale Stock Provisioning Date
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module extends the functionality of website to show you the
future provisioning date closest to the current date for a product
in the eCommerce.
@@ -409,7 +409,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -438,7 +438,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/e-commerce project on GitHub.
+
This module is part of the OCA/e-commerce project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From 476047b17ed10dd7689bdf6ca96da73f61b4daa8 Mon Sep 17 00:00:00 2001
From: Carlos Roca
Date: Thu, 12 Jan 2023 17:19:12 +0100
Subject: [PATCH 07/21] [MIG] website_sale_stock_provisioning_date: Migration
to 15.0
---
.../README.rst | 28 ++++++------
.../__manifest__.py | 16 +++++--
.../website_sale_stock_provisioning_date.pot | 20 +--------
.../readme/CONTRIBUTORS.rst | 1 +
.../static/description/index.html | 43 ++++++++++---------
...ebsite_sale_stock_product_availability.xml | 2 +-
.../views/assets.xml | 17 --------
.../views/product_template_views.xml | 2 +-
8 files changed, 56 insertions(+), 73 deletions(-)
delete mode 100644 website_sale_stock_provisioning_date/views/assets.xml
diff --git a/website_sale_stock_provisioning_date/README.rst b/website_sale_stock_provisioning_date/README.rst
index 559c86f316..2833115dfa 100644
--- a/website_sale_stock_provisioning_date/README.rst
+++ b/website_sale_stock_provisioning_date/README.rst
@@ -2,28 +2,31 @@
Website Sale Stock Provisioning Date
====================================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:4d0f7881857f436ace0ad4b0face6a3276c1afcefa6205c18dbd638545113f6b
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
- :alt: Beta
+ :alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github
- :target: https://github.com/OCA/e-commerce/tree/14.0/website_sale_stock_provisioning_date
+ :target: https://github.com/OCA/e-commerce/tree/15.0/website_sale_stock_provisioning_date
:alt: OCA/e-commerce
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/e-commerce-14-0/e-commerce-14-0-website_sale_stock_provisioning_date
+ :target: https://translation.odoo-community.org/projects/e-commerce-15-0/e-commerce-15-0-website_sale_stock_provisioning_date
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/113/14.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/e-commerce&target_branch=15.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module extends the functionality of website to show you the
future provisioning date closest to the current date for a product
@@ -60,8 +63,8 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -81,6 +84,7 @@ Contributors
* Ernesto Tejeda
* Pedro M. Baeza
* Sergio Teruel
+ * Carlos Roca
Maintainers
~~~~~~~~~~~
@@ -95,6 +99,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/e-commerce `_ project on GitHub.
+This module is part of the `OCA/e-commerce `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/website_sale_stock_provisioning_date/__manifest__.py b/website_sale_stock_provisioning_date/__manifest__.py
index 6d31afeb1a..c4102aabf2 100644
--- a/website_sale_stock_provisioning_date/__manifest__.py
+++ b/website_sale_stock_provisioning_date/__manifest__.py
@@ -3,8 +3,8 @@
{
"name": "Website Sale Stock Provisioning Date",
"summary": "Display provisioning date for a product in shop online",
- "version": "14.0.1.0.0",
- "development_status": "Beta",
+ "version": "15.0.1.0.0",
+ "development_status": "Production/Stable",
"category": "Website",
"website": "https://github.com/OCA/e-commerce",
"author": "Tecnativa, Odoo Community Association (OCA)",
@@ -12,5 +12,15 @@
"application": False,
"installable": True,
"depends": ["website_sale_stock"],
- "data": ["views/assets.xml", "views/product_template_views.xml"],
+ "data": ["views/product_template_views.xml"],
+ "assets": {
+ "web.assets_frontend": [
+ "/website_sale_stock_provisioning_date/static/src/js/"
+ "website_sale_stock_provisioning_date.js",
+ ],
+ "web.assets_tests": [
+ "/website_sale_stock_provisioning_date/static/src/js/"
+ "website_sale_stock_provisioning_date_tour.js",
+ ],
+ },
}
diff --git a/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
index 129463216d..7aafd40681 100644
--- a/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
+++ b/website_sale_stock_provisioning_date/i18n/website_sale_stock_provisioning_date.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
+"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -13,24 +13,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
-#. module: website_sale_stock_provisioning_date
-#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product__display_name
-#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template__display_name
-msgid "Display Name"
-msgstr ""
-
-#. module: website_sale_stock_provisioning_date
-#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product__id
-#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template__id
-msgid "ID"
-msgstr ""
-
-#. module: website_sale_stock_provisioning_date
-#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_product____last_update
-#: model:ir.model.fields,field_description:website_sale_stock_provisioning_date.field_product_template____last_update
-msgid "Last Modified on"
-msgstr ""
-
#. module: website_sale_stock_provisioning_date
#. openerp-web
#: code:addons/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml:0
diff --git a/website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst b/website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst
index 0c71102569..21e014c788 100644
--- a/website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst
+++ b/website_sale_stock_provisioning_date/readme/CONTRIBUTORS.rst
@@ -3,3 +3,4 @@
* Ernesto Tejeda
* Pedro M. Baeza
* Sergio Teruel
+ * Carlos Roca
diff --git a/website_sale_stock_provisioning_date/static/description/index.html b/website_sale_stock_provisioning_date/static/description/index.html
index fcfcd43e61..ff6564496d 100644
--- a/website_sale_stock_provisioning_date/static/description/index.html
+++ b/website_sale_stock_provisioning_date/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
Website Sale Stock Provisioning Date
-
-
Website Sale Stock Provisioning Date
+
+
+
+
+
+
+
Website Sale Stock Provisioning Date
-

+

This module extends the functionality of website to show you the future
provisioning date closest to the current date for a product in the
eCommerce.
@@ -387,7 +392,7 @@
Website Sale Stock Provisioning Date
-
+
To use this module, you need to:
- Go to Sales > Products > Products, create a new product or edit an
@@ -406,7 +411,7 @@
date after the current date.
-
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -414,15 +419,15 @@
Do not contact contributors directly about support or help with technical issues.
+
From 7b4bf76c54610dfa58857f94a2b340d5217184dc Mon Sep 17 00:00:00 2001
From: AlexGarS73
Date: Mon, 16 Feb 2026 08:38:26 +0100
Subject: [PATCH 21/21] [MIG] website_sale_stock_provisioning_date
---
website_sale_stock_provisioning_date/README.rst | 14 +++++++++-----
.../__manifest__.py | 10 +++-------
.../models/product_template.py | 4 ++--
.../static/description/index.html | 6 +++---
...ebsite_sale_stock_provisioning_date_tour.esm.js | 11 ++++++-----
.../website_sale_stock_product_availability.xml | 2 +-
.../test_website_sale_stock_provisioning_date.py | 2 +-
7 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/website_sale_stock_provisioning_date/README.rst b/website_sale_stock_provisioning_date/README.rst
index 4980b97f4b..7d8860dd84 100644
--- a/website_sale_stock_provisioning_date/README.rst
+++ b/website_sale_stock_provisioning_date/README.rst
@@ -21,13 +21,13 @@ Website Sale Stock Provisioning Date
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github
- :target: https://github.com/OCA/e-commerce/tree/18.0/website_sale_stock_provisioning_date
+ :target: https://github.com/OCA/e-commerce/tree/19.0/website_sale_stock_provisioning_date
:alt: OCA/e-commerce
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/e-commerce-18-0/e-commerce-18-0-website_sale_stock_provisioning_date
+ :target: https://translation.odoo-community.org/projects/e-commerce-19-0/e-commerce-19-0-website_sale_stock_provisioning_date
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
- :target: https://runboat.odoo-community.org/builds?repo=OCA/e-commerce&target_branch=18.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/e-commerce&target_branch=19.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -67,7 +67,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -89,6 +89,10 @@ Contributors
- Sergio Teruel
- Carlos Roca
+- `Studio73 `__:
+
+ - Alex Garcia
+
Maintainers
-----------
@@ -102,6 +106,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/e-commerce `_ project on GitHub.
+This module is part of the `OCA/e-commerce `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/website_sale_stock_provisioning_date/__manifest__.py b/website_sale_stock_provisioning_date/__manifest__.py
index d44ff7b60a..f2404d2a02 100644
--- a/website_sale_stock_provisioning_date/__manifest__.py
+++ b/website_sale_stock_provisioning_date/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Website Sale Stock Provisioning Date",
"summary": "Display provisioning date for a product in shop online",
- "version": "18.0.1.0.0",
+ "version": "19.0.1.0.0",
"development_status": "Production/Stable",
"category": "Website",
"website": "https://github.com/OCA/e-commerce",
@@ -15,12 +15,8 @@
"data": ["views/product_template_views.xml"],
"assets": {
"web.assets_frontend": [
- "website_sale_stock_provisioning_date/static/src/xml/"
- "website_sale_stock_product_availability.xml",
- ],
- "web.assets_tests": [
- "/website_sale_stock_provisioning_date/static/src/js/"
- "website_sale_stock_provisioning_date_tour.esm.js",
+ "website_sale_stock_provisioning_date/static/src/xml/*"
],
+ "web.assets_tests": ["/website_sale_stock_provisioning_date/static/src/js/*"],
},
}
diff --git a/website_sale_stock_provisioning_date/models/product_template.py b/website_sale_stock_provisioning_date/models/product_template.py
index cdcb4eb821..fe0b8278cf 100644
--- a/website_sale_stock_provisioning_date/models/product_template.py
+++ b/website_sale_stock_provisioning_date/models/product_template.py
@@ -56,14 +56,14 @@ def _get_combination_info(
combination=False,
product_id=False,
add_qty=1,
- parent_combination=False,
+ uom_id=False,
only_template=False,
):
combination_info = super()._get_combination_info(
combination=combination,
product_id=product_id,
add_qty=add_qty,
- parent_combination=parent_combination,
+ uom_id=uom_id,
only_template=only_template,
)
if combination_info["product_id"]:
diff --git a/website_sale_stock_provisioning_date/static/description/index.html b/website_sale_stock_provisioning_date/static/description/index.html
index 3b178f2f2a..964fb92e6e 100644
--- a/website_sale_stock_provisioning_date/static/description/index.html
+++ b/website_sale_stock_provisioning_date/static/description/index.html
@@ -374,7 +374,7 @@ Website Sale Stock Provisioning Date
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:6ad91e74a2710e63412aa1b23673baccbeb953e2e281cef39bb22e9cdee59120
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module extends the functionality of website to show you the future
provisioning date closest to the current date for a product in the
eCommerce.
@@ -415,7 +415,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -447,7 +447,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/e-commerce project on GitHub.
+
This module is part of the OCA/e-commerce project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.esm.js b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.esm.js
index 4db0539502..674d9c4710 100644
--- a/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.esm.js
+++ b/website_sale_stock_provisioning_date/static/src/js/website_sale_stock_provisioning_date_tour.esm.js
@@ -3,17 +3,18 @@
import {registry} from "@web/core/registry";
import {searchProduct} from "@website_sale/js/tours/tour_utils";
-import {clickOnElement} from "@website/js/tours/tour_utils";
registry.category("web_tour.tours").add("website_sale_stock_provisioning_date", {
test: true,
url: "/shop",
steps: () => [
...searchProduct("provisioning date"),
- clickOnElement(
- "click on product test",
- '.oe_product_cart a:contains("provisioning date")'
- ),
+ {
+ content: "click on product test",
+ trigger: '.oe_product_cart a:contains("provisioning date")',
+ run: "click",
+ expectUnloadPage: true,
+ },
{
trigger:
".availability_messages:has(span:contains('Next provisioning date:'))",
diff --git a/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml b/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
index 9388b591c4..beb17459d6 100644
--- a/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
+++ b/website_sale_stock_provisioning_date/static/src/xml/website_sale_stock_product_availability.xml
@@ -3,7 +3,7 @@
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
-
+