Files
odoo_source/addons/crm/controllers/main.py
T
Jérémy Hennecart a895cfcded [IMP] crm: harmonize won triggers with rainbowman
PURPOSE

Make sure the Rainbowman animation is rightly triggered whichever way the user
marks the opportunity as won. Especially relevant for the onboarding as we want
to show the first rainbowman to users completing the tour.

SPECIFICATIONS

Now the rainbowman and its finely-tuned message are displayed to the user when
he uses the statusbar, mark lead as won using action buttons or drag and drop
a lead in the won stage in kanban view.

LINKS

Task ID-2287758
PR #54553
2020-08-17 06:42:28 +00:00

46 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import logging
from odoo.addons.mail.controllers.main import MailController
from odoo import http
from odoo.http import request
_logger = logging.getLogger(__name__)
class CrmController(http.Controller):
@http.route('/lead/case_mark_won', type='http', auth='user', methods=['GET'])
def crm_lead_case_mark_won(self, res_id, token):
comparison, record, redirect = MailController._check_token_and_record_or_redirect('crm.lead', int(res_id), token)
if comparison and record:
try:
record.action_set_won_rainbowman()
except Exception:
_logger.exception("Could not mark crm.lead as won")
return MailController._redirect_to_messaging()
return redirect
@http.route('/lead/case_mark_lost', type='http', auth='user', methods=['GET'])
def crm_lead_case_mark_lost(self, res_id, token):
comparison, record, redirect = MailController._check_token_and_record_or_redirect('crm.lead', int(res_id), token)
if comparison and record:
try:
record.action_set_lost()
except Exception:
_logger.exception("Could not mark crm.lead as lost")
return MailController._redirect_to_messaging()
return redirect
@http.route('/lead/convert', type='http', auth='user', methods=['GET'])
def crm_lead_convert(self, res_id, token):
comparison, record, redirect = MailController._check_token_and_record_or_redirect('crm.lead', int(res_id), token)
if comparison and record:
try:
record.convert_opportunity(record.partner_id.id)
except Exception:
_logger.exception("Could not convert crm.lead to opportunity")
return MailController._redirect_to_messaging()
return redirect