diff --git a/website_sale_product_detail_attribute_image/README.rst b/website_sale_product_detail_attribute_image/README.rst new file mode 100644 index 0000000000..70a0e345d5 --- /dev/null +++ b/website_sale_product_detail_attribute_image/README.rst @@ -0,0 +1,85 @@ +=========================================== +Website Sale Product Detail Attribute Image +=========================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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/11.0/website_sale_product_detail_attribute_image + :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-11-0/e-commerce-11-0-website_sale_product_detail_attribute_image + :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/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the functionality of website sale module to allow display +product attributes images in shop product detail. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Go to 'Website > Settings > Configuration > Products > Attributes'. +* Set an image in 'Website image' field to display this attribute in shop + product detail. +* Check 'Display in shop product detail' field to display this attribute in + shop product detail. + +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 `_: + + * 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_product_detail_attribute_image/__init__.py b/website_sale_product_detail_attribute_image/__init__.py new file mode 100644 index 0000000000..df9b9c226b --- /dev/null +++ b/website_sale_product_detail_attribute_image/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import controllers +from . import models diff --git a/website_sale_product_detail_attribute_image/__manifest__.py b/website_sale_product_detail_attribute_image/__manifest__.py new file mode 100644 index 0000000000..e35e973e32 --- /dev/null +++ b/website_sale_product_detail_attribute_image/__manifest__.py @@ -0,0 +1,25 @@ +# Copyright 2019 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + 'name': 'Website Sale Product Detail Attribute Image', + 'summary': 'Display attributes images in shop product detail', + 'version': '11.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', + ], + 'data': [ + 'views/assets.xml', + 'views/product_attribute_views.xml', + 'views/templates.xml', + ], + 'demo': [ + 'data/demo.xml', + ] +} diff --git a/website_sale_product_detail_attribute_image/controllers/__init__.py b/website_sale_product_detail_attribute_image/controllers/__init__.py new file mode 100644 index 0000000000..dea930adca --- /dev/null +++ b/website_sale_product_detail_attribute_image/controllers/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import main diff --git a/website_sale_product_detail_attribute_image/controllers/main.py b/website_sale_product_detail_attribute_image/controllers/main.py new file mode 100644 index 0000000000..0b0a4885d0 --- /dev/null +++ b/website_sale_product_detail_attribute_image/controllers/main.py @@ -0,0 +1,16 @@ +# Copyright 2019 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.addons.website_sale.controllers.main import WebsiteSale +from odoo import http + + +class WebsiteSaleProductDetailAttributeImage(WebsiteSale): + + @http.route() + def product(self, product, category='', search='', **kwargs): + res = super().product( + product, category=category, search=search, **kwargs) + image_attributes = product.attribute_line_ids.filtered( + lambda x: x.attribute_id.website_product_detail_display) + res.qcontext['image_attributes'] = image_attributes + return res diff --git a/website_sale_product_detail_attribute_image/data/demo.xml b/website_sale_product_detail_attribute_image/data/demo.xml new file mode 100644 index 0000000000..33d9d8a57e --- /dev/null +++ b/website_sale_product_detail_attribute_image/data/demo.xml @@ -0,0 +1,70 @@ + + + + + + Dangerousness + + + + + + High dangerousness + + + + Low dangerousness + + + + + + + + + + + + + + Policy One + + + + + + Policy One Value 1 + + + + + + + + + + + + + + + Policy Two + + + + + + Policy Two Value 1 + + + + + + + + + + + + + diff --git a/website_sale_product_detail_attribute_image/i18n/es.po b/website_sale_product_detail_attribute_image/i18n/es.po new file mode 100644 index 0000000000..162c4a7d86 --- /dev/null +++ b/website_sale_product_detail_attribute_image/i18n/es.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_sale_product_detail_attribute_image +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-15 21:43+0000\n" +"PO-Revision-Date: 2019-05-15 23:48+0200\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: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute,name:website_sale_product_detail_attribute_image.product_attribute_image_danger +msgid "Dangerousness" +msgstr "Peligrosidad" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,help:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_display +msgid "Display attribute image in shop online product detail" +msgstr "" +"Mostrar la imagen del atributo en el detalle del producto de la tienda " +"online" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,field_description:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_display +msgid "Display in product" +msgstr "Mostrar en producto" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_high +msgid "High dangerousness" +msgstr "Peligrosidad alta" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_low +msgid "Low dangerousness" +msgstr "Peligrosidad baja" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_one +msgid "Policy One" +msgstr "Regla uno" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_one_1 +msgid "Policy One Value 1" +msgstr "Regla uno valor 1" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_two +msgid "Policy Two" +msgstr "Regla dos" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_two_1 +msgid "Policy Two Value 1" +msgstr "Regla dos valor 1" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model,name:website_sale_product_detail_attribute_image.model_product_attribute +msgid "Product Attribute" +msgstr "Atributo de producto" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,help:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_image +msgid "" +"Small-sized image of the attribute for shop online product detail. It is " +"automatically resized as a 64x64 px image, with aspect ratio preserved." +msgstr "" +"Imagen pequeña del atributo para el detalle del producto en la tienda " +"online. Se redimensiona automáticamente a 64x64px, \n" +"con el ratio de aspecto preservado." + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,field_description:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_image +msgid "Website detail image" +msgstr "Imagen detalle website" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.ui.view,arch_db:website_sale_product_detail_attribute_image.product_attribute_view_form +msgid "Website product image detail" +msgstr "Imagen detalle producto para website" diff --git a/website_sale_product_detail_attribute_image/i18n/website_sale_product_detail_attribute_image.pot b/website_sale_product_detail_attribute_image/i18n/website_sale_product_detail_attribute_image.pot new file mode 100644 index 0000000000..fb567b35ae --- /dev/null +++ b/website_sale_product_detail_attribute_image/i18n/website_sale_product_detail_attribute_image.pot @@ -0,0 +1,82 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_sale_product_detail_attribute_image +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-15 21:43+0000\n" +"PO-Revision-Date: 2019-05-15 21:43+0000\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_product_detail_attribute_image +#: model:product.attribute,name:website_sale_product_detail_attribute_image.product_attribute_image_danger +msgid "Dangerousness" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,help:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_display +msgid "Display attribute image in shop online product detail" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,field_description:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_display +msgid "Display in product" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_high +msgid "High dangerousness" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_low +msgid "Low dangerousness" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_one +msgid "Policy One" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_one_1 +msgid "Policy One Value 1" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_two +msgid "Policy Two" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:product.attribute.value,name:website_sale_product_detail_attribute_image.product_attribute_image_policy_two_1 +msgid "Policy Two Value 1" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model,name:website_sale_product_detail_attribute_image.model_product_attribute +msgid "Product Attribute" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,help:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_image +msgid "Small-sized image of the attribute for shop online product detail. It is automatically resized as a 64x64 px image, with aspect ratio preserved." +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.model.fields,field_description:website_sale_product_detail_attribute_image.field_product_attribute_website_product_detail_image +msgid "Website detail image" +msgstr "" + +#. module: website_sale_product_detail_attribute_image +#: model:ir.ui.view,arch_db:website_sale_product_detail_attribute_image.product_attribute_view_form +msgid "Website product image detail" +msgstr "" + diff --git a/website_sale_product_detail_attribute_image/models/__init__.py b/website_sale_product_detail_attribute_image/models/__init__.py new file mode 100644 index 0000000000..383e1becc9 --- /dev/null +++ b/website_sale_product_detail_attribute_image/models/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import product_attribute diff --git a/website_sale_product_detail_attribute_image/models/product_attribute.py b/website_sale_product_detail_attribute_image/models/product_attribute.py new file mode 100644 index 0000000000..1d88145c5b --- /dev/null +++ b/website_sale_product_detail_attribute_image/models/product_attribute.py @@ -0,0 +1,31 @@ +# Copyright 2019 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models, tools + + +class ProductAttribute(models.Model): + _inherit = 'product.attribute' + + website_product_detail_image = fields.Binary( + string='Website detail image', + attachment=True, + help='Small-sized image of the attribute for shop online product ' + 'detail. It is automatically resized as a 64x64 px image, with ' + 'aspect ratio preserved.', + ) + website_product_detail_display = fields.Boolean( + string='Display in product', + help='Display attribute image in shop online product detail', + ) + + def create(self, vals): + # Resize image as small + tools.image_resize_images( + vals, small_name='website_product_detail_image') + return super(ProductAttribute, self).create(vals) + + def write(self, vals): + # Resize image as small + tools.image_resize_images( + vals, small_name='website_product_detail_image') + return super(ProductAttribute, self).write(vals) diff --git a/website_sale_product_detail_attribute_image/readme/CONTRIBUTORS.rst b/website_sale_product_detail_attribute_image/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..3bfad993cb --- /dev/null +++ b/website_sale_product_detail_attribute_image/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Tecnativa `_: + + * Sergio Teruel diff --git a/website_sale_product_detail_attribute_image/readme/DESCRIPTION.rst b/website_sale_product_detail_attribute_image/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..81434fcdaf --- /dev/null +++ b/website_sale_product_detail_attribute_image/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module extends the functionality of website sale module to allow display +product attributes images in shop product detail. diff --git a/website_sale_product_detail_attribute_image/readme/USAGE.rst b/website_sale_product_detail_attribute_image/readme/USAGE.rst new file mode 100644 index 0000000000..2e5eb16f59 --- /dev/null +++ b/website_sale_product_detail_attribute_image/readme/USAGE.rst @@ -0,0 +1,5 @@ +* Go to 'Website > Settings > Configuration > Products > Attributes'. +* Set an image in 'Website image' field to display this attribute in shop + product detail. +* Check 'Display in shop product detail' field to display this attribute in + shop product detail. diff --git a/website_sale_product_detail_attribute_image/static/description/index.html b/website_sale_product_detail_attribute_image/static/description/index.html new file mode 100644 index 0000000000..cd43263211 --- /dev/null +++ b/website_sale_product_detail_attribute_image/static/description/index.html @@ -0,0 +1,437 @@ + + + + + + +Website Sale Product Detail Attribute Image + + + +
+

