diff --git a/website_variant_values_visibility/README.rst b/website_variant_values_visibility/README.rst new file mode 100644 index 0000000..28b612b --- /dev/null +++ b/website_variant_values_visibility/README.rst @@ -0,0 +1,73 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +================================= +Website Variant Values Visibility +================================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3b6aaf2b68e397b27d94f5bb02aabb23fd19e14682b50bac025280482e939614 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/license-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-madmooose%2Fodooapps-lightgray.png?logo=github + :target: https://github.com/madmooose/odooapps/tree/16.0/website_variant_values_visibility + :alt: madmooose/odooapps + +|badge1| |badge2| |badge3| + +This module allows control over the visibility of product variant values +in the e-commerce website. + +**Table of contents** + +.. contents:: + :local: + +Changelog +========= + +- 16.0.1.0.0: Adds visibility control for variant values in e-commerce. + +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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* IFE Gesellschaft für Forschung und Entwicklung +* Niels Göttsch + +Contributors +------------ + +- René Greßmann +- Hiren Lakhani +- Niels Göttsch + +Maintainers +----------- + +This module is part of the `madmooose/odooapps `_ project on GitHub. + +You are welcome to contribute. diff --git a/website_variant_values_visibility/__init__.py b/website_variant_values_visibility/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/website_variant_values_visibility/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/website_variant_values_visibility/__manifest__.py b/website_variant_values_visibility/__manifest__.py new file mode 100644 index 0000000..2ea8f77 --- /dev/null +++ b/website_variant_values_visibility/__manifest__.py @@ -0,0 +1,16 @@ +{ + "name": "Website Variant Values Visibility", + "version": "16.0.1.0.0", + "category": "Product", + "summary": "Adds visibility control for variant values in e-commerce", + "author": "IFE Gesellschaft für Forschung und Entwicklung, Niels Göttsch", + "website": "https://ziemlichoptimal.de", + "depends": ["product", "website_sale"], + "data": [ + "views/product_attribute_value_views.xml", + "views/variant_template.xml", + ], + "installable": True, + "auto_install": False, + "license": "LGPL-3", +} diff --git a/website_variant_values_visibility/i18n/de.po b/website_variant_values_visibility/i18n/de.po new file mode 100644 index 0000000..71a8d4e --- /dev/null +++ b/website_variant_values_visibility/i18n/de.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_variant_values_visibility +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e-20240411\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-06-12 05:27+0000\n" +"PO-Revision-Date: 2024-06-12 05:27+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_variant_values_visibility +#: model:ir.model,name:website_variant_values_visibility.model_product_attribute_value +msgid "Attribute Value" +msgstr "Attributwert" + +#. module: website_variant_values_visibility +#: model:ir.model.fields,help:website_variant_values_visibility.field_product_attribute_value__visible_in_ecommerce +msgid "Determines if the variant value is visible in the e-commerce." +msgstr "Ermittelt, ob der Variantenwert im E-Commerce sichtbar ist." + +#. module: website_variant_values_visibility +#: model:ir.model.fields,field_description:website_variant_values_visibility.field_product_attribute_value__visible_in_ecommerce +msgid "Visible in e-commerce" +msgstr "Sichtbar in E-Commerce" diff --git a/website_variant_values_visibility/models/__init__.py b/website_variant_values_visibility/models/__init__.py new file mode 100644 index 0000000..967ba8a --- /dev/null +++ b/website_variant_values_visibility/models/__init__.py @@ -0,0 +1 @@ +from . import product_attribute_value diff --git a/website_variant_values_visibility/models/product_attribute_value.py b/website_variant_values_visibility/models/product_attribute_value.py new file mode 100644 index 0000000..318708b --- /dev/null +++ b/website_variant_values_visibility/models/product_attribute_value.py @@ -0,0 +1,16 @@ +from odoo import fields, models + + +class ProductAttributeValue(models.Model): + """ + This class extends the functionality of product attribute values in Odoo. + It adds a boolean field to determine if the variant value is visible in e-commerce. + """ + + _inherit = "product.attribute.value" + + visible_in_ecommerce = fields.Boolean( + string="Visible in e-commerce", + default=True, + help="Determines if the variant value is visible in the e-commerce.", + ) diff --git a/website_variant_values_visibility/pyproject.toml b/website_variant_values_visibility/pyproject.toml new file mode 100644 index 0000000..4231d0c --- /dev/null +++ b/website_variant_values_visibility/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/website_variant_values_visibility/readme/CONTRIBUTORS.md b/website_variant_values_visibility/readme/CONTRIBUTORS.md new file mode 100644 index 0000000..acd637d --- /dev/null +++ b/website_variant_values_visibility/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- René Greßmann +- Hiren Lakhani +- Niels Göttsch + diff --git a/website_variant_values_visibility/readme/DESCRIPTION.md b/website_variant_values_visibility/readme/DESCRIPTION.md new file mode 100644 index 0000000..2fb73d7 --- /dev/null +++ b/website_variant_values_visibility/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module allows control over the visibility of product variant values in the e-commerce website. + diff --git a/website_variant_values_visibility/readme/HISTORY.md b/website_variant_values_visibility/readme/HISTORY.md new file mode 100644 index 0000000..b66ec0d --- /dev/null +++ b/website_variant_values_visibility/readme/HISTORY.md @@ -0,0 +1 @@ +- 16.0.1.0.0: Adds visibility control for variant values in e-commerce. diff --git a/website_variant_values_visibility/static/description/icon.png b/website_variant_values_visibility/static/description/icon.png new file mode 100644 index 0000000..15a5df5 Binary files /dev/null and b/website_variant_values_visibility/static/description/icon.png differ diff --git a/website_variant_values_visibility/static/description/index.html b/website_variant_values_visibility/static/description/index.html new file mode 100644 index 0000000..cb43eca --- /dev/null +++ b/website_variant_values_visibility/static/description/index.html @@ -0,0 +1,433 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Website Variant Values Visibility

