diff --git a/odoo_twilio_sms/README.rst b/odoo_twilio_sms/README.rst new file mode 100755 index 000000000..84de62ddd --- /dev/null +++ b/odoo_twilio_sms/README.rst @@ -0,0 +1,54 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://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. + +Features +======== +* Create Reusable Message Templates for Consistent Content Distribution. +* Set Up User Groups for Simultaneous Message Sending. +* Schedule Messages. + +Configuration +============= +* Create a account in Twilio, https://www.twilio.com. + +License +------- +Affero General Public License, v3.0 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: (V16) Unnimaya C O + (V17) Farhana Jahan PT, + 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..1b219bb8d --- /dev/null +++ b/odoo_twilio_sms/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..e0185d881 --- /dev/null +++ b/odoo_twilio_sms/__manifest__.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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': '17.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': [ + 'data/ir_cron_data.xml', + 'security/ir.model.access.csv', + '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', + 'wizard/sms_builder_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..338ceacdf --- /dev/null +++ b/odoo_twilio_sms/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +## Module +#### 30.03.2024 +#### Version 17.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..51581ef98 --- /dev/null +++ b/odoo_twilio_sms/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..069b95816 --- /dev/null +++ b/odoo_twilio_sms/models/purchase_order.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..e8e393a84 --- /dev/null +++ b/odoo_twilio_sms/models/res_partner.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..c18ac772d --- /dev/null +++ b/odoo_twilio_sms/models/sale_order.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..a03494955 --- /dev/null +++ b/odoo_twilio_sms/models/twilio_account.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..6451b9851 --- /dev/null +++ b/odoo_twilio_sms/models/twilio_sms.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..9e96e24ef --- /dev/null +++ b/odoo_twilio_sms/models/twilio_sms_group.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..04f37622c --- /dev/null +++ b/odoo_twilio_sms/models/twilio_sms_template.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions (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..a867e25df --- /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,access.twilio.account.user,model_twilio_account,base.group_user,1,1,1,1 +access_twilio_sms_template_user,access.twilio.sms.template.user,model_twilio_sms_template,base.group_user,1,1,1,1 +access_sms_builder_user,access.sms.builder.user,model_sms_builder,base.group_user,1,1,1,1 +access_twilio_sms_group_user,access.twilio.sms.group.user,model_twilio_sms_group,base.group_user,1,1,1,1 +access_twilio_sms_user,access.twilio.sms.user,model_twilio_sms,base.group_user,1,1,1,1 diff --git a/odoo_twilio_sms/static/description/assets/icons/capture (1).png b/odoo_twilio_sms/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/capture (1).png differ 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 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/img.png b/odoo_twilio_sms/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/img.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 100644 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 100644 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 100644 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/photo-capture.png b/odoo_twilio_sms/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/icons/photo-capture.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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 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 100644 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/Cybrosys R.png b/odoo_twilio_sms/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/misc/Cybrosys R.png differ diff --git a/odoo_twilio_sms/static/description/assets/misc/email.svg b/odoo_twilio_sms/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo_twilio_sms/static/description/assets/misc/phone.svg b/odoo_twilio_sms/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/odoo_twilio_sms/static/description/assets/misc/star (1) 2.svg b/odoo_twilio_sms/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/odoo_twilio_sms/static/description/assets/misc/support (1) 1.svg b/odoo_twilio_sms/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/odoo_twilio_sms/static/description/assets/misc/support-email.svg b/odoo_twilio_sms/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/odoo_twilio_sms/static/description/assets/misc/tick-mark.svg b/odoo_twilio_sms/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/odoo_twilio_sms/static/description/assets/misc/whatsapp 1.svg b/odoo_twilio_sms/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/odoo_twilio_sms/static/description/assets/misc/whatsapp.svg b/odoo_twilio_sms/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/odoo_twilio_sms/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo_twilio_sms/static/description/assets/modules/1.png b/odoo_twilio_sms/static/description/assets/modules/1.png new file mode 100644 index 000000000..8c739bd9a Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/1.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/2.jpg b/odoo_twilio_sms/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..b54c849a1 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/2.jpg differ diff --git a/odoo_twilio_sms/static/description/assets/modules/3.jpg b/odoo_twilio_sms/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..ff1198f40 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/3.jpg differ diff --git a/odoo_twilio_sms/static/description/assets/modules/4.jpg b/odoo_twilio_sms/static/description/assets/modules/4.jpg new file mode 100644 index 000000000..085d88f43 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/4.jpg differ diff --git a/odoo_twilio_sms/static/description/assets/modules/5.png b/odoo_twilio_sms/static/description/assets/modules/5.png new file mode 100644 index 000000000..6b3353888 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/5.png differ diff --git a/odoo_twilio_sms/static/description/assets/modules/6.jpg b/odoo_twilio_sms/static/description/assets/modules/6.jpg new file mode 100644 index 000000000..9f7bf6c1c Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/modules/6.jpg differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/1.png b/odoo_twilio_sms/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..741a3e5ff Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/1.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/10.png b/odoo_twilio_sms/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..1207c89e9 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/10.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/11.png b/odoo_twilio_sms/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..857344a55 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/11.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/12.png b/odoo_twilio_sms/static/description/assets/screenshots/12.png new file mode 100644 index 000000000..ef8807308 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/12.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/13.png b/odoo_twilio_sms/static/description/assets/screenshots/13.png new file mode 100644 index 000000000..e3619e250 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/13.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/14.png b/odoo_twilio_sms/static/description/assets/screenshots/14.png new file mode 100644 index 000000000..071d15fd5 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/14.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/2.png b/odoo_twilio_sms/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..8655a15b8 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/2.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/3.png b/odoo_twilio_sms/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..8e125c394 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/3.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/4.png b/odoo_twilio_sms/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..227892a1a Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/4.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/5.png b/odoo_twilio_sms/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..e0a1d3885 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/5.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/6.png b/odoo_twilio_sms/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..f56537590 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/6.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/7.png b/odoo_twilio_sms/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..fe8d48318 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/7.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/8.png b/odoo_twilio_sms/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..468888ff5 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/8.png differ diff --git a/odoo_twilio_sms/static/description/assets/screenshots/9.png b/odoo_twilio_sms/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..b1d8fbc1b Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/9.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 100644 index 000000000..bfc7f9a38 Binary files /dev/null and b/odoo_twilio_sms/static/description/assets/screenshots/hero.gif differ diff --git a/odoo_twilio_sms/static/description/banner.jpg b/odoo_twilio_sms/static/description/banner.jpg new file mode 100644 index 000000000..3de31c27d 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 100644 index 000000000..84ba56870 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..3b45da10a --- /dev/null +++ b/odoo_twilio_sms/static/description/index.html @@ -0,0 +1,931 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+
+
+
+
+

