website_event_crm/models/event_registration.py

37 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, _
from markupsafe import Markup
class EventRegistration(models.Model):
_inherit = 'event.registration'
def _get_lead_description_registration(self, line_suffix=''):
"""Add the questions and answers linked to the registrations into the description of the lead."""
reg_description = super(EventRegistration, self)._get_lead_description_registration(line_suffix=line_suffix)
if not self.registration_answer_ids:
return reg_description
answer_descriptions = []
for answer in self.registration_answer_ids:
answer_value = answer.value_answer_id.name if answer.question_type == "simple_choice" else answer.value_text_box
answer_value = Markup("<br/>").join([" %s" % line for line in answer_value.split('\n')])
answer_descriptions.append(Markup(" - %s<br/>%s") % (answer.question_id.title, answer_value))
return Markup("%s%s<br/>%s") % (reg_description, _("Questions"), Markup('<br/>').join(answer_descriptions))
def _get_lead_description_fields(self):
res = super(EventRegistration, self)._get_lead_description_fields()
res.append('registration_answer_ids')
return res
def _get_lead_values(self, rule):
"""Update lead values from Lead Generation rules to include the visitor and their language"""
lead_values = super()._get_lead_values(rule)
lead_values.update({
'visitor_ids': self.visitor_id,
'lang_id': self.visitor_id.lang_id.id,
})
return lead_values