|
|
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)
|
|