Files
odoo_source/addons/crm_mail_plugin/controllers/mail_plugin.py
T
nounoubensebia 3d514037bb [REF] [crm_]mail_client_extension: rename to mail_plugin
Rename the mail_client_extension and crm_mail_client_extension modules to
mail_plugin and crm_mail_plugin respectively, purpose is to shorten the name of
the modules as it is now quite big and verbose.

Task-2427737

UPG-PR: https://github.com/odoo/upgrade/pull/2156
COM-PR: https://github.com/odoo/odoo/pull/66139
2021-03-29 14:21:05 +00:00

64 lines
2.4 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import logging
from odoo.http import request
from odoo.tools.misc import formatLang
from odoo.addons.mail_plugin.controllers import mail_plugin
_logger = logging.getLogger(__name__)
class MailPluginController(mail_plugin.MailPluginController):
def _fetch_partner_leads(self, partner, limit=5, offset=0):
"""
Returns an array containing partner leads, each lead will have the following structure :
{
id: the lead's id,
name: the lead's name,
expected_revenue: the expected revenue field value
probability: the value of the probability field,
recurring_revenue: the value of the recurring_revenue field if the lead has a recurring revenue
recurring_plan: the value of the recurring plan field if the lead has a recurring revenue
}
"""
partner_leads = request.env['crm.lead'].search(
[('partner_id', '=', partner.id)], offset=offset, limit=limit)
recurring_revenues = request.env.user.has_group('crm.group_use_recurring_revenues')
leads = []
for lead in partner_leads:
lead_values = {
'lead_id': lead.id,
'name': lead.name,
'expected_revenue': formatLang(request.env, lead.expected_revenue, monetary=True,
currency_obj=lead.company_currency),
'probability': lead.probability,
}
if recurring_revenues:
lead_values.update({
'recurring_revenue': formatLang(request.env, lead.recurring_revenue, monetary=True,
currency_obj=lead.company_currency),
'recurring_plan': lead.recurring_plan.name,
})
leads.append(lead_values)
return leads
def _prepare_contact_values(self, partner):
contact_values = super(MailPluginController, self)._prepare_contact_values(partner)
if not partner:
contact_values['leads'] = []
else:
contact_values['leads'] = self._fetch_partner_leads(partner)
return contact_values
def _mail_content_logging_models_whitelist(self):
return super(MailPluginController, self)._mail_content_logging_models_whitelist() + ['crm.lead']