diff options
Diffstat (limited to 'addons/website_sms')
| -rw-r--r-- | addons/website_sms/__init__.py | 4 | ||||
| -rw-r--r-- | addons/website_sms/__manifest__.py | 16 | ||||
| -rw-r--r-- | addons/website_sms/models/__init__.py | 4 | ||||
| -rw-r--r-- | addons/website_sms/models/website_visitor.py | 42 | ||||
| -rw-r--r-- | addons/website_sms/views/website_visitor_views.xml | 14 |
5 files changed, 80 insertions, 0 deletions
diff --git a/addons/website_sms/__init__.py b/addons/website_sms/__init__.py new file mode 100644 index 00000000000..dc5e6b693d1 --- /dev/null +++ b/addons/website_sms/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/addons/website_sms/__manifest__.py b/addons/website_sms/__manifest__.py new file mode 100644 index 00000000000..2f950750094 --- /dev/null +++ b/addons/website_sms/__manifest__.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + 'name': 'Send SMS to Visitor', + 'category': 'Website', + 'sequence': 54, + 'summary': 'Allows to send sms to website visitor', + 'version': '1.0', + 'description': """Allows to send sms to website visitor if the visitor is linked to a partner.""", + 'depends': ['website', 'sms'], + 'data': [ + 'views/website_visitor_views.xml', + ], + 'installable': True, + 'auto_install': True, +} diff --git a/addons/website_sms/models/__init__.py b/addons/website_sms/models/__init__.py new file mode 100644 index 00000000000..8c76c6becd2 --- /dev/null +++ b/addons/website_sms/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import website_visitor diff --git a/addons/website_sms/models/website_visitor.py b/addons/website_sms/models/website_visitor.py new file mode 100644 index 00000000000..7042ed22766 --- /dev/null +++ b/addons/website_sms/models/website_visitor.py @@ -0,0 +1,42 @@ +# -*- 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 _prepare_visitor_send_sms_values(self): + if self.user_partner_id.mobile: + return { + 'res_model': 'res.partner', + 'res_id': self.user_partner_id.id, + 'partner_ids': [self.user_partner_id.id], + 'number_field_name': 'mobile', + } + return {} + + def action_send_sms(self): + self.ensure_one() + visitor_sms_values = self._prepare_visitor_send_sms_values() + if not visitor_sms_values: + raise UserError(_("There is no mobile phone number linked to this visitor.")) + + context = dict(self.env.context) + context.update({ + 'default_res_model': visitor_sms_values['res_model'], + 'default_res_id': visitor_sms_values['res_id'], + 'default_composition_mode': 'comment', + 'default_number_field_name': visitor_sms_values['number_field_name'], + }) + + return { + "type": "ir.actions.act_window", + "res_model": "sms.composer", + "view_mode": 'form', + "context": context, + "name": "Send SMS Text Message", + "target": "new", + } diff --git a/addons/website_sms/views/website_visitor_views.xml b/addons/website_sms/views/website_visitor_views.xml new file mode 100644 index 00000000000..6e30b773cc0 --- /dev/null +++ b/addons/website_sms/views/website_visitor_views.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo><data> + <record id="website_visitor_view_form" model="ir.ui.view"> + <field name="name">website.visitor.view.form.inherit.website.mass.mailing.sms</field> + <field name="model">website.visitor</field> + <field name="inherit_id" ref="website.website_visitor_view_form"/> + <field name="arch" type="xml"> + <xpath expr="//header" position="inside"> + <button name="action_send_sms" type="object" class="btn btn-primary" + attrs="{'invisible': [('mobile', '=', False)]}" string="Send SMS"/> + </xpath> + </field> + </record> +</data></odoo> |
