From 2abb8e57e1665a8ac599008ffeafa1b4b5f5a358 Mon Sep 17 00:00:00 2001 From: Pablo Calvo Espinar Date: Fri, 8 Nov 2024 15:29:56 +0100 Subject: [PATCH] [IMP] website_sale_product_assortment --- .../__manifest__.py | 1 + .../static/description/index.html | 12 +++-- .../src/js/no_restriction_no_show_tour.js | 46 +++++++++++++++++++ .../tests/test_ui.py | 36 +++++++++++++++ 4 files changed, 90 insertions(+), 5 deletions(-) create mode 100644 website_sale_product_assortment/static/src/js/no_restriction_no_show_tour.js diff --git a/website_sale_product_assortment/__manifest__.py b/website_sale_product_assortment/__manifest__.py index 218678108f..d7214ceae7 100644 --- a/website_sale_product_assortment/__manifest__.py +++ b/website_sale_product_assortment/__manifest__.py @@ -23,6 +23,7 @@ "website_sale_product_assortment/static/src/js/no_purchase_tour.js", "website_sale_product_assortment/static/src/js/no_restriction_tour.js", "website_sale_product_assortment/static/src/js/no_show_tour.js", + "website_sale_product_assortment/static/src/js/no_restriction_no_show_tour.js", ], }, } diff --git a/website_sale_product_assortment/static/description/index.html b/website_sale_product_assortment/static/description/index.html index f993730aae..4a3c961d75 100644 --- a/website_sale_product_assortment/static/description/index.html +++ b/website_sale_product_assortment/static/description/index.html @@ -1,4 +1,3 @@ - @@ -9,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -275,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -301,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -442,7 +442,9 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

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.

diff --git a/website_sale_product_assortment/static/src/js/no_restriction_no_show_tour.js b/website_sale_product_assortment/static/src/js/no_restriction_no_show_tour.js new file mode 100644 index 0000000000..6e42d2bd58 --- /dev/null +++ b/website_sale_product_assortment/static/src/js/no_restriction_no_show_tour.js @@ -0,0 +1,46 @@ +/* Copyright 2021 Tecnativa - Carlos Roca + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ +odoo.define("website_sale_product_assortment.no_restriction_no_show_tour", function (require) { + "use strict"; + + var tour = require("web_tour.tour"); + + var steps = [ + { + trigger: "a:contains('Test Product 1')", + }, + { + trigger: "a#add_to_cart", + }, + { + trigger: "a[href='/shop/cart']", + extra_trigger: "sup.my_cart_quantity:contains('1')", + }, + { + content: "go back to the store", + trigger: "a[href='/shop']" + }, + { + trigger: "a:contains('Test Product 2')", + }, + { + trigger: "a#add_to_cart", + }, + { + trigger: "a[href='/shop/cart']", + extra_trigger: "sup.my_cart_quantity:contains('1')", + }, + ]; + + tour.register( + "test_assortment_with_no_restriction_no_show", + { + url: "/shop", + test: true, + }, + steps + ); + return { + steps: steps, + }; +}); diff --git a/website_sale_product_assortment/tests/test_ui.py b/website_sale_product_assortment/tests/test_ui.py index 30baa14de4..d3b64056a0 100644 --- a/website_sale_product_assortment/tests/test_ui.py +++ b/website_sale_product_assortment/tests/test_ui.py @@ -16,6 +16,14 @@ def setUp(self): "type": "consu", } ) + self.product2 = self.env["product.template"].create( + { + "name": "Test Product 2", + "is_published": True, + "website_sequence": 2, + "type": "consu", + } + ) def test_01_ui_no_restriction(self): self.env["ir.filters"].create( @@ -26,6 +34,7 @@ def test_01_ui_no_restriction(self): "domain": [("id", "!=", self.product.product_variant_id.id)], "partner_domain": "[('id', '=', %s)]" % self.env.ref("base.partner_admin").id, + "website_availability": "no_restriction", } ) self.start_tour("/shop", "test_assortment_with_no_restriction", login="admin") @@ -62,3 +71,30 @@ def test_03_ui_no_purchase(self): } ) self.start_tour("/shop", "test_assortment_with_no_purchase", login="admin") + + def test_04_ui_no_restriction_no_show(self): + self.env["ir.filters"].create( + { + "name": "Test Assortment", + "model_id": "product.product", + "is_assortment": True, + "domain": [("id", "!=", self.product.product_variant_id.id)], + "partner_domain": "[('id', '=', %s)]" + % self.env.ref("base.partner_admin").id, + "website_availability": "no_show", + } + ) + self.env["ir.filters"].create( + { + "name": "Test Assortment 2", + "model_id": "product.product", + "is_assortment": True, + "domain": [("id", "!=", self.product2.product_variant_id.id)], + "partner_domain": "[('id', '=', %s)]" + % self.env.ref("base.partner_admin").id, + "website_availability": "no_restriction", + } + ) + self.start_tour( + "/shop", "test_assortment_with_no_restriction_no_show", login="admin" + )