+ +

Beta License: LGPL-3 madmooose/odooapps

+

This module allows control over the visibility of product variant values +in the e-commerce website.

+

Table of contents

+ +
+

Changelog

+
    +
  • 16.0.1.0.0: Adds visibility control for variant values in e-commerce.
  • +
+
+
+

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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • IFE Gesellschaft für Forschung und Entwicklung
  • +
  • Niels Göttsch
  • +
+
+
+

Contributors

+
    +
  • René Greßmann
  • +
  • Hiren Lakhani
  • +
  • Niels Göttsch
  • +
+
+
+

Maintainers

+

This module is part of the madmooose/odooapps project on GitHub.

+

You are welcome to contribute.

+
+
+
+
+ + diff --git a/website_variant_values_visibility/tests/__init__.py b/website_variant_values_visibility/tests/__init__.py new file mode 100644 index 0000000..4e66d41 --- /dev/null +++ b/website_variant_values_visibility/tests/__init__.py @@ -0,0 +1 @@ +from . import test_product_attribute_value diff --git a/website_variant_values_visibility/tests/test_product_attribute_value.py b/website_variant_values_visibility/tests/test_product_attribute_value.py new file mode 100644 index 0000000..4f446a3 --- /dev/null +++ b/website_variant_values_visibility/tests/test_product_attribute_value.py @@ -0,0 +1,43 @@ +from odoo.tests import TransactionCase + + +class TestProductAttributeValue(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context={**cls.env.context, "tracking_disable": True}) + cls.attribute = cls.env["product.attribute"].create({"name": "Color"}) + cls.value_red = cls.env["product.attribute.value"].create( + {"name": "Red", "attribute_id": cls.attribute.id} + ) + cls.value_blue = cls.env["product.attribute.value"].create( + {"name": "Blue", "attribute_id": cls.attribute.id} + ) + + # --- visible_in_ecommerce field --- + + def test_default_is_true(self): + value = self.env["product.attribute.value"].create( + {"name": "Green", "attribute_id": self.attribute.id} + ) + self.assertTrue(value.visible_in_ecommerce) + + def test_can_be_set_false_on_create(self): + value = self.env["product.attribute.value"].create( + { + "name": "Yellow", + "attribute_id": self.attribute.id, + "visible_in_ecommerce": False, + } + ) + self.assertFalse(value.visible_in_ecommerce) + + def test_write_false(self): + self.value_red.write({"visible_in_ecommerce": False}) + self.assertFalse(self.value_red.visible_in_ecommerce) + + def test_write_toggle(self): + self.value_red.write({"visible_in_ecommerce": False}) + self.assertFalse(self.value_red.visible_in_ecommerce) + self.value_red.write({"visible_in_ecommerce": True}) + self.assertTrue(self.value_red.visible_in_ecommerce) diff --git a/website_variant_values_visibility/views/product_attribute_value_views.xml b/website_variant_values_visibility/views/product_attribute_value_views.xml new file mode 100644 index 0000000..66348a8 --- /dev/null +++ b/website_variant_values_visibility/views/product_attribute_value_views.xml @@ -0,0 +1,14 @@ + + + + + product.attribute.form + product.attribute + + + + + + + + diff --git a/website_variant_values_visibility/views/variant_template.xml b/website_variant_values_visibility/views/variant_template.xml new file mode 100644 index 0000000..634c307 --- /dev/null +++ b/website_variant_values_visibility/views/variant_template.xml @@ -0,0 +1,55 @@ + + + + +