diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py index 534d1b01a9c..128be6f7dbe 100644 --- a/addons/auth_openid/controllers/main.py +++ b/addons/auth_openid/controllers/main.py @@ -23,7 +23,6 @@ import logging import os import tempfile import getpass -import urllib import werkzeug.urls import werkzeug.exceptions @@ -79,7 +78,7 @@ class GoogleAppsAwareConsumer(consumer.GenericConsumer): # update fields for attr in ['claimed_id', 'identity']: value = message.getArg(consumer.OPENID2_NS, attr, '') - value = 'https://www.google.com/accounts/o8/user-xrds?uri=%s' % urllib.quote_plus(value) + value = 'https://www.google.com/accounts/o8/user-xrds?uri=%s' % werkzeug.url_quote_plus(value) message.setArg(consumer.OPENID2_NS, attr, value) # now, resign the message diff --git a/addons/edi/controllers/main.py b/addons/edi/controllers/main.py index 86115d12d4b..d92cb2478cc 100644 --- a/addons/edi/controllers/main.py +++ b/addons/edi/controllers/main.py @@ -1,5 +1,5 @@ import simplejson -import urllib +import werkzeug.urls import openerp import openerp.addons.web.controllers.main as webmain @@ -17,7 +17,7 @@ class EDI(openerp.http.Controller): css = "\n ".join('' % i for i in webmain.manifest_list(req, modules_str, 'css')) # `url` may contain a full URL with a valid query string, we basically want to watch out for XML brackets and double-quotes - safe_url = urllib.quote_plus(url,':/?&;=') + safe_url = werkzeug.url_quote_plus(url,':/?&;=') return webmain.html_template % { 'js': js, diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py index 2e8d4d9373e..22b880956cc 100644 --- a/addons/share/wizard/share_wizard.py +++ b/addons/share/wizard/share_wizard.py @@ -21,7 +21,6 @@ import logging import random import time -from urllib import quote_plus import uuid from openerp import SUPERUSER_ID diff --git a/addons/website/models/website.py b/addons/website/models/website.py index e053863e557..a0e6a458119 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -80,17 +80,7 @@ def slug(value): return "%s-%d" % (slugify(name), id) def urlplus(url, params): - if not params: - return url - - # can't use urlencode because it encodes to (ascii, replace) in p2 - return "%s?%s" % (url, '&'.join( - k + '=' + urllib.quote_plus(v.encode('utf-8') if isinstance(v, unicode) else str(v)) - for k, v in params.iteritems() - )) - -def quote_plus(value): - return urllib.quote_plus(value.encode('utf-8') if isinstance(value, unicode) else str(value)) + return werkzeug.Href(url)(params or None) class website(osv.osv): def _get_menu_website(self, cr, uid, ids, context=None): @@ -243,7 +233,7 @@ class website(osv.osv): slug=slug, res_company=request.website.company_id, user_id=user.browse(cr, uid, uid), - quote_plus=quote_plus, + quote_plus=werkzeug.url_quote_plus, ) qweb_values.setdefault('editable', False) diff --git a/addons/website/tests/test_requests.py b/addons/website/tests/test_requests.py index a60501a6513..ecdb8d99d7d 100644 --- a/addons/website/tests/test_requests.py +++ b/addons/website/tests/test_requests.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- import collections -import urllib import urlparse import unittest2 import urllib2 @@ -66,7 +65,7 @@ class CrawlSuite(unittest2.TestSuite): # blow up in multidb situations self.opener.open('http://localhost:{port}/web/?db={db}'.format( port=tools.config['xmlrpc_port'], - db=urllib.quote_plus(tools.config['db_name']), + db=werkzeug.url_quote_plus(tools.config['db_name']), )) if user is not None: url = 'http://localhost:{port}/login?{query}'.format( diff --git a/addons/website_crm/controllers/main.py b/addons/website_crm/controllers/main.py index 7f4443d26a4..85ffc950a3f 100644 --- a/addons/website_crm/controllers/main.py +++ b/addons/website_crm/controllers/main.py @@ -4,13 +4,13 @@ from openerp.addons.web import http from openerp.addons.web.http import request from openerp import SUPERUSER_ID -from urllib import quote_plus +import werkzeug.urls class contactus(http.Controller): def generate_google_map_url(self, street, city, city_zip, country_name): - url = "http://maps.googleapis.com/maps/api/staticmap?center=%s&sensor=false&zoom=8&size=298x298" % quote_plus( + url = "http://maps.googleapis.com/maps/api/staticmap?center=%s&sensor=false&zoom=8&size=298x298" % werkzeug.url_quote_plus( '%s, %s %s, %s' % (street, city, city_zip, country_name) ) return url