Website Sale Product Detail Attribute Image

+ + +

Beta License: AGPL-3 OCA/e-commerce Translate me on Weblate Try me on Runbot

+

This module extends the functionality of website sale module to allow display +product attributes images in shop product detail.

+

Table of contents

+ +
+

Usage

+
    +
  • Go to ‘Website > Settings > Configuration > Products > Attributes’.
  • +
  • Set an image in ‘Website image’ field to display this attribute in shop +product detail.
  • +
  • Check ‘Display in shop product detail’ field to display this attribute in +shop product detail.
  • +
+
+
+

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

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+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.

+

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_product_detail_attribute_image/static/src/img/EN374.png b/website_sale_product_detail_attribute_image/static/src/img/EN374.png new file mode 100644 index 0000000000..79761403f0 Binary files /dev/null and b/website_sale_product_detail_attribute_image/static/src/img/EN374.png differ diff --git a/website_sale_product_detail_attribute_image/static/src/img/EN374:2003.png b/website_sale_product_detail_attribute_image/static/src/img/EN374:2003.png new file mode 100644 index 0000000000..f2b9e19af5 Binary files /dev/null and b/website_sale_product_detail_attribute_image/static/src/img/EN374:2003.png differ diff --git a/website_sale_product_detail_attribute_image/static/src/img/EN388.png b/website_sale_product_detail_attribute_image/static/src/img/EN388.png new file mode 100644 index 0000000000..67e308d2f1 Binary files /dev/null and b/website_sale_product_detail_attribute_image/static/src/img/EN388.png differ diff --git a/website_sale_product_detail_attribute_image/static/src/js/website_sale_product_detail_attribute_image_tour.js b/website_sale_product_detail_attribute_image/static/src/js/website_sale_product_detail_attribute_image_tour.js new file mode 100644 index 0000000000..9ba896aa53 --- /dev/null +++ b/website_sale_product_detail_attribute_image/static/src/js/website_sale_product_detail_attribute_image_tour.js @@ -0,0 +1,30 @@ +/* Copyright 2019 Sergio Teruel + * License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ + +odoo.define("website_sale_product_detail_attribute_image.tour", function (require) { + "use strict"; + + var tour = require("web_tour.tour"); + var base = require("web_editor.base"); + + var steps = [ + { + trigger: "a:contains('iPod')", + }, + { + trigger: "a[href='/shop']", + extra_trigger: ".product-detail-attributes:has(span:contains('Policy One Value 1')):not(:has(span:contains('Dangerousness')))", + }, + ]; + tour.register("website_sale_product_detail_attribute_image", + { + url: "/shop", + test: true, + wait_for: base.ready(), + }, + steps + ); + return { + steps: steps, + }; +}); diff --git a/website_sale_product_detail_attribute_image/static/src/less/style.less b/website_sale_product_detail_attribute_image/static/src/less/style.less new file mode 100644 index 0000000000..8ca74828ee --- /dev/null +++ b/website_sale_product_detail_attribute_image/static/src/less/style.less @@ -0,0 +1,8 @@ +.product-detail-attributes img { + width: 40px; + height: 40px; +} +.product-detail-attributes div { + font-size: 85%; + /*line-height: 1;*/ +} diff --git a/website_sale_product_detail_attribute_image/tests/__init__.py b/website_sale_product_detail_attribute_image/tests/__init__.py new file mode 100644 index 0000000000..a24003988a --- /dev/null +++ b/website_sale_product_detail_attribute_image/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import test_product_detail_attribute_image +from . import test_website_sale_product_detail_attribute_image diff --git a/website_sale_product_detail_attribute_image/tests/test_product_detail_attribute_image.py b/website_sale_product_detail_attribute_image/tests/test_product_detail_attribute_image.py new file mode 100644 index 0000000000..ff5a4ee56d --- /dev/null +++ b/website_sale_product_detail_attribute_image/tests/test_product_detail_attribute_image.py @@ -0,0 +1,28 @@ +# Copyright 2019 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.tests.common import SavepointCase + + +class TestProductAttribute(SavepointCase): + at_install = False + post_install = True + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.image = b'R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' + cls.attribute = cls.env['product.attribute'].create({ + 'name': 'Pictogram attribute', + }) + + def test_create_image_for_attribute(self): + attribute = self.env['product.attribute'].create({ + 'name': 'Pictogram attribute', + 'website_product_detail_image': self.image, + }) + self.assertEqual(attribute.website_product_detail_image, self.image) + + def test_write_image_for_attribute(self): + self.attribute.website_product_detail_image = self.image + self.assertEqual( + self.attribute.website_product_detail_image, self.image) diff --git a/website_sale_product_detail_attribute_image/tests/test_website_sale_product_detail_attribute_image.py b/website_sale_product_detail_attribute_image/tests/test_website_sale_product_detail_attribute_image.py new file mode 100644 index 0000000000..49e084eb51 --- /dev/null +++ b/website_sale_product_detail_attribute_image/tests/test_website_sale_product_detail_attribute_image.py @@ -0,0 +1,19 @@ +# Copyright 2019 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.tests.common import HttpCase + + +class WebsiteSaleHttpCase(HttpCase): + + def test_ui_website(self): + """Test frontend tour.""" + tour = ( + "odoo.__DEBUG__.services['web_tour.tour']", + "website_sale_product_detail_attribute_image", + ) + self.phantom_js( + url_path="/", + code="%s.run('%s')" % tour, + ready="%s.tours['%s'].ready" % tour, + login="admin" + ) diff --git a/website_sale_product_detail_attribute_image/views/assets.xml b/website_sale_product_detail_attribute_image/views/assets.xml new file mode 100644 index 0000000000..b1455cbe4c --- /dev/null +++ b/website_sale_product_detail_attribute_image/views/assets.xml @@ -0,0 +1,13 @@ + + + +