From 2f1814088f16d704af0350e0b8892d3827c44ae1 Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Tue, 9 Sep 2014 16:51:35 +0200 Subject: [PATCH] [IMP] crm: Use cookies to save utm instead of session. --- addons/crm/crm.py | 2 +- addons/crm/ir_http.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index bb5cd031df4..f694f527957 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -82,7 +82,7 @@ class crm_tracking_mixin(osv.AbstractModel): def tracking_get_values(self, cr, uid, vals, context=None): for key, field in self.tracking_fields(): column = self._all_columns[field].column - value = vals.get(field) or (request and request.session.get(key)) # params.get should be always in session by the dispatch from ir_http + value = vals.get(field) or (request and request.httprequest.cookies.get(key)) # params.get should be always in session by the dispatch from ir_http if column._type in ['many2one'] and isinstance(value, basestring): # if we receive a string for a many2one, we search / create the id if value: Model = self.pool[column._obj] diff --git a/addons/crm/ir_http.py b/addons/crm/ir_http.py index e2bc9be4867..aeebe6427b1 100644 --- a/addons/crm/ir_http.py +++ b/addons/crm/ir_http.py @@ -6,8 +6,12 @@ from openerp.osv import orm class ir_http(orm.AbstractModel): _inherit = 'ir.http' + def get_utm_domain_cookies(slef): + return request.httprequest.host + def _dispatch(self): + response = super(ir_http, self)._dispatch() for var, dummy in self.pool['crm.tracking.mixin'].tracking_fields(): if var in request.params and (var not in request.session or request.session[var] != request.params[var]): - request.session[var] = request.params[var] - return super(ir_http, self)._dispatch() + response.set_cookie(var, request.params[var], domain=self.get_utm_domain_cookies()) + return response