summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2016-08-18 14:30:08 +0200
committerRaphael Collet <rco@openerp.com>2016-08-31 17:21:58 +0200
commit75dc39e0428465f38b2d3c4840764cdb0fac69db (patch)
tree25c7c817d9e6631df40ab39e75ed78e90b1e2ad3 /addons
parent4033ccc129e5463eb97b5d867a13220c10cd0dc6 (diff)
[REF] openerp.http: make `request.context` consistent with `request.env.context`
Diffstat (limited to 'addons')
-rw-r--r--addons/web/controllers/main.py6
-rw-r--r--addons/web_editor/models/ir_http.py14
-rw-r--r--addons/website/models/ir_http.py16
-rw-r--r--addons/website/models/website.py2
-rw-r--r--addons/website_event/controllers/main.py4
-rw-r--r--addons/website_event_sale/controllers/main.py6
-rw-r--r--addons/website_sale/controllers/main.py2
7 files changed, 26 insertions, 24 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 186e9715a8c..55edef0a3ed 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -1102,14 +1102,14 @@ class Action(http.Controller):
base_action = Actions.browse([action_id]).read(['type'])
if base_action:
- ctx = request.context
+ ctx = dict(request.context)
action_type = base_action[0]['type']
if action_type == 'ir.actions.report.xml':
ctx.update({'bin_size': True})
if additional_context:
ctx.update(additional_context)
- env = request.env(context=ctx)
- action = env[action_type].browse([action_id]).read()
+ request.context = ctx
+ action = request.env[action_type].browse([action_id]).read()
if action:
value = clean_action(action[0])
return value
diff --git a/addons/web_editor/models/ir_http.py b/addons/web_editor/models/ir_http.py
index 238b488716e..5abe7862245 100644
--- a/addons/web_editor/models/ir_http.py
+++ b/addons/web_editor/models/ir_http.py
@@ -9,10 +9,12 @@ class IrHttp(models.AbstractModel):
_inherit = 'ir.http'
def _dispatch(self):
- if 'editable' in request.httprequest.args and 'editable' not in request.context:
- request.context['editable'] = True
- if 'edit_translations' in request.httprequest.args and 'edit_translations' not in request.context:
- request.context['edit_translations'] = True
- if request.context.get('lang') != "en_US" and 'translatable' not in request.context:
- request.context['translatable'] = True
+ context = dict(request.context)
+ if 'editable' in request.httprequest.args and 'editable' not in context:
+ context['editable'] = True
+ if 'edit_translations' in request.httprequest.args and 'edit_translations' not in context:
+ context['edit_translations'] = True
+ if context.get('lang') != "en_US" and 'translatable' not in context:
+ context['translatable'] = True
+ request.context = context
return super(IrHttp, self)._dispatch()
diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py
index 6aa299ed4fb..58e87bb8e20 100644
--- a/addons/website/models/ir_http.py
+++ b/addons/website/models/ir_http.py
@@ -154,7 +154,8 @@ class Http(models.AbstractModel):
request.redirect = lambda url, code=302: werkzeug.utils.redirect(url_for(url), code)
request.website = request.env['website'].get_current_website() # can use `request.env` since auth methods are called
- request.context['website_id'] = request.website.id
+ context = dict(request.context)
+ context['website_id'] = request.website.id
langs = [lg[0] for lg in request.website.get_languages()]
path = request.httprequest.path.split('/')
if first_pass:
@@ -166,7 +167,7 @@ class Http(models.AbstractModel):
is_a_bot = self.is_a_bot()
- request.lang = request.context['lang'] = nearest_lang or preferred_lang
+ request.lang = context['lang'] = nearest_lang or preferred_lang
# if lang in url but not the displayed or default language --> change or remove
# or no lang in url, and lang to dispay not the default language --> add lang
# and not a POST request
@@ -182,17 +183,20 @@ class Http(models.AbstractModel):
path = '/'.join(path) or '/'
redirect = request.redirect(path + '?' + request.httprequest.query_string)
redirect.set_cookie('website_lang', request.lang)
+ request.context = context
return redirect
elif url_lang:
request.uid = None
path.pop(1)
+ request.context = context
return self.reroute('/'.join(path) or '/')
if path[1] == request.website.default_lang_code:
- request.context['edit_translations'] = False
- if not request.context.get('tz'):
- request.context['tz'] = request.session.get('geoip', {}).get('time_zone')
+ context['edit_translations'] = False
+ if not context.get('tz'):
+ context['tz'] = request.session.get('geoip', {}).get('time_zone')
# bind modified context
- request.website = request.website.with_context(request.context)
+ request.context = context
+ request.website = request.website.with_context(context)
# removed cache for auth public
request.cache_save = False
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index e48fa69136c..a2ce44f72ca 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -394,7 +394,7 @@ class Website(models.Model):
def get_current_website(self):
domain_name = request.httprequest.environ.get('HTTP_HOST', '').split(':')[0]
website_id = self._get_current_website_id(domain_name)
- request.context['website_id'] = website_id
+ request.context = dict(request.context, website_id=website_id)
return self.browse(website_id)
@tools.cache('domain_name')
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index c0ec1c82708..9a9ef605118 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -178,8 +178,6 @@ class WebsiteEventController(http.Controller):
return request.redirect("/event/%s/register?enable_editor=1" % slug(event))
def _add_event(self, event_name=None, context=None, **kwargs):
- if context is None:
- context = {}
if not event_name:
event_name = _("New Event")
date_begin = datetime.today() + timedelta(days=(14))
@@ -189,7 +187,7 @@ class WebsiteEventController(http.Controller):
'date_end': fields.Date.to_string((date_begin + timedelta(days=(1)))),
'seats_available': 1000,
}
- return request.env['event.event'].with_context(context).create(vals)
+ return request.env['event.event'].with_context(context or {}).create(vals)
def get_formated_date(self, event):
start_date = fields.Datetime.from_string(event.date_begin).date()
diff --git a/addons/website_event_sale/controllers/main.py b/addons/website_event_sale/controllers/main.py
index 3b35337b250..9ddb85f7bb7 100644
--- a/addons/website_event_sale/controllers/main.py
+++ b/addons/website_event_sale/controllers/main.py
@@ -55,15 +55,13 @@ class WebsiteEventSaleController(WebsiteEventController):
return request.redirect("/shop/checkout")
def _add_event(self, event_name="New Event", context=None, **kwargs):
- if context is None:
- context = {}
product = request.env.ref('event_sale.product_product_event', raise_if_not_found=False)
if product:
- context['default_event_ticket_ids'] = [[0, 0, {
+ context = dict(context or {}, default_event_ticket_ids=[[0, 0, {
'name': _('Registration'),
'product_id': product.id,
'deadline': False,
'seats_max': 1000,
'price': 0,
- }]]
+ }]])
return super(WebsiteEventSaleController, self)._add_event(event_name, context, **kwargs)
diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py
index 54ed985928f..a756173183e 100644
--- a/addons/website_sale/controllers/main.py
+++ b/addons/website_sale/controllers/main.py
@@ -205,7 +205,7 @@ class WebsiteSale(http.Controller):
else:
pricelist = request.env['product.pricelist'].browse(pricelist_context['pricelist'])
- request.env = request.env(context=dict(request.env.context, pricelist=pricelist.id, partner=request.env.user.partner_id))
+ request.context = dict(request.context, pricelist=pricelist.id, partner=request.env.user.partner_id)
url = "/shop"
if search: