diff --git a/odoo_twilio_sms/README.rst b/odoo_twilio_sms/README.rst new file mode 100755 index 000000000..14c4b632b --- /dev/null +++ b/odoo_twilio_sms/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Twilio SMS Gateway +================== +Facilitating individual and group SMS communication through the Twilio gateway. + +Configuration +============= +* Install Twilio python package (pip3 install twilio). + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL v3). +https://www.gnu.org/licenses/lgpl-3.0-standalone.html + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer:(V16) Unnimaya C O, Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/odoo_twilio_sms/__init__.py b/odoo_twilio_sms/__init__.py new file mode 100755 index 000000000..9fe430824 --- /dev/null +++ b/odoo_twilio_sms/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import models +from . import wizard diff --git a/odoo_twilio_sms/__manifest__.py b/odoo_twilio_sms/__manifest__.py new file mode 100755 index 000000000..c49ee1be6 --- /dev/null +++ b/odoo_twilio_sms/__manifest__.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + 'name': 'Twilio SMS Gateway', + 'version': '16.0.1.0.0', + 'category': 'Productivity', + 'summary': """Facilitating individual and group SMS communication through + the Twilio gateway.""", + 'description': """This module empowers seamless SMS communication via + Twilio, enabling users to send messages directly from sale orders and + purchase orders. Users can conveniently create and utilize message + templates for efficient communication. Additionally, the module + facilitates group messaging, allowing users to send SMS to multiple + recipients simultaneously.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['sale_management', 'purchase'], + 'data': [ + 'security/ir.model.access.csv', + 'data/ir_cron_data.xml', + 'wizard/sms_builder_views.xml', + 'views/purchase_order_views.xml', + 'views/res_partner_views.xml', + 'views/sale_order_views.xml', + 'views/twilio_account_views.xml', + 'views/twilio_sms_group_views.xml', + 'views/twilio_sms_template_views.xml', + 'views/twilio_sms_views.xml' + ], + 'external_dependencies': { + 'python': ['twilio'] + }, + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/odoo_twilio_sms/data/ir_cron_data.xml b/odoo_twilio_sms/data/ir_cron_data.xml new file mode 100755 index 000000000..8bcee3c96 --- /dev/null +++ b/odoo_twilio_sms/data/ir_cron_data.xml @@ -0,0 +1,16 @@ + + + + + + Send SMS + + code + model.send_sms_on_time() + 1 + minutes + -1 + + + + diff --git a/odoo_twilio_sms/doc/RELEASE_NOTES.md b/odoo_twilio_sms/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..be634cf2f --- /dev/null +++ b/odoo_twilio_sms/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 26.10.2023 +#### Version 16.0.1.0.0 +##### ADD + +- Initial Commit for Twilio SMS Gateway diff --git a/odoo_twilio_sms/models/__init__.py b/odoo_twilio_sms/models/__init__.py new file mode 100755 index 000000000..f46dbcaf4 --- /dev/null +++ b/odoo_twilio_sms/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import purchase_order +from . import res_partner +from . import sale_order +from . import twilio_account +from . import twilio_sms +from . import twilio_sms_group +from . import twilio_sms_template diff --git a/odoo_twilio_sms/models/purchase_order.py b/odoo_twilio_sms/models/purchase_order.py new file mode 100755 index 000000000..cefa607ef --- /dev/null +++ b/odoo_twilio_sms/models/purchase_order.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import models, _ + + +class PurchaseOrder(models.Model): + """Inheriting purchase order for including Twilio functions""" + _inherit = 'purchase.order' + + def action_purchase_twilio_sms(self): + """Action for opening SMS wizard view""" + action = { + 'type': 'ir.actions.act_window', + 'name': _('Message Content'), + 'res_model': 'sms.builder', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_partner_id': self.partner_id.id}, + 'views': [[False, 'form']] + } + return action diff --git a/odoo_twilio_sms/models/res_partner.py b/odoo_twilio_sms/models/res_partner.py new file mode 100755 index 000000000..ddcda83f9 --- /dev/null +++ b/odoo_twilio_sms/models/res_partner.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models, _ + + +class ResPartner(models.Model): + """Inheriting res partner for including Twilio fields and functions""" + _inherit = 'res.partner' + + twilio_contact_id = fields.Many2one('twilio.sms.group', + string='Twilio ID', + help='Twilio Connection ID') + + def action_partner_twilio_sms(self): + """Action for opening the SMS wizard view""" + action = { + 'type': 'ir.actions.act_window', + 'name': _('Message Content'), + 'res_model': 'sms.builder', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_partner_id': self.id}, + 'views': [[False, 'form']] + } + return action diff --git a/odoo_twilio_sms/models/sale_order.py b/odoo_twilio_sms/models/sale_order.py new file mode 100755 index 000000000..bdda31da7 --- /dev/null +++ b/odoo_twilio_sms/models/sale_order.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import models, _ + + +class SaleOrder(models.Model): + """Inheriting sale order for adding Twilio functions""" + _inherit = 'sale.order' + + def action_twilio_sms(self): + """Action for opening Twilio SMS wizard view""" + action = { + 'type': 'ir.actions.act_window', + 'name': _('Message Content'), + 'res_model': 'sms.builder', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_partner_id': self.partner_id.id}, + 'views': [[False, 'form']] + } + return action diff --git a/odoo_twilio_sms/models/twilio_account.py b/odoo_twilio_sms/models/twilio_account.py new file mode 100755 index 000000000..dea6974cf --- /dev/null +++ b/odoo_twilio_sms/models/twilio_account.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models, _ +from twilio.rest import Client +from twilio.base.exceptions import TwilioException + + +class TwilioAccount(models.Model): + """Create Twilio account to set the details of Twilio account, + can set the number and auth token""" + _name = 'twilio.account' + _description = 'Twilio Account' + + name = fields.Char(string='Name', required=True, help='Name for Twilio ' + 'account') + account_sid = fields.Char(string='Account SID', required=True, + help='Account SID for connecting with Twilio') + auth_token = fields.Char(string='Auth Token', required=True, + help='Auth Token for connecting with Twilio') + from_number = fields.Char(string='Your Twilio Phone Number', required=True, + help='Twilio account number') + to_number = fields.Char(string='To', required=True, + help='Recipient number with country code for ' + 'testing the connection(It should be ' + 'added to Verified Caller IDs in Twilio).') + body = fields.Text(string='Body', required=True, + help='Body for test message', + default='This Message is for testing Twilio Connection') + state = fields.Selection([ + ('new', 'New'), + ('confirm', 'Connected'), + ], required=True, default='new', string='State', help='State of Twilio ' + 'account') + + def action_test_connection(self): + """Send test sms for checking the connection""" + try: + message = Client(self.account_sid, self.auth_token).messages.create( + body=self.body, + from_=self.from_number, + to=self.to_number + ) + if message.sid: + self.write({'state': 'confirm'}) + message_data = _("Connection Successful!") + message_type = 'success' + else: + message_data = _("Connection Not Successful!") + message_type = 'warning' + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'message': message_data, + 'type': message_type, + 'sticky': True, + } + } + except TwilioException: + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'message': _("Connection Not Successful!"), + 'type': 'warning', + 'sticky': True, + } + } diff --git a/odoo_twilio_sms/models/twilio_sms.py b/odoo_twilio_sms/models/twilio_sms.py new file mode 100755 index 000000000..8ad517d4e --- /dev/null +++ b/odoo_twilio_sms/models/twilio_sms.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models, _ +from twilio.rest import Client +from twilio.base.exceptions import TwilioException + + +class TwilioSms(models.Model): + """Can send sms, select the receiver and template or content, + then can send the sms""" + _name = 'twilio.sms' + _description = 'Twilio SMS' + + name = fields.Char(string='Name', help='Name of Twilio SMS', required=True) + partner_id = fields.Many2one('twilio.sms.group', + string='Receiving Group', + help='Select the receiving groups', + required=True) + template_body_id = fields.Many2one('twilio.sms.template', + string='SMS Template', + help='Select the message template') + content = fields.Text(string='Content', help='SMS Content', required=True, + related='template_body_id.content', readonly=False) + scheduled_date = fields.Date(string='Scheduled Date', help='Scheduled ' + 'Date for ' + 'sending SMS', + default=fields.Date.today) + state = fields.Selection([ + ('draft', 'Draft'), + ('confirm', 'Confirm'), + ('sent', 'Sent'), + ], default='draft', string='State', help='State of SMS') + account_id = fields.Many2one('twilio.account', + string='Twilio Account', help='Choose the ' + 'Twilio ' + 'account', + required=True) + + def action_confirm_sms(self): + """Send SMS when click the action button""" + for val in self: + val.state = 'confirm' + if val.scheduled_date == fields.Date.today(): + self.send_sms(val) + + def send_sms_on_time(self): + """Send SMS when schedule the time""" + for val in self.env['twilio.sms'].search([]): + if (val.state == 'confirm' and val.scheduled_date == + fields.date.today()): + self.send_sms(val) + + @api.model + def send_sms(self, val): + """Send SMS to all users""" + count = len(val.partner_id.contact_ids) + for partner in val.partner_id.contact_ids: + try: + client = Client(val.account_id.account_sid, + val.account_id.auth_token) + message = client.messages.create( + body=val.content, + from_=val.account_id.from_number, + to=partner.phone + ) + if message.sid: + count = count - 1 + if not count: + val.state = 'sent' + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'message': 'Message Sent Successfully', + 'type': 'success', + 'sticky': False, + 'next': { + 'type': 'ir.actions.act_window_close' + }, + } + } + except TwilioException: + message_data = _("Message Not Sent!") + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'message': message_data, + 'type': 'warning', + 'sticky': False, + 'next': { + 'type': 'ir.actions.act_window_close' + }, + } + } + pass diff --git a/odoo_twilio_sms/models/twilio_sms_group.py b/odoo_twilio_sms/models/twilio_sms_group.py new file mode 100755 index 000000000..e6bc611bc --- /dev/null +++ b/odoo_twilio_sms/models/twilio_sms_group.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class TwilioSmsGroup(models.Model): + """SMS group for sending SMS to multiple person at once""" + _name = 'twilio.sms.group' + _description = 'Twilio SmS Group' + + name = fields.Char(string='Name', help='Name of the group', required=True) + contact_ids = fields.One2many('res.partner', + 'twilio_contact_id', + string='Partner Group', help='Members of ' + 'the group') diff --git a/odoo_twilio_sms/models/twilio_sms_template.py b/odoo_twilio_sms/models/twilio_sms_template.py new file mode 100755 index 000000000..5fda66ad9 --- /dev/null +++ b/odoo_twilio_sms/models/twilio_sms_template.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class TwilioSmsTemplate(models.Model): + """Model for holding SMS templates""" + _name = 'twilio.sms.template' + _description = 'Twilio SmS Template' + + name = fields.Char(string='Name', help='Name of Template', required=True) + content = fields.Text(string='Content', help='Content of the Template') diff --git a/odoo_twilio_sms/security/ir.model.access.csv b/odoo_twilio_sms/security/ir.model.access.csv new file mode 100755 index 000000000..0634d2537 --- /dev/null +++ b/odoo_twilio_sms/security/ir.model.access.csv @@ -0,0 +1,6 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_twilio_account_user,twilio.account.user,model_twilio_account,base.group_user,1,1,1,1 +access_twilio_sms_template_user,twilio.sms.template.user,model_twilio_sms_template,base.group_user,1,1,1,1 +access_sms_builder_user,sms.builder.user,model_sms_builder,base.group_user,1,1,1,1 +access_twilio_sms_group_user,twilio.sms.group.user,model_twilio_sms_group,base.group_user,1,1,1,1 +access_twilio_sms_user,twilio.sms.user,model_twilio_sms,base.group_user,1,1,1,1 diff --git a/odoo_twilio_sms/static/description/assets/icons/check.png b/odoo_twilio_sms/static/description/assets/icons/check.png new file mode 100755 index 000000000..c8e85f51d Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/check.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/chevron.png b/odoo_twilio_sms/static/description/assets/icons/chevron.png new file mode 100755 index 000000000..2089293d6 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/chevron.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/cogs.png b/odoo_twilio_sms/static/description/assets/icons/cogs.png new file mode 100755 index 000000000..95d0bad62 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/cogs.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/consultation.png b/odoo_twilio_sms/static/description/assets/icons/consultation.png new file mode 100755 index 000000000..8319d4baa Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/consultation.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/ecom-black.png b/odoo_twilio_sms/static/description/assets/icons/ecom-black.png new file mode 100755 index 000000000..a9385ff13 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/ecom-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/education-black.png b/odoo_twilio_sms/static/description/assets/icons/education-black.png new file mode 100755 index 000000000..3eb09b27b Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/education-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/hotel-black.png b/odoo_twilio_sms/static/description/assets/icons/hotel-black.png new file mode 100755 index 000000000..130f613be Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/hotel-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/license.png b/odoo_twilio_sms/static/description/assets/icons/license.png new file mode 100755 index 000000000..a5869797e Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/license.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/lifebuoy.png b/odoo_twilio_sms/static/description/assets/icons/lifebuoy.png new file mode 100755 index 000000000..658d56ccc Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/lifebuoy.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/manufacturing-black.png b/odoo_twilio_sms/static/description/assets/icons/manufacturing-black.png new file mode 100755 index 000000000..697eb0e9f Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/manufacturing-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/pos-black.png b/odoo_twilio_sms/static/description/assets/icons/pos-black.png new file mode 100755 index 000000000..97c0f90c1 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/pos-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/puzzle.png b/odoo_twilio_sms/static/description/assets/icons/puzzle.png new file mode 100755 index 000000000..65cf854e7 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/puzzle.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/restaurant-black.png b/odoo_twilio_sms/static/description/assets/icons/restaurant-black.png new file mode 100755 index 000000000..4a35eb939 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/restaurant-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/service-black.png b/odoo_twilio_sms/static/description/assets/icons/service-black.png new file mode 100755 index 000000000..301ab51cb Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/service-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/trading-black.png b/odoo_twilio_sms/static/description/assets/icons/trading-black.png new file mode 100755 index 000000000..9398ba2f1 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/trading-black.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/training.png b/odoo_twilio_sms/static/description/assets/icons/training.png new file mode 100755 index 000000000..884ca024d Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/training.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/update.png b/odoo_twilio_sms/static/description/assets/icons/update.png new file mode 100755 index 000000000..ecbc5a01a Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/update.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/user.png b/odoo_twilio_sms/static/description/assets/icons/user.png new file mode 100755 index 000000000..6ffb23d9f Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/user.png differ diff --git a/odoo_twilio_sms/static/description/assets/icons/wrench.png b/odoo_twilio_sms/static/description/assets/icons/wrench.png new file mode 100755 index 000000000..6c04dea0f Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/wrench.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/categories.png b/odoo_twilio_sms/static/description/assets/misc/categories.png new file mode 100755 index 000000000..bedf1e0b1 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/categories.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/check-box.png b/odoo_twilio_sms/static/description/assets/misc/check-box.png new file mode 100755 index 000000000..42caf24b9 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/check-box.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/compass.png b/odoo_twilio_sms/static/description/assets/misc/compass.png new file mode 100755 index 000000000..d5fed8faa Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/compass.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/corporate.png b/odoo_twilio_sms/static/description/assets/misc/corporate.png new file mode 100755 index 000000000..2eb13edbf Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/corporate.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/customer-support.png b/odoo_twilio_sms/static/description/assets/misc/customer-support.png new file mode 100755 index 000000000..79efc72ed Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/customer-support.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/cybrosys-logo.png b/odoo_twilio_sms/static/description/assets/misc/cybrosys-logo.png new file mode 100755 index 000000000..cc3cc0ccf Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/cybrosys-logo.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/features.png b/odoo_twilio_sms/static/description/assets/misc/features.png new file mode 100755 index 000000000..b41769f77 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/features.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/logo.png b/odoo_twilio_sms/static/description/assets/misc/logo.png new file mode 100755 index 000000000..478462d3e Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/logo.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/pictures.png b/odoo_twilio_sms/static/description/assets/misc/pictures.png new file mode 100755 index 000000000..56d255fe9 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/pictures.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/pie-chart.png b/odoo_twilio_sms/static/description/assets/misc/pie-chart.png new file mode 100755 index 000000000..426e05244 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/pie-chart.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/right-arrow.png b/odoo_twilio_sms/static/description/assets/misc/right-arrow.png new file mode 100755 index 000000000..730984a06 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/right-arrow.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/star.png b/odoo_twilio_sms/static/description/assets/misc/star.png new file mode 100755 index 000000000..2eb9ab29f Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/star.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/support.png b/odoo_twilio_sms/static/description/assets/misc/support.png new file mode 100755 index 000000000..4f18b8b82 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/support.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/whatsapp.png b/odoo_twilio_sms/static/description/assets/misc/whatsapp.png new file mode 100755 index 000000000..d513a5356 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/whatsapp.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/l1.png b/odoo_twilio_sms/static/description/assets/modules/l1.png new file mode 100755 index 000000000..49ca9ec8e Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/l1.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/l2.png b/odoo_twilio_sms/static/description/assets/modules/l2.png new file mode 100755 index 000000000..06923c110 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/l2.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/l3.png b/odoo_twilio_sms/static/description/assets/modules/l3.png new file mode 100755 index 000000000..9cfe5b521 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/l3.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/l4.png b/odoo_twilio_sms/static/description/assets/modules/l4.png new file mode 100755 index 000000000..f390259e3 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/l4.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/l5.png b/odoo_twilio_sms/static/description/assets/modules/l5.png new file mode 100755 index 000000000..5a41fd638 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/l5.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/l6.png b/odoo_twilio_sms/static/description/assets/modules/l6.png new file mode 100755 index 000000000..e343e3bed Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/l6.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot1.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot1.png new file mode 100755 index 000000000..af26dfe41 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot1.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot10.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot10.png new file mode 100755 index 000000000..e339fb1e4 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot10.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot11.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot11.png new file mode 100755 index 000000000..e7d447d85 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot11.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot12.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot12.png new file mode 100755 index 000000000..e350b0b91 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot12.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot13.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot13.png new file mode 100755 index 000000000..234fe626e Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot13.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot14.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot14.png new file mode 100755 index 000000000..d7d462929 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot14.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot15.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot15.png new file mode 100755 index 000000000..514b0ec43 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot15.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot2.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot2.png new file mode 100755 index 000000000..e39ab0ce0 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot2.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot3.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot3.png new file mode 100755 index 000000000..897a318bf Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot3.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot4.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot4.png new file mode 100644 index 000000000..06e64a2aa Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot4.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot5.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot5.png new file mode 100755 index 000000000..901d3b127 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot5.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot6.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot6.png new file mode 100755 index 000000000..7b66c0ef7 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot6.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot7.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot7.png new file mode 100755 index 000000000..255e30359 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot7.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot8.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot8.png new file mode 100755 index 000000000..c37922241 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot8.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/Screenshot9.png b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot9.png new file mode 100755 index 000000000..c9d8c88b7 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/Screenshot9.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/add_number.png b/odoo_twilio_sms/static/description/assets/screenshots/add_number.png new file mode 100755 index 000000000..a6f0a77d5 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/add_number.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/hero.gif b/odoo_twilio_sms/static/description/assets/screenshots/hero.gif new file mode 100755 index 000000000..d03195779 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/hero.gif differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/verify.png b/odoo_twilio_sms/static/description/assets/screenshots/verify.png new file mode 100755 index 000000000..7e07ceb2e Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/verify.png differ diff --git a/odoo_twilio_sms/static/description/banner.jpg b/odoo_twilio_sms/static/description/banner.jpg new file mode 100755 index 000000000..7d8c91075 Binary files /dev/null and b/odoo_twilio_sms/static/description/banner.jpg differ diff --git a/odoo_twilio_sms/static/description/icon.png b/odoo_twilio_sms/static/description/icon.png new file mode 100755 index 000000000..635d3e576 Binary files /dev/null and b/odoo_twilio_sms/static/description/icon.png differ diff --git a/odoo_twilio_sms/static/description/index.html b/odoo_twilio_sms/static/description/index.html new file mode 100755 index 000000000..cf8cc90ca --- /dev/null +++ b/odoo_twilio_sms/static/description/index.html @@ -0,0 +1,726 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+
+ +
+
+
+ +

