summaryrefslogtreecommitdiff
path: root/addons/utm/models
diff options
context:
space:
mode:
authorJeremy Kersten <jke@odoo.com>2015-04-01 11:09:48 +0200
committerJeremy Kersten <jke@odoo.com>2015-04-02 22:50:41 +0200
commit018450752dca0e13d8ddc8eecb0a4107b953ac40 (patch)
treeb2bbe36b51b64b6fc26f01850ceaf538716a5afc /addons/utm/models
parent55a569e97072f601196bd2a9db8bf7e22253e85a (diff)
[FIX] utm* - Allow to customize the cookies name
Diffstat (limited to 'addons/utm/models')
-rw-r--r--addons/utm/models/ir_http.py6
-rw-r--r--addons/utm/models/utm.py11
2 files changed, 11 insertions, 6 deletions
diff --git a/addons/utm/models/ir_http.py b/addons/utm/models/ir_http.py
index 7efd80f0737..dd0a93d3976 100644
--- a/addons/utm/models/ir_http.py
+++ b/addons/utm/models/ir_http.py
@@ -11,7 +11,7 @@ class ir_http(orm.AbstractModel):
def _dispatch(self):
response = super(ir_http, self)._dispatch()
- for var, dummy in self.pool['utm.mixin'].tracking_fields():
- if var in request.params and (var not in request.session or request.session[var] != request.params[var]):
- response.set_cookie(var, request.params[var], domain=self.get_utm_domain_cookies())
+ for var, dummy, cook in self.pool['utm.mixin'].tracking_fields():
+ if var in request.params and request.httprequest.cookies.get(var) != request.params[var]:
+ response.set_cookie(cook, request.params[var], domain=self.get_utm_domain_cookies())
return response
diff --git a/addons/utm/models/utm.py b/addons/utm/models/utm.py
index c9cd042247b..e611fb69793 100644
--- a/addons/utm/models/utm.py
+++ b/addons/utm/models/utm.py
@@ -68,12 +68,17 @@ class utm_mixin(osv.AbstractModel):
}
def tracking_fields(self):
- return [('utm_campaign', 'campaign_id'), ('utm_source', 'source_id'), ('utm_medium', 'medium_id')]
+ return [
+ # ("URL_PARAMETER", "FIELD_NAME_MIXIN", "NAME_IN_COOKIES")
+ ('utm_campaign', 'campaign_id', 'odoo_utm_campaign'),
+ ('utm_source', 'source_id', 'odoo_utm_source'),
+ ('utm_medium', 'medium_id', 'odoo_utm_medium')
+ ]
def tracking_get_values(self, cr, uid, vals, context=None):
- for key, fname in self.tracking_fields():
+ for key, fname, cook in self.tracking_fields():
field = self._fields[fname]
- value = vals.get(fname) or (request and request.httprequest.cookies.get(key)) # params.get should be always in session by the dispatch from ir_http
+ value = vals.get(fname) or (request and request.httprequest.cookies.get(cook)) # params.get should be always in session by the dispatch from ir_http
if field.type == 'many2one' and isinstance(value, basestring):
# if we receive a string for a many2one, we search/create the id
if value: