mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-21 21:42:01 +02:00
32 lines
1.5 KiB
Python
32 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, fields
|
|
|
|
|
|
class ChatbotMessage(models.Model):
|
|
""" Chatbot Mail Message
|
|
We create a new model to store the related step to a mail.message and the user's answer.
|
|
We do this in a new model to avoid bloating the 'mail.message' model.
|
|
"""
|
|
|
|
_name = 'chatbot.message'
|
|
_description = 'Chatbot Message'
|
|
_order = 'create_date desc, id desc'
|
|
_rec_name = 'discuss_channel_id'
|
|
|
|
mail_message_id = fields.Many2one('mail.message', string='Related Mail Message')
|
|
discuss_channel_id = fields.Many2one('discuss.channel', string='Discussion Channel', required=True, index=True, ondelete="cascade")
|
|
script_step_id = fields.Many2one(
|
|
"chatbot.script.step", string="Chatbot Step", index="btree_not_null")
|
|
user_script_answer_id = fields.Many2one('chatbot.script.answer', string="User's answer", ondelete="set null")
|
|
user_raw_script_answer_id = fields.Integer(help="Id of the script answer. Useful for statistics when answer is deleted.")
|
|
user_raw_answer = fields.Html(string="User's raw answer")
|
|
|
|
_unique_mail_message_id = models.Constraint(
|
|
'unique (mail_message_id)',
|
|
'A mail.message can only be linked to a single chatbot message',
|
|
)
|
|
_channel_id_user_raw_script_answer_id_idx = models.Index(
|
|
"(discuss_channel_id, user_raw_script_answer_id) WHERE user_raw_script_answer_id IS NOT NULL",
|
|
)
|