From 64b378fd2ce529fa3ed1a9941b3242eb5de46401 Mon Sep 17 00:00:00 2001 From: David Tran Date: Sun, 16 Jul 2017 22:36:04 +0700 Subject: [PATCH] [IMP] crm: allow crm.activity.report to be extended Closes #18254 --- addons/crm/report/crm_activity_report.py | 78 +++++++++++++++--------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/addons/crm/report/crm_activity_report.py b/addons/crm/report/crm_activity_report.py index dc2d6155046..51d38980d2f 100644 --- a/addons/crm/report/crm_activity_report.py +++ b/addons/crm/report/crm_activity_report.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import fields, models, tools +from odoo import fields, models, tools, api class ActivityReport(models.Model): @@ -31,33 +31,53 @@ class ActivityReport(models.Model): active = fields.Boolean('Active', readonly=True) probability = fields.Float('Probability', group_operator='avg', readonly=True) + def _select(self): + return """ + SELECT + m.id, + m.subtype_id, + m.mail_activity_type_id, + m.author_id, + m.date, + m.subject, + l.id as lead_id, + l.user_id, + l.team_id, + l.country_id, + l.company_id, + l.stage_id, + l.partner_id, + l.type as lead_type, + l.active, + l.probability + """ + + + def _from(self): + return """ + FROM mail_message AS m + """ + + def _join(self): + return """ + JOIN crm_lead AS l ON m.res_id = l.id + """ + + def _where(self): + return """ + WHERE + m.model = 'crm.lead' AND m.mail_activity_type_id IS NOT NULL + """ + + @api.model_cr def init(self): - tools.drop_view_if_exists(self._cr, 'crm_activity_report') + tools.drop_view_if_exists(self._cr, self._table) self._cr.execute(""" - CREATE VIEW crm_activity_report AS ( - select - m.id, - m.subtype_id, - m.mail_activity_type_id, - m.author_id, - m.date, - m.subject, - l.id as lead_id, - l.user_id, - l.team_id, - l.country_id, - l.company_id, - l.stage_id, - l.partner_id, - l.type as lead_type, - l.active, - l.probability - from - "mail_message" m - join - "crm_lead" l - on - (m.res_id = l.id) - WHERE - (m.model = 'crm.lead' AND m.mail_activity_type_id IS NOT NULL) - )""") + CREATE OR REPLACE VIEW %s AS ( + %s + %s + %s + %s + ) + """ % (self._table, self._select(), self._from(), self._join(), self._where()) + )