[FIX] utm* - Allow to customize the cookies name

This commit is contained in:
Jeremy Kersten
2015-04-02 22:50:41 +02:00
parent 55a569e970
commit 018450752d
3 changed files with 13 additions and 8 deletions
+3 -3
View File
@@ -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
+8 -3
View File
@@ -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:
+2 -2
View File
@@ -95,7 +95,7 @@ class website_links(models.Model):
parsed = urlparse(self.url)
utms = {}
for key, field in self.env['utm.mixin'].tracking_fields():
for key, field, cook in self.env['utm.mixin'].tracking_fields():
attr = getattr(self, field).name
if attr:
utms[key] = attr
@@ -173,7 +173,7 @@ class website_links(models.Model):
create_vals['title'] = self._get_title_from_url(create_vals['url'])
# Prevent the UTMs to be set by the values of UTM cookies
for (key, fname) in self.env['utm.mixin'].tracking_fields():
for (key, fname, cook) in self.env['utm.mixin'].tracking_fields():
if fname not in create_vals:
create_vals[fname] = False