+ Twilio SMS Gateway

+

+ Facilitating Individual and Group SMS Communication Through + the Twilio Gateway. +

+ + +
+
+
+
+ +
+
+ +
+

+ Explore This + Module

+
+ + + +
+
+ +
+

+ Overview +

+
+
+
+ This module empowers seamless SMS communication via Twilio, enabling + users to send messages directly from sale orders and purchase orders. + Users can conveniently create and utilize + message templates for efficient communication. Additionally, the module + facilitates group messaging, allowing users to send SMS to multiple + recipients simultaneously. +
+
+ + +
+
+ +
+

+ Features +

+
+
+
+
+ + Send SMS from Sale Order and Purchase Order +
+
+ + Craft reusable message templates for the efficient distribution of consistent content across various situations. +
+
+ + Establish user groups and send messages to multiple recipients simultaneously. +
+
+ + Schedule messages for future delivery. +
+
+
+ + +
+
+ +
+

+ Screenshots +

+
+
+
+ +
+

+ Install Twilio +

+ +
+
+

+ Login to your Twilio + Account. +

+

+ You can see the Account SID, Auth Token and My Twilio phone + number here. +

+ +
+
+

+ Navigate to Phone Numbers -> Manage-> Verified Caller IDs and + click Add a new Caller ID button. +