+ Twilio SMS Gateway

+

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

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Send SMS

+

Send SMS from + Sale Order and Purchase Order. +

+
+
+
+
+
+
+ +
+
+

+ Create Reusable Message Templates for Consistent + Content Distribution

+

Craft Reusable + Message Templates for the Efficient Distribution + of Consistent Content Across Various Situations. +

+
+
+
+
+
+
+ +
+
+

+ Set Up User Groups for Simultaneous Message + Sending +

+

Establish User + Groups and Send Messages to Multiple Recipients + Simultaneously. +

+
+
+
+
+
+
+ +
+
+

+ Schedule Messages +

+

Schedule + Messages for Future Delivery. +

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

+ Install Twilio using the command: "pip + 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 and Create SMS + Template +

+
+
+
+
+
+
+ +
+
+

+ Navigate to Groups menu under Configuration + in Twilio and Create new group and add + members.

+
+
+
+
+
+
+ +
+
+

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

+
+
+
+
+
+
+ +
+
+

+ Create a Quotation and click Send SMS Via + Twilio button to send the SMS from + Quotation and Add the details then click Send + button.

+
+
+
+
+
+
+ +
+
+

+ Create a Purchase Order and click Send SMS Via + Twilio button to send the SMS from + Purchase Order and Add the details then click + Send button.

+
+
+
+
+
+
+ +
+
+

+ Twilio SMS from Partner's form view and + Navigate to Send Twilio SMS under + Action.

+
+
+
+
+
+
+ +
+
+

+ Add the details and click Send button.

+
+
+
+
+
+
+
    +
  • + Send SMS. +
  • +
  • + Create Reusable Message Templates for Consistent Content Distribution. +
  • +
  • + Set Up User Groups for Simultaneous Message Sending. +
  • +
  • + Schedule Messages. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:30th Mar 2024 +
+

+ Initial Commit for Twilio SMS Gateway.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

+ +
+
+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Customization

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Support

+
+
+
+
+
+
+ service-icon +
+
+

Hire + Odoo Developer

+
+
+
+
+ +
+
+ service-icon +
+
+

Odoo + Integration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Migration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Consultancy

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

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 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + 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 + + + +