diff --git a/addons/auth_signup/tests/__init__.py b/addons/auth_signup/tests/__init__.py new file mode 100644 index 00000000000..3de6b038202 --- /dev/null +++ b/addons/auth_signup/tests/__init__.py @@ -0,0 +1 @@ +from . import test_login diff --git a/addons/auth_signup/tests/test_login.py b/addons/auth_signup/tests/test_login.py new file mode 100644 index 00000000000..033defbaf18 --- /dev/null +++ b/addons/auth_signup/tests/test_login.py @@ -0,0 +1,2 @@ +# rerun TestWebLogin tests with auth_signup installed +from odoo.addons.web.tests.test_login import TestWebLogin # pylint: disable=W0611 diff --git a/addons/http_routing/models/ir_qweb.py b/addons/http_routing/models/ir_qweb.py index d0b9fbee734..cef8e58efb0 100644 --- a/addons/http_routing/models/ir_qweb.py +++ b/addons/http_routing/models/ir_qweb.py @@ -1,37 +1,10 @@ -# -*- coding: ascii -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -import fnmatch -import werkzeug - from odoo import models from odoo.http import request from odoo.addons.http_routing.models.ir_http import slug, unslug_url, url_for -def keep_query(*keep_params, **additional_params): - """ - Generate a query string keeping the current request querystring's parameters specified - in ``keep_params`` and also adds the parameters specified in ``additional_params``. - - Multiple values query string params will be merged into a single one with comma seperated - values. - - The ``keep_params`` arguments can use wildcards too, eg: - - keep_query('search', 'shop_*', page=4) - """ - if not keep_params and not additional_params: - keep_params = ('*',) - params = additional_params.copy() - qs_keys = list(request.httprequest.args) if request else [] - for keep_param in keep_params: - for param in fnmatch.filter(qs_keys, keep_param): - if param not in additional_params and param in qs_keys: - params[param] = request.httprequest.args.getlist(param) - return werkzeug.urls.url_encode(params) - - class IrQweb(models.AbstractModel): _inherit = "ir.qweb" @@ -39,7 +12,6 @@ class IrQweb(models.AbstractModel): irQweb = super()._prepare_environment(values) values['slug'] = slug values['unslug_url'] = unslug_url - values['keep_query'] = keep_query if (not irQweb.env.context.get('minimal_qcontext') and request and request.is_frontend): diff --git a/addons/survey/controllers/main.py b/addons/survey/controllers/main.py index fafe7f03ee5..fdb6cdc625f 100644 --- a/addons/survey/controllers/main.py +++ b/addons/survey/controllers/main.py @@ -9,11 +9,11 @@ from datetime import datetime, timedelta from dateutil.relativedelta import relativedelta from odoo import fields, http, SUPERUSER_ID, _ -from odoo.addons.http_routing.models.ir_qweb import keep_query from odoo.exceptions import UserError from odoo.http import request, content_disposition from odoo.osv import expression from odoo.tools import format_datetime, format_date, is_html_empty +from odoo.addons.base.models.ir_qweb import keep_query _logger = logging.getLogger(__name__) diff --git a/addons/web/tests/__init__.py b/addons/web/tests/__init__.py index 031e1b56852..d2330ddc32f 100644 --- a/addons/web/tests/__init__.py +++ b/addons/web/tests/__init__.py @@ -13,3 +13,4 @@ from . import test_profiler from . import test_session_info from . import test_read_progress_bar from . import test_assets +from . import test_login diff --git a/addons/web/tests/test_login.py b/addons/web/tests/test_login.py new file mode 100644 index 00000000000..387804575ab --- /dev/null +++ b/addons/web/tests/test_login.py @@ -0,0 +1,28 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests.common import HttpCase, new_test_user + +class TestWebLogin(HttpCase): + def test_web_login(self): + new_test_user(self.env, 'jackoneill', context={'lang': 'en_US'}) + + # get login form + res_get = self.url_open('/web/login') + res_get.raise_for_status() + csrf_anchor = '