summaryrefslogtreecommitdiff
path: root/addons/im_livechat_mail_bot/models
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/im_livechat_mail_bot/models
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/im_livechat_mail_bot/models')
-rw-r--r--addons/im_livechat_mail_bot/models/__init__.py5
-rw-r--r--addons/im_livechat_mail_bot/models/mail_bot.py25
-rw-r--r--addons/im_livechat_mail_bot/models/res_users.py12
3 files changed, 42 insertions, 0 deletions
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! 🎉<br/>Try typing <span class=\"o_odoobot_command\">:</span> 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.<br/><br/><b>It's the end of this overview</b>, 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 <span class=\"o_odoobot_command\">:</span> 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'})})