From 1995472e4c7b5fbbe4b1b14b6981d5cbaaa91e84 Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Thu, 7 Dec 2017 14:56:33 +0100 Subject: [PATCH 1/5] [ADD] website_sale_credit_point --- website_sale_credit_point/README.rst | 51 +++++++++++++++++++ website_sale_credit_point/__init__.py | 1 + website_sale_credit_point/__manifest__.py | 18 +++++++ .../controllers/__init__.py | 1 + .../controllers/website_sale.py | 24 +++++++++ website_sale_credit_point/templates/cart.xml | 14 +++++ 6 files changed, 109 insertions(+) create mode 100644 website_sale_credit_point/README.rst create mode 100644 website_sale_credit_point/__init__.py create mode 100644 website_sale_credit_point/__manifest__.py create mode 100644 website_sale_credit_point/controllers/__init__.py create mode 100644 website_sale_credit_point/controllers/website_sale.py create mode 100644 website_sale_credit_point/templates/cart.xml diff --git a/website_sale_credit_point/README.rst b/website_sale_credit_point/README.rst new file mode 100644 index 0000000000..2f1fa924ec --- /dev/null +++ b/website_sale_credit_point/README.rst @@ -0,0 +1,51 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl + :alt: License: AGPL-3 + +========================= +website_sale_credit_point +========================= + +Integrate `sale_credit_point` within Odoo e-shop. + +Sale credit point module allows you to buy things based on fixed credit. +This module integrates the latter with the ecommerce +and prevents users to complete checkout in case credit's amount is not ok. + +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 smash it by providing detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Simone Orsi + +Do not contact contributors directly about support or help with technical issues. + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/website_sale_credit_point/__init__.py b/website_sale_credit_point/__init__.py new file mode 100644 index 0000000000..e046e49fbe --- /dev/null +++ b/website_sale_credit_point/__init__.py @@ -0,0 +1 @@ +from . import controllers diff --git a/website_sale_credit_point/__manifest__.py b/website_sale_credit_point/__manifest__.py new file mode 100644 index 0000000000..85554eaa82 --- /dev/null +++ b/website_sale_credit_point/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + 'name': 'Ecommerce Sale Credit Point', + 'version': '11.0.1.0.0', + 'category': 'Sales', + 'license': 'AGPL-3', + 'author': 'Camptocamp, Odoo Community Association (OCA)', + 'website': 'https://github.com/OCA/e-commerce/', + 'depends': [ + 'website_sale', + 'sale_credit_point', + ], + 'data': [ + 'templates/cart.xml', + ], +} diff --git a/website_sale_credit_point/controllers/__init__.py b/website_sale_credit_point/controllers/__init__.py new file mode 100644 index 0000000000..bdae4ccade --- /dev/null +++ b/website_sale_credit_point/controllers/__init__.py @@ -0,0 +1 @@ +from . import website_sale diff --git a/website_sale_credit_point/controllers/website_sale.py b/website_sale_credit_point/controllers/website_sale.py new file mode 100644 index 0000000000..e033850cc1 --- /dev/null +++ b/website_sale_credit_point/controllers/website_sale.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Copyright 2016-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.addons.website_sale.controllers.main import WebsiteSale + +from odoo.exceptions import UserError +from odoo.http import request + + +class WebsiteSale(WebsiteSale): + + def checkout_redirection(self, order): + """Don't process checkout if credit check is not satisfied.""" + redirection = super(WebsiteSale, self).checkout_redirection(order) + if redirection: + return redirection + else: + try: + order.credit_point_check() + except UserError as exc: + # error msg if not enought points + request.session['credit_point_limit_error'] = exc.name + return request.redirect('/shop/cart/') diff --git a/website_sale_credit_point/templates/cart.xml b/website_sale_credit_point/templates/cart.xml new file mode 100644 index 0000000000..6d4f9319e0 --- /dev/null +++ b/website_sale_credit_point/templates/cart.xml @@ -0,0 +1,14 @@ + + + From aafaf76b4f1e974e3300d77ae514bd7d58923f93 Mon Sep 17 00:00:00 2001 From: Hai Lang Date: Tue, 18 Oct 2022 14:22:26 +0700 Subject: [PATCH 2/5] [IMP] website_sale_credit_point: black, isort, prettier --- .../odoo/addons/website_sale_credit_point | 1 + setup/website_sale_credit_point/setup.cfg | 2 ++ setup/website_sale_credit_point/setup.py | 6 +++++ website_sale_credit_point/__manifest__.py | 22 +++++++++---------- .../controllers/website_sale.py | 10 ++++----- website_sale_credit_point/templates/cart.xml | 12 +++++++--- 6 files changed, 33 insertions(+), 20 deletions(-) create mode 120000 setup/website_sale_credit_point/odoo/addons/website_sale_credit_point create mode 100644 setup/website_sale_credit_point/setup.cfg create mode 100644 setup/website_sale_credit_point/setup.py diff --git a/setup/website_sale_credit_point/odoo/addons/website_sale_credit_point b/setup/website_sale_credit_point/odoo/addons/website_sale_credit_point new file mode 120000 index 0000000000..f952c60149 --- /dev/null +++ b/setup/website_sale_credit_point/odoo/addons/website_sale_credit_point @@ -0,0 +1 @@ +../../../../website_sale_credit_point \ No newline at end of file diff --git a/setup/website_sale_credit_point/setup.cfg b/setup/website_sale_credit_point/setup.cfg new file mode 100644 index 0000000000..3c6e79cf31 --- /dev/null +++ b/setup/website_sale_credit_point/setup.cfg @@ -0,0 +1,2 @@ +[bdist_wheel] +universal=1 diff --git a/setup/website_sale_credit_point/setup.py b/setup/website_sale_credit_point/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/website_sale_credit_point/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/website_sale_credit_point/__manifest__.py b/website_sale_credit_point/__manifest__.py index 85554eaa82..dc5299b377 100644 --- a/website_sale_credit_point/__manifest__.py +++ b/website_sale_credit_point/__manifest__.py @@ -2,17 +2,17 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { - 'name': 'Ecommerce Sale Credit Point', - 'version': '11.0.1.0.0', - 'category': 'Sales', - 'license': 'AGPL-3', - 'author': 'Camptocamp, Odoo Community Association (OCA)', - 'website': 'https://github.com/OCA/e-commerce/', - 'depends': [ - 'website_sale', - 'sale_credit_point', + "name": "Ecommerce Sale Credit Point", + "version": "11.0.1.0.0", + "category": "Sales", + "license": "AGPL-3", + "author": "Camptocamp, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/e-commerce", + "depends": [ + "website_sale", + "sale_credit_point", ], - 'data': [ - 'templates/cart.xml', + "data": [ + "templates/cart.xml", ], } diff --git a/website_sale_credit_point/controllers/website_sale.py b/website_sale_credit_point/controllers/website_sale.py index e033850cc1..28653236f5 100644 --- a/website_sale_credit_point/controllers/website_sale.py +++ b/website_sale_credit_point/controllers/website_sale.py @@ -1,15 +1,13 @@ -# -*- coding: utf-8 -*- # Copyright 2016-2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo.addons.website_sale.controllers.main import WebsiteSale - from odoo.exceptions import UserError from odoo.http import request +from odoo.addons.website_sale.controllers.main import WebsiteSale -class WebsiteSale(WebsiteSale): +class WebsiteSale(WebsiteSale): def checkout_redirection(self, order): """Don't process checkout if credit check is not satisfied.""" redirection = super(WebsiteSale, self).checkout_redirection(order) @@ -20,5 +18,5 @@ def checkout_redirection(self, order): order.credit_point_check() except UserError as exc: # error msg if not enought points - request.session['credit_point_limit_error'] = exc.name - return request.redirect('/shop/cart/') + request.session["credit_point_limit_error"] = exc.name + return request.redirect("/shop/cart/") diff --git a/website_sale_credit_point/templates/cart.xml b/website_sale_credit_point/templates/cart.xml index 6d4f9319e0..4119ca5b84 100644 --- a/website_sale_credit_point/templates/cart.xml +++ b/website_sale_credit_point/templates/cart.xml @@ -1,11 +1,17 @@