From 4c3ddf13121d19b36c3deb3c9e2c20951ed9454a Mon Sep 17 00:00:00 2001 From: Victor Champonnois Date: Wed, 29 Jan 2025 15:59:28 +0100 Subject: [PATCH] [ADD] website_sale_browse_mode --- .../odoo/addons/website_sale_browse_mode | 1 + setup/website_sale_browse_mode/setup.py | 6 + website_sale_browse_mode/README.rst | 80 ++++ website_sale_browse_mode/__init__.py | 1 + website_sale_browse_mode/__manifest__.py | 15 + website_sale_browse_mode/models/__init__.py | 3 + .../models/product_template.py | 9 + .../models/res_config_settings.py | 16 + website_sale_browse_mode/models/website.py | 15 + .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 3 + .../static/description/index.html | 425 ++++++++++++++++++ .../views/res_config_settings.xml | 31 ++ website_sale_browse_mode/views/website.xml | 15 + .../views/website_sale_template.xml | 26 ++ 15 files changed, 649 insertions(+) create mode 120000 setup/website_sale_browse_mode/odoo/addons/website_sale_browse_mode create mode 100644 setup/website_sale_browse_mode/setup.py create mode 100644 website_sale_browse_mode/README.rst create mode 100644 website_sale_browse_mode/__init__.py create mode 100644 website_sale_browse_mode/__manifest__.py create mode 100644 website_sale_browse_mode/models/__init__.py create mode 100644 website_sale_browse_mode/models/product_template.py create mode 100644 website_sale_browse_mode/models/res_config_settings.py create mode 100644 website_sale_browse_mode/models/website.py create mode 100644 website_sale_browse_mode/readme/CONTRIBUTORS.rst create mode 100644 website_sale_browse_mode/readme/DESCRIPTION.rst create mode 100644 website_sale_browse_mode/static/description/index.html create mode 100644 website_sale_browse_mode/views/res_config_settings.xml create mode 100644 website_sale_browse_mode/views/website.xml create mode 100644 website_sale_browse_mode/views/website_sale_template.xml diff --git a/setup/website_sale_browse_mode/odoo/addons/website_sale_browse_mode b/setup/website_sale_browse_mode/odoo/addons/website_sale_browse_mode new file mode 120000 index 0000000000..ec3d878ce2 --- /dev/null +++ b/setup/website_sale_browse_mode/odoo/addons/website_sale_browse_mode @@ -0,0 +1 @@ +../../../../website_sale_browse_mode \ No newline at end of file diff --git a/setup/website_sale_browse_mode/setup.py b/setup/website_sale_browse_mode/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/website_sale_browse_mode/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/website_sale_browse_mode/README.rst b/website_sale_browse_mode/README.rst new file mode 100644 index 0000000000..c3ca52cdef --- /dev/null +++ b/website_sale_browse_mode/README.rst @@ -0,0 +1,80 @@ +======================== +Website Sale Browse Mode +======================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:e2a8a2bd20985ff73fba3ef9548bdf539500913340f56674331b83490c96b1fb + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/16.0/website_sale_browse_mode + :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-16-0/e-commerce-16-0-website_sale_browse_mode + :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=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Show the shop products but disable shopping. +This module is useful for wholesale company taking orders from their clients at specific window of time in the week. They can set the website in browse mode outside these time windows. +The solution chosen is to remove the "add to cart" button rather than to prevent access to the whole shop, which would be more complicated technically. + +**Table of contents** + +.. contents:: + :local: + +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 +~~~~~~~ + +* Coop IT Easy SC + +Contributors +~~~~~~~~~~~~ + +* `Coop IT Easy SC `_: + + * Victor Champonnois + +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_browse_mode/__init__.py b/website_sale_browse_mode/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/website_sale_browse_mode/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/website_sale_browse_mode/__manifest__.py b/website_sale_browse_mode/__manifest__.py new file mode 100644 index 0000000000..f2579cb9ff --- /dev/null +++ b/website_sale_browse_mode/__manifest__.py @@ -0,0 +1,15 @@ +{ + "name": "Website Sale Browse Mode", + "version": "16.0.1.0.0", + "category": "Website", + "author": "Coop IT Easy SC, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/e-commerce", + "license": "AGPL-3", + "depends": ["website_sale_stock"], + "data": [ + "views/website.xml", + "views/res_config_settings.xml", + "views/website_sale_template.xml", + ], + "installable": True, +} diff --git a/website_sale_browse_mode/models/__init__.py b/website_sale_browse_mode/models/__init__.py new file mode 100644 index 0000000000..25d3d18af5 --- /dev/null +++ b/website_sale_browse_mode/models/__init__.py @@ -0,0 +1,3 @@ +from . import product_template +from . import res_config_settings +from . import website diff --git a/website_sale_browse_mode/models/product_template.py b/website_sale_browse_mode/models/product_template.py new file mode 100644 index 0000000000..6a1d3f48d6 --- /dev/null +++ b/website_sale_browse_mode/models/product_template.py @@ -0,0 +1,9 @@ +from odoo import models + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + def _website_show_quick_add(self): + website = self.env["website"].get_current_website() + return not website.enable_browse_mode and super()._website_show_quick_add() diff --git a/website_sale_browse_mode/models/res_config_settings.py b/website_sale_browse_mode/models/res_config_settings.py new file mode 100644 index 0000000000..bd43f86bf6 --- /dev/null +++ b/website_sale_browse_mode/models/res_config_settings.py @@ -0,0 +1,16 @@ +# Copyright 2019-Today Coop IT Easy SC +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + + _inherit = "res.config.settings" + + enable_browse_mode = fields.Boolean( + help="When checked, users can no longer buy products from the webshop." + "They can only browse the shop and see the products", + related="website_id.enable_browse_mode", + readonly=False, + ) diff --git a/website_sale_browse_mode/models/website.py b/website_sale_browse_mode/models/website.py new file mode 100644 index 0000000000..0a618e8ca9 --- /dev/null +++ b/website_sale_browse_mode/models/website.py @@ -0,0 +1,15 @@ +# Copyright 2019-Today Coop IT Easy SC +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class Website(models.Model): + + _inherit = "website" + + enable_browse_mode = fields.Boolean( + default=False, + help="When checked, users can no longer buy products from the webshop." + "They can only browse the shop and see the products", + ) diff --git a/website_sale_browse_mode/readme/CONTRIBUTORS.rst b/website_sale_browse_mode/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..146abeb907 --- /dev/null +++ b/website_sale_browse_mode/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Coop IT Easy SC `_: + + * Victor Champonnois diff --git a/website_sale_browse_mode/readme/DESCRIPTION.rst b/website_sale_browse_mode/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..6f7dc32db0 --- /dev/null +++ b/website_sale_browse_mode/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +Show the shop products but disable shopping. +This module is useful for wholesale company taking orders from their clients at specific window of time in the week. They can set the website in browse mode outside these time windows. +The solution chosen is to remove the "add to cart" button rather than to prevent access to the whole shop, which would be more complicated technically. diff --git a/website_sale_browse_mode/static/description/index.html b/website_sale_browse_mode/static/description/index.html new file mode 100644 index 0000000000..91b2734fe7 --- /dev/null +++ b/website_sale_browse_mode/static/description/index.html @@ -0,0 +1,425 @@ + + + + + +Website Sale Browse Mode + + + +
+

