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: utm.campaign

Compute Method: _compute_mailing_mail_count

Inputs Method Outputs
  • id
mailing_data = self.env['mailing.mailing']._read_group(
            [('campaign_id', 'in', self.ids), ('mailing_type', '=', 'mail')],
            ['campaign_id', 'ab_testing_enabled'],
            ['__count'],
        )
ab_testing_mapped_data = defaultdict(list)
mapped_data = defaultdict(list)
for campaign, ab_testing_enabled, count in mailing_data:
            if ab_testing_enabled:
                ab_testing_mapped_data[campaign.id].append(count)
            mapped_data[campaign.id].append(count)
for campaign in self:
            campaign.mailing_mail_count = sum(mapped_data[campaign._origin.id or campaign.id])
            campaign.ab_testing_mailings_count = sum(ab_testing_mapped_data[campaign._origin.id or campaign.id])

Back to entity