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
46 lines
1.9 KiB
Python
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
|