Website Sale Browse Mode

+ + +

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

+

Show the shop products but disable shopping. +This module is useful for wholesale company taking orders from their clients at specific window of time in the week. They can set the website in browse mode outside these time windows. +The solution chosen is to remove the “add to cart” button rather than to prevent access to the whole shop, which would be more complicated technically.

+

Table of contents

+ +
+

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

+
    +
  • Coop IT Easy SC
  • +
+
+
+

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_browse_mode/views/res_config_settings.xml b/website_sale_browse_mode/views/res_config_settings.xml new file mode 100644 index 0000000000..e3a968b6b4 --- /dev/null +++ b/website_sale_browse_mode/views/res_config_settings.xml @@ -0,0 +1,31 @@ + + + + + res.config.settings.view.form.inherit.website.sale + res.config.settings + + +
+
+
+ +
+
+
+
+
+
+
+
diff --git a/website_sale_browse_mode/views/website.xml b/website_sale_browse_mode/views/website.xml new file mode 100644 index 0000000000..b25ea9d20f --- /dev/null +++ b/website_sale_browse_mode/views/website.xml @@ -0,0 +1,15 @@ + + + + + website.form + website + + + + + + + + diff --git a/website_sale_browse_mode/views/website_sale_template.xml b/website_sale_browse_mode/views/website_sale_template.xml new file mode 100644 index 0000000000..9b611adacc --- /dev/null +++ b/website_sale_browse_mode/views/website_sale_template.xml @@ -0,0 +1,26 @@ + + + + +