Files
odoo_source/addons/crm/report/crm_activity_report.py
T
shreya thakrar eac0785f69 [IMP] crm: rename string on custom filter
Before this commit, at custom filter 'Contents' option is there for filtering by
activity description. For more usability only rename is needed. By this commit
'contents' is changed to 'Activity Description'. User can filter records by
activity description.

task - 2008515

closes odoo/odoo#35070

Signed-off-by: Martin Geubelle (mge) <mge@openerp.com>
2019-07-22 12:12:47 +00:00

89 lines
3.1 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models, tools, api
class ActivityReport(models.Model):
""" CRM Lead Analysis """
_name = "crm.activity.report"
_auto = False
_description = "CRM Activity Analysis"
_rec_name = 'id'
date = fields.Datetime('Completion Date', readonly=True)
lead_create_date = fields.Datetime('Creation Date', readonly=True)
date_conversion = fields.Datetime('Conversion Date', readonly=True)
date_deadline = fields.Date('Expected Closing', readonly=True)
date_closed = fields.Datetime('Closed Date', readonly=True)
author_id = fields.Many2one('res.partner', 'Assigned To', readonly=True)
user_id = fields.Many2one('res.users', 'Salesperson', readonly=True)
team_id = fields.Many2one('crm.team', 'Sales Team', readonly=True)
lead_id = fields.Many2one('crm.lead', "Opportunity", readonly=True)
body = fields.Html('Activity Description', readonly=True)
subtype_id = fields.Many2one('mail.message.subtype', 'Subtype', readonly=True)
mail_activity_type_id = fields.Many2one('mail.activity.type', 'Activity Type', readonly=True)
country_id = fields.Many2one('res.country', 'Country', readonly=True)
company_id = fields.Many2one('res.company', 'Company', readonly=True)
stage_id = fields.Many2one('crm.stage', 'Stage', readonly=True)
partner_id = fields.Many2one('res.partner', 'Customer', readonly=True)
lead_type = fields.Selection(
string='Type',
selection=[('lead', 'Lead'), ('opportunity', 'Opportunity')],
help="Type is used to separate Leads and Opportunities")
active = fields.Boolean('Active', readonly=True)
def _select(self):
return """
SELECT
m.id,
l.create_date AS lead_create_date,
l.date_conversion,
l.date_deadline,
l.date_closed,
m.subtype_id,
m.mail_activity_type_id,
m.author_id,
m.date,
m.body,
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
"""
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):
disccusion_subtype = self.env.ref('mail.mt_comment')
return """
WHERE
m.model = 'crm.lead' AND (m.mail_activity_type_id IS NOT NULL OR m.subtype_id = %s)
""" % (disccusion_subtype.id,)
def init(self):
tools.drop_view_if_exists(self._cr, self._table)
self._cr.execute("""
CREATE OR REPLACE VIEW %s AS (
%s
%s
%s
%s
)
""" % (self._table, self._select(), self._from(), self._join(), self._where())
)