From 3751379f1e9a4c215fb6eb898b4ccc67659b9ace Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 21:51:50 +0700 Subject: initial commit 2 --- addons/im_livechat_mail_bot/models/__init__.py | 5 +++++ addons/im_livechat_mail_bot/models/mail_bot.py | 25 +++++++++++++++++++++++++ addons/im_livechat_mail_bot/models/res_users.py | 12 ++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 addons/im_livechat_mail_bot/models/__init__.py create mode 100644 addons/im_livechat_mail_bot/models/mail_bot.py create mode 100644 addons/im_livechat_mail_bot/models/res_users.py (limited to 'addons/im_livechat_mail_bot/models') diff --git a/addons/im_livechat_mail_bot/models/__init__.py b/addons/im_livechat_mail_bot/models/__init__.py new file mode 100644 index 00000000..d7cfe3a7 --- /dev/null +++ b/addons/im_livechat_mail_bot/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import mail_bot +from . import res_users \ No newline at end of file diff --git a/addons/im_livechat_mail_bot/models/mail_bot.py b/addons/im_livechat_mail_bot/models/mail_bot.py new file mode 100644 index 00000000..a17e1cac --- /dev/null +++ b/addons/im_livechat_mail_bot/models/mail_bot.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, _ + + +class MailBot(models.AbstractModel): + _inherit = 'mail.bot' + + def _get_answer(self, record, body, values, command): + odoobot_state = self.env.user.odoobot_state + if self._is_bot_in_private_channel(record): + if odoobot_state == "onboarding_attachement" and values.get("attachment_ids"): + self.env.user.odoobot_failed = False + self.env.user.odoobot_state = "onboarding_canned" + return _("That's me! 🎉
Try typing : to use canned responses.") + elif odoobot_state == "onboarding_canned" and values.get("canned_response_ids"): + self.env.user.odoobot_failed = False + self.env.user.odoobot_state = "idle" + return _("Good, you can customize canned responses in the live chat application.

It's the end of this overview, enjoy discovering Odoo!") + # repeat question if needed + elif odoobot_state == 'onboarding_canned' and not self._is_help_requested(body): + self.env.user.odoobot_failed = True + return _("Not sure what you are doing. Please, type : and wait for the propositions. Select one of them and press enter.") + return super(MailBot, self)._get_answer(record, body, values, command) diff --git a/addons/im_livechat_mail_bot/models/res_users.py b/addons/im_livechat_mail_bot/models/res_users.py new file mode 100644 index 00000000..ce1bd266 --- /dev/null +++ b/addons/im_livechat_mail_bot/models/res_users.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields + + +class Users(models.Model): + _inherit = 'res.users' + + odoobot_state = fields.Selection(selection_add=[ + ('onboarding_canned', 'Onboarding canned'), + ], ondelete={'onboarding_canned': lambda users: users.write({'odoobot_state': 'disabled'})}) -- cgit v1.2.3