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

Module: Contact Form

Entity: crm.lead

Compute Method: _compute_visitor_page_count

Inputs Method Outputs
  • id
mapped_data = {}
if self.ids:
            self.flush_model(['visitor_ids'])
            self.env['website.track'].flush_model(['visitor_id'])
            sql = """ SELECT l.id as lead_id, count(*) as page_view_count
                        FROM crm_lead l
                        JOIN crm_lead_website_visitor_rel lv ON l.id = lv.crm_lead_id
                        JOIN website_visitor v ON v.id = lv.website_visitor_id
                        JOIN website_track p ON p.visitor_id = v.id
                        WHERE l.id in %s
                        GROUP BY l.id"""
            self.env.cr.execute(sql, (tuple(self.ids),))
            page_data = self.env.cr.dictfetchall()
            mapped_data = {data['lead_id']: data['page_view_count'] for data in page_data}
for lead in self:
            lead.visitor_page_count = mapped_data.get(lead.id, 0)

Back to entity