From ad71d6d3ee9dcacdabec93b035e14e801c2b582d Mon Sep 17 00:00:00 2001 From: Julien Castiaux Date: Mon, 25 Jul 2022 13:07:19 +0000 Subject: [PATCH] [REM] website_utm: website depends on utm already `_post_dispatch` is a late addition to the httpocalypse. It can be used to alter the response object e.g. to inject headers or cookies. The function is automatically called for regular, fallback and error responses. On the other hand, `_dispatch` is only called when an endpoint is matched and might not return a response in case of error. task-2839031 closes odoo/odoo#96651 Related: odoo/upgrade#3710 Signed-off-by: Julien Castiaux --- addons/utm/models/ir_http.py | 13 +++++-------- addons/website_utm/__init__.py | 2 -- addons/website_utm/__manifest__.py | 11 ----------- addons/website_utm/models/__init__.py | 2 -- addons/website_utm/models/ir_http.py | 13 ------------- 5 files changed, 5 insertions(+), 36 deletions(-) delete mode 100644 addons/website_utm/__init__.py delete mode 100644 addons/website_utm/__manifest__.py delete mode 100644 addons/website_utm/models/__init__.py delete mode 100644 addons/website_utm/models/ir_http.py diff --git a/addons/utm/models/ir_http.py b/addons/utm/models/ir_http.py index e7cedd03312..451078ffaa9 100644 --- a/addons/utm/models/ir_http.py +++ b/addons/utm/models/ir_http.py @@ -12,16 +12,13 @@ class IrHttp(models.AbstractModel): return request.httprequest.host @classmethod - def _set_utm(cls): + def _set_utm(cls, response): domain = cls.get_utm_domain_cookies() for url_parameter, __, cookie_name in request.env['utm.mixin'].tracking_fields(): if url_parameter in request.params and request.httprequest.cookies.get(cookie_name) != request.params[url_parameter]: - request.future_response.set_cookie(cookie_name, request.params[url_parameter], domain=domain) - + response.set_cookie(cookie_name, request.params[url_parameter], domain=domain) @classmethod - def _dispatch(cls, endpoint): - # cannot override _pre_dispatch() as _set_utm() requires the - # params from the request's body. - cls._set_utm() - return super()._dispatch(endpoint) + def _post_dispatch(cls, response): + cls._set_utm(response) + super()._post_dispatch(response) diff --git a/addons/website_utm/__init__.py b/addons/website_utm/__init__.py deleted file mode 100644 index d581b39cea7..00000000000 --- a/addons/website_utm/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import models diff --git a/addons/website_utm/__manifest__.py b/addons/website_utm/__manifest__.py deleted file mode 100644 index a57e68995c2..00000000000 --- a/addons/website_utm/__manifest__.py +++ /dev/null @@ -1,11 +0,0 @@ -# Part of Odoo. See LICENSE file for full copyright and licensing details. -{ - 'name': "Website UTM glue code", - 'summary': "Technical module adding utm compatibility to website.", - 'website': "https://www.odoo.com", - 'category': 'Hidden', - 'version': '1.0', - 'depends': ['utm', 'website'], - 'auto_install': True, - 'license': 'LGPL-3', -} diff --git a/addons/website_utm/models/__init__.py b/addons/website_utm/models/__init__.py deleted file mode 100644 index 171037b8a2a..00000000000 --- a/addons/website_utm/models/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import ir_http diff --git a/addons/website_utm/models/ir_http.py b/addons/website_utm/models/ir_http.py deleted file mode 100644 index 2ed4fda3bfb..00000000000 --- a/addons/website_utm/models/ir_http.py +++ /dev/null @@ -1,13 +0,0 @@ -# Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import models - - -class IrHttp(models.AbstractModel): - _inherit = 'ir.http' - - @classmethod - def _serve_fallback(cls): - resp = super()._serve_fallback() - if resp: - cls._set_utm() - return resp