summaryrefslogtreecommitdiff
path: root/addons/website_sms/models/website_visitor.py
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/website_sms/models/website_visitor.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_sms/models/website_visitor.py')
-rw-r--r--addons/website_sms/models/website_visitor.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/addons/website_sms/models/website_visitor.py b/addons/website_sms/models/website_visitor.py
new file mode 100644
index 00000000..495a70ef
--- /dev/null
+++ b/addons/website_sms/models/website_visitor.py
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import models, _
+from odoo.exceptions import UserError
+
+
+class WebsiteVisitor(models.Model):
+ _inherit = 'website.visitor'
+
+ def _check_for_sms_composer(self):
+ """ Purpose of this method is to actualize visitor model prior to contacting
+ him. Used notably for inheritance purpose, when dealing with leads that
+ could update the visitor model. """
+ return bool(self.partner_id and (self.partner_id.mobile or self.partner_id.phone))
+
+ def _prepare_sms_composer_context(self):
+ return {
+ 'default_res_model': 'res.partner',
+ 'default_res_id': self.partner_id.id,
+ 'default_composition_mode': 'comment',
+ 'default_number_field_name': 'mobile' if self.partner_id.mobile else 'phone',
+ }
+
+ def action_send_sms(self):
+ self.ensure_one()
+ if not self._check_for_sms_composer():
+ raise UserError(_("There are no contact and/or no phone or mobile numbers linked to this visitor."))
+ visitor_composer_ctx = self._prepare_sms_composer_context()
+
+ compose_ctx = dict(self.env.context)
+ compose_ctx.update(**visitor_composer_ctx)
+ return {
+ "name": _("Send SMS Text Message"),
+ "type": "ir.actions.act_window",
+ "res_model": "sms.composer",
+ "view_mode": 'form',
+ "context": compose_ctx,
+ "target": "new",
+ }