Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Email Marketing

Entity: mailing.contact

Compute Method: _compute_clicks_ratio

View 20.0
Inputs Method Outputs
  • id
+ grouped_traces = dict(self.env['mailing.trace'].sudo()._read_group(
+             domain=[('model', '=', 'mailing.contact'), ('res_id', 'in', self.ids)],
+             groupby=[('res_id')],
+             aggregates=[('id:count_distinct')]
+         ))
+ grouped_clicks = dict(self.env['link.tracker.click'].sudo()._read_group(
+             domain=[('mailing_trace_id.model', '=', 'mailing.contact'), ('mailing_trace_id.res_id', 'in', self.ids)],
+             groupby=[('mailing_trace_id.res_id')],
+             aggregates=[('mailing_trace_id:count_distinct')]
+         ))
+ for contact in self:
+             contact.clicks_ratio = float_round(100 * grouped_clicks.get(contact.id, 0) / grouped_traces.get(contact.id, 1), precision_digits=2)
  • clicks_ratio

Back to entity