+ +
+
+

+ Add the details and Verify number using Call or SMS. +

+

+ It is only possible to send SMS to Twilio verified numbers.

+ +
+
+

+ Navigate to Twilio Account menu under Configuration in Twilio. +

+ +
+
+

+ Add credentials to establish the connection with Twilio. The field 'To' should be a Twilio verified number with country code. +

+ +
+
+

+ Navigate to SMS Template menu under Configuration in Twilio. +

+ +
+
+

+ Create SMS Template +

+ +
+
+

+ Navigate to Groups menu under Configuration in Twilio. +

+ +
+
+

+ Create new group and add members. +

+ +
+
+

+ Navigate to SMS menu and create new SMS. Then click SEND button. +

+ +
+
+

+ Twilio SMS from Sale Order. +

+

+ Create a Quotation and click SEND SMS VIA TWILIO button + to send the SMS from Quotation. +

+ +
+
+

+ Add the details and click SEND button. +

+ +
+
+

+ Twilio SMS from Purchase Order. +

+

+ Create a Purchase Order and click SEND SMS VIA TWILIO + button + to send the SMS from Purchase Order. +

+ +
+
+

+ Add the details and click SEND button. +

+ +
+
+

+ Twilio SMS from Partner's form view. +

+

+ Navigate to Send Twilio SMS under Action. +

+ +
+
+

+ Add the details and click SEND button. +

+ +
+
+
+ + +
+
+ +
+

+ Related + Products +

+
+
+
+ +
+
+ + +
+
+ +
+

+ Our Services +

+
+
+
+
+
+ +
+
+ Odoo + Customization
+
+
+
+ +
+
+ Odoo + Implementation
+
+
+
+ +
+
+ Odoo + Support
+
+
+
+ +
+
+ Hire + Odoo + Developer
+
+
+
+ +
+
+ Odoo + Integration
+
+
+
+ +
+
+ Odoo + Migration
+
+
+
+ +
+
+ Odoo + Consultancy
+
+
+
+ +
+
+ Odoo + Implementation
+
+
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+
+ + +
+
+ +
+

+ Our + Industries +

+
+
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+
+
+ + +
+
+ +
+

+ Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ diff --git a/odoo_twilio_sms/views/purchase_order_views.xml b/odoo_twilio_sms/views/purchase_order_views.xml new file mode 100755 index 000000000..e7aa20c09 --- /dev/null +++ b/odoo_twilio_sms/views/purchase_order_views.xml @@ -0,0 +1,15 @@ + + + + + purchase.order.view.form.inherit.odoo.twilio.sms + purchase.order + + + +