Browse Source

Aug 14 : [ADD] Initial Commit 'clicksend_sms_odoo'

pull/280/head
RisvanaCybro 2 years ago
parent
commit
e509e34abc
  1. 47
      clicksend_sms_odoo/README.rst
  2. 23
      clicksend_sms_odoo/__init__.py
  3. 49
      clicksend_sms_odoo/__manifest__.py
  4. 6
      clicksend_sms_odoo/doc/RELEASE_NOTES.md
  5. 24
      clicksend_sms_odoo/models/__init__.py
  6. 56
      clicksend_sms_odoo/models/res_config_settings.py
  7. 35
      clicksend_sms_odoo/models/sms_group.py
  8. 43
      clicksend_sms_odoo/models/sms_history.py
  9. 4
      clicksend_sms_odoo/security/ir.model.access.csv
  10. BIN
      clicksend_sms_odoo/static/description/assets/icons/check.png
  11. BIN
      clicksend_sms_odoo/static/description/assets/icons/chevron.png
  12. BIN
      clicksend_sms_odoo/static/description/assets/icons/cogs.png
  13. BIN
      clicksend_sms_odoo/static/description/assets/icons/consultation.png
  14. BIN
      clicksend_sms_odoo/static/description/assets/icons/ecom-black.png
  15. BIN
      clicksend_sms_odoo/static/description/assets/icons/education-black.png
  16. BIN
      clicksend_sms_odoo/static/description/assets/icons/hotel-black.png
  17. BIN
      clicksend_sms_odoo/static/description/assets/icons/license.png
  18. BIN
      clicksend_sms_odoo/static/description/assets/icons/lifebuoy.png
  19. BIN
      clicksend_sms_odoo/static/description/assets/icons/manufacturing-black.png
  20. BIN
      clicksend_sms_odoo/static/description/assets/icons/pos-black.png
  21. BIN
      clicksend_sms_odoo/static/description/assets/icons/puzzle.png
  22. BIN
      clicksend_sms_odoo/static/description/assets/icons/restaurant-black.png
  23. BIN
      clicksend_sms_odoo/static/description/assets/icons/service-black.png
  24. BIN
      clicksend_sms_odoo/static/description/assets/icons/trading-black.png
  25. BIN
      clicksend_sms_odoo/static/description/assets/icons/training.png
  26. BIN
      clicksend_sms_odoo/static/description/assets/icons/update.png
  27. BIN
      clicksend_sms_odoo/static/description/assets/icons/user.png
  28. BIN
      clicksend_sms_odoo/static/description/assets/icons/wrench.png
  29. BIN
      clicksend_sms_odoo/static/description/assets/misc/categories.png
  30. BIN
      clicksend_sms_odoo/static/description/assets/misc/check-box.png
  31. BIN
      clicksend_sms_odoo/static/description/assets/misc/compass.png
  32. BIN
      clicksend_sms_odoo/static/description/assets/misc/corporate.png
  33. BIN
      clicksend_sms_odoo/static/description/assets/misc/customer-support.png
  34. BIN
      clicksend_sms_odoo/static/description/assets/misc/cybrosys-logo.png
  35. BIN
      clicksend_sms_odoo/static/description/assets/misc/features.png
  36. BIN
      clicksend_sms_odoo/static/description/assets/misc/logo.png
  37. BIN
      clicksend_sms_odoo/static/description/assets/misc/pictures.png
  38. BIN
      clicksend_sms_odoo/static/description/assets/misc/pie-chart.png
  39. BIN
      clicksend_sms_odoo/static/description/assets/misc/right-arrow.png
  40. BIN
      clicksend_sms_odoo/static/description/assets/misc/star.png
  41. BIN
      clicksend_sms_odoo/static/description/assets/misc/support.png
  42. BIN
      clicksend_sms_odoo/static/description/assets/misc/whatsapp.png
  43. BIN
      clicksend_sms_odoo/static/description/assets/modules/1.png
  44. BIN
      clicksend_sms_odoo/static/description/assets/modules/2.png
  45. BIN
      clicksend_sms_odoo/static/description/assets/modules/3.png
  46. BIN
      clicksend_sms_odoo/static/description/assets/modules/4.png
  47. BIN
      clicksend_sms_odoo/static/description/assets/modules/5.png
  48. BIN
      clicksend_sms_odoo/static/description/assets/modules/6.png
  49. BIN
      clicksend_sms_odoo/static/description/banner.png
  50. BIN
      clicksend_sms_odoo/static/description/icon.png
  51. BIN
      clicksend_sms_odoo/static/description/images/checked.png
  52. BIN
      clicksend_sms_odoo/static/description/images/cybrosys.png
  53. BIN
      clicksend_sms_odoo/static/description/images/screenshots/1.png
  54. BIN
      clicksend_sms_odoo/static/description/images/screenshots/10.png
  55. BIN
      clicksend_sms_odoo/static/description/images/screenshots/2.png
  56. BIN
      clicksend_sms_odoo/static/description/images/screenshots/3.png
  57. BIN
      clicksend_sms_odoo/static/description/images/screenshots/4.png
  58. BIN
      clicksend_sms_odoo/static/description/images/screenshots/5.png
  59. BIN
      clicksend_sms_odoo/static/description/images/screenshots/6.png
  60. BIN
      clicksend_sms_odoo/static/description/images/screenshots/7.png
  61. BIN
      clicksend_sms_odoo/static/description/images/screenshots/8.png
  62. BIN
      clicksend_sms_odoo/static/description/images/screenshots/9.png
  63. BIN
      clicksend_sms_odoo/static/description/images/screenshots/hero.gif
  64. 790
      clicksend_sms_odoo/static/description/index.html
  65. 67
      clicksend_sms_odoo/views/res_config_settings_views.xml
  66. 48
      clicksend_sms_odoo/views/sms_group_views.xml
  67. 58
      clicksend_sms_odoo/views/sms_history_views.xml
  68. 22
      clicksend_sms_odoo/wizard/__init__.py
  69. 134
      clicksend_sms_odoo/wizard/send_sms.py
  70. 114
      clicksend_sms_odoo/wizard/send_sms_views.xml

47
clicksend_sms_odoo/README.rst

@ -0,0 +1,47 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
ClickSend SMS Integration
=========================
* Odoo -Integration with ClickSend SMS Gateway
Installation
============
- www.odoo.com/documentation/15.0/setup/install.html
- Install our custom addon
License
-------
General Public License, Version 3 (AGPL v3).
(https://www.odoo.com/documentation/user/15.0/legal/licenses/licenses.html)
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits
-------
* Developer: (V15) Raveena V, 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 https://www.cybrosys.com
Further information
===================
HTML Description: `<static/description/index.html>`__

23
clicksend_sms_odoo/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import models
from . import wizard

49
clicksend_sms_odoo/__manifest__.py

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
{
'name': "ClickSend SMS Integration",
'version': '15.0.1.0.0',
'category': 'Extra Tools',
'summary': 'ClickSend SMS Gateway Integration',
'description': """You can send SMS to a group, partner or anyone
using this Module through ClickSend SMS Gateway.""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'depends': ['contacts', 'sms'],
'data': [
'security/ir.model.access.csv',
'views/res_config_settings_views.xml',
'views/sms_history_views.xml',
'views/sms_group_views.xml',
'wizard/send_sms_views.xml',
],
'external_dependencies': {
'python': ['clicksend_client'],
},
'images': ['static/description/banner.png'],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
'application': True,
}

6
clicksend_sms_odoo/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <clicksend_sms_odoo>
#### 05.08.2023
#### Version 15.0.1.0.0
### ADD
- Initial Commit for ClickSend SMS Integration

24
clicksend_sms_odoo/models/__init__.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import res_config_settings
from . import sms_group
from . import sms_history

56
clicksend_sms_odoo/models/res_config_settings.py

@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import api, fields, models
class ResConfigSettings(models.TransientModel):
"""This class inherits res config settings model to add the settings
for clicksend sms gateway"""
_inherit = 'res.config.settings'
username = fields.Char(string="Username",
help="Your username of ClickSend account")
api_key = fields.Char(string="API Key",
help="You will get the API key from ClickSend")
@api.model
def get_values(self):
""" This function will super the getter method to get the values of
username and api_key"""
res = super(ResConfigSettings, self).get_values()
username = self.env['ir.config_parameter'].sudo(). \
get_param('clicksend_sms_odoo.username')
api_key = self.env['ir.config_parameter'].sudo(). \
get_param('clicksend_sms_odoo.api_key')
res.update(
username=username,
api_key=api_key,
)
return res
def set_values(self):
""" This function will super the setter method to set the values of
username and api_key"""
super(ResConfigSettings, self).set_values()
param = self.env['ir.config_parameter'].sudo()
param.set_param('clicksend_sms_odoo.username', self.username)
param.set_param('clicksend_sms_odoo.api_key', self.api_key)

35
clicksend_sms_odoo/models/sms_group.py

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import fields, models
class SmsGroup(models.Model):
"""A Model for SMS groups"""
_name = 'sms.group'
_description = 'SMS Group for Sending Sms To a Group'
name = fields.Char(string="Name", required=True,
help="Name of the SMS group")
partner_ids = fields.Many2many('res.partner', string='Partners',
required=True, help="Group members")
description = fields.Text(string="Description",
help="Short description about the SMS group")

43
clicksend_sms_odoo/models/sms_history.py

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import api, fields, models
class SmsHistory(models.Model):
"""A model for SMS history"""
_name = 'sms.history'
_description = "SMS History of Sent Sms"
name = fields.Char(string="Name", help="Name of the Receiver")
number = fields.Char(string='Number', help="Mobile number of the Receiver")
state = fields.Selection([('outgoing', 'In Queue'),
('sent', 'Sent'),
('canceled', 'Canceled')
], string='SMS Status', readonly=True,
help="State of SMS")
message = fields.Text(string="Message", help="SMS Message")
@api.model
def create(self, vals):
"""Create a new SmsHistory record with the provided values."""
record = super(SmsHistory, self).create(vals)
return record

4
clicksend_sms_odoo/security/ir.model.access.csv

@ -0,0 +1,4 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_send_sms,access.send.sms,model_send_sms,base.group_user,1,1,1,1
access_sms_group,access.sms.group,model_sms_group,base.group_user,1,1,1,1
access_sms_history,access.sms.history,model_sms_history,base.group_user,1,1,1,1
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
2 access_send_sms access.send.sms model_send_sms base.group_user 1 1 1 1
3 access_sms_group access.sms.group model_sms_group base.group_user 1 1 1 1
4 access_sms_history access.sms.history model_sms_history base.group_user 1 1 1 1

BIN
clicksend_sms_odoo/static/description/assets/icons/check.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
clicksend_sms_odoo/static/description/assets/icons/chevron.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

BIN
clicksend_sms_odoo/static/description/assets/icons/cogs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
clicksend_sms_odoo/static/description/assets/icons/consultation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
clicksend_sms_odoo/static/description/assets/icons/ecom-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
clicksend_sms_odoo/static/description/assets/icons/education-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

BIN
clicksend_sms_odoo/static/description/assets/icons/hotel-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

BIN
clicksend_sms_odoo/static/description/assets/icons/license.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
clicksend_sms_odoo/static/description/assets/icons/lifebuoy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
clicksend_sms_odoo/static/description/assets/icons/manufacturing-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

BIN
clicksend_sms_odoo/static/description/assets/icons/pos-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

BIN
clicksend_sms_odoo/static/description/assets/icons/puzzle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

BIN
clicksend_sms_odoo/static/description/assets/icons/restaurant-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

BIN
clicksend_sms_odoo/static/description/assets/icons/service-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

BIN
clicksend_sms_odoo/static/description/assets/icons/trading-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

BIN
clicksend_sms_odoo/static/description/assets/icons/training.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

BIN
clicksend_sms_odoo/static/description/assets/icons/update.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
clicksend_sms_odoo/static/description/assets/icons/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

BIN
clicksend_sms_odoo/static/description/assets/icons/wrench.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/categories.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/check-box.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/compass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/corporate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/customer-support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/features.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

BIN
clicksend_sms_odoo/static/description/assets/misc/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/pictures.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/pie-chart.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/right-arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

BIN
clicksend_sms_odoo/static/description/assets/misc/star.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
clicksend_sms_odoo/static/description/assets/misc/whatsapp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
clicksend_sms_odoo/static/description/assets/modules/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
clicksend_sms_odoo/static/description/assets/modules/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
clicksend_sms_odoo/static/description/assets/modules/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
clicksend_sms_odoo/static/description/assets/modules/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
clicksend_sms_odoo/static/description/assets/modules/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
clicksend_sms_odoo/static/description/assets/modules/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
clicksend_sms_odoo/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
clicksend_sms_odoo/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
clicksend_sms_odoo/static/description/images/checked.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
clicksend_sms_odoo/static/description/images/cybrosys.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
clicksend_sms_odoo/static/description/images/screenshots/hero.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

790
clicksend_sms_odoo/static/description/index.html

@ -0,0 +1,790 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42"
style="width: 42px; height: 42px;"/>
<div>
<div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
<div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
<div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Odoo.sh
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
ClickSend SMS Integration </h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
You can Send SMS to a Group, Partner or Anyone Using This
Module. <!-- END OF APP HERO -->
<img src="images/screenshots/hero.gif"
class="img-responsive"
width="100%" height="auto"/>
</div>
</div>
</div>
</div>
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This Module</h2>
</div>
<div class="col-md-6">
<a href="#overview" style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Overview</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
Learn more about this module</p>
</div>
<div class="col-4 text-right d-flex justify-content-end align-items-center">
<i class="fa fa-chevron-right"
style="color: #714B67 !important;"></i>
</div>
</div>
</a>
</div>
<div class="col-md-6">
<a href="#configuration"
style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Configuration</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
See the Configuration of this module</p>
</div>
<div class="col-4 text-right d-flex justify-content-end align-items-center">
<i class="fa fa-chevron-right"
style="color: #714B67 !important;"></i>
</div>
</div>
</a>
</div>
<div class="col-md-6">
<a href="#screenshots"
style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Screenshots</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
See key screenshots of this module</p>
</div>
<div class="col-4 text-right d-flex justify-content-end align-items-center">
<i class="fa fa-chevron-right"
style="color: #714B67 !important;"></i>
</div>
</div>
</a>
</div>
</div>
<div class="row" id="overview">
<div class="col-md-12"
style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-pie-chart mr-2"></i>Overview
</h2>
</div>
<div class="col-mg-12 pl-3">
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important; line-height: 30px !important;">
This Module Help you to Send SMS to a Group, Partner or
Anyone by Using ClickSend SMS Gateway.</p>
</div>
</div>
<div class="row" id="features">
<div class="col-md-12"
style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-star mr-2"></i>Features
</h2>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Configure API Credentials</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Configure the API Credentials from ClickSend
SMS Gateway</p>
</div>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Create Groups and Send SMS</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Create Different Groups and Send SMS to all the
Group Members by Just One Click.</p>
</div>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS to a Partner</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
If you Want to Send SMS to a Partner, You can Simply
Select that Partner Add the Message and Send.</p>
</div>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS to Anyone.</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Enter any Valid Mobile Number and Send SMS by
Using this Module.</p>
</div>
</div>
</div>
<div class="row" id="configuration">
<div class="col-md-12"
style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-pie-chart mr-2"></i>Configuration
</h2>
</div>
<div class="col-mg-12 pl-3">
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important; line-height: 30px !important;">
This module requires the clicksend_client python library.
You can use the following command to install it.<br/> pip
install clicksend-client
</p>
</div>
</div>
<div class="row" id="screenshots">
<div class="col-md-12"
style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-image mr-2"></i>Screenshots
</h2>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Configure the API Credentials.</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can enter your ClickSend API Credentials as Username
and API Key.</p>
<img src="images/screenshots/1.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Create SMS Groups</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Create and View Groups from the Configuration.
</p>
<img src="images/screenshots/2.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
SMS Groups</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Add Partners as Group Members.
</p>
<img src="images/screenshots/3.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS to a Group</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
If you want to Send SMS to a Group of Partners, you can
Click on the 'Send SMS to a Group' Menu.</p>
<img src="images/screenshots/4.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS.</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Choose Group from the Popup Window then it will
show all the Partners from that Group. Enter the Message
and you can Send it by the Send Button</p>
<img src="images/screenshots/5.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS to Partner</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
If you want to Send SMS to a Partner, you can Click on the
'Send SMS to a Partner' Menu.</p>
<img src="images/screenshots/6.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Select a Partner, Enter the Message and Send
SMS.</p>
<img src="images/screenshots/7.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS to Anyone.</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
If you want to Send SMS to Anyone, you can Click on the
'Send SMS to Anyone' menu.</p>
<img src="images/screenshots/8.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Send SMS.</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can Enter a Valid Phone Number, Name, Message and Send
SMS.</p>
<img src="images/screenshots/9.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
SMS History</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
You can see the Sms History with Status.</p>
<img src="images/screenshots/10.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
</div>
<!-- SUGGESTED PRODUCTS -->
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center"
style="text-align: center; padding: 2.5rem 1rem !important;">
<h2 style="color: #212529 !important;">Suggested Products</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/>
<div id="demo1" class="row carousel slide"
data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner">
<div class="carousel-item active"
style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/sales_credit_limit/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/1.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href=" https://apps.odoo.com/apps/modules/15.0/pos_product_addons/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/2.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/barcode_scanning_sale_purchase/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/3.png">
</div>
</a>
</div>
</div>
<div class="carousel-item" style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/product_batch_report/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/4.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/sales_incentive_calculation/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/5.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/product_to_quotation/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/6.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1"
data-slide="prev"
style="left:-25px;width: 35px;color: #000;"> <span
class="carousel-control-prev-icon"><i
class="fa fa-chevron-left"
style="font-size:24px"></i></span> </a> <a
class="carousel-control-next" href="#demo1"
data-slide="next"
style="right:-25px;width: 35px;color: #000;">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right"
style="font-size:24px"></i></span>
</a>
</div>
</div>
</div>
<!-- END OF SUGGESTED PRODUCTS -->
<!-- OUR SERVICES -->
<section class="container" style="margin-top: 6rem !important;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Our Services</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire
Odoo
Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Licensing Consultancy</h6>
</div>
</div>
</section>
<!-- END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<section class="container" style="margin-top: 6rem !important;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Our Industries</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/trading-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily procure
and
sell your products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/pos-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy
configuration
and convivial experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/education-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A platform for
educational management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/manufacturing-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, track and
schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/ecom-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile
friendly,
awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/service-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of
services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/restaurant-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or
restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/hotel-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An
all-inclusive
hotel management application</p>
</div>
</div>
</div>
</section>
<!-- END OF OUR INDUSTRIES -->
<!-- FOOTER -->
<!-- Footer Section -->
<section class="container" style="margin: 5rem auto 2rem;">
<div class="row" style="max-width:1540px;">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Need Help?</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/>
</div>
</div>
<!-- Contact Cards -->
<div class="row d-flex justify-content-center align-items-center"
style="max-width:1540px; margin: 0 auto 2rem auto;">
<div class="col-lg-12"
style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; ">
<div class="row mt-4">
<div class="col-lg-4">
<a href="mailto:odoo@cybrosys.com" target="_blank"
class="btn btn-block mb-2 deep_hover"
style="text-decoration: none; background-color: #4d4d4d; color: #FFF; border-radius: 4px;"><i
class="fa fa-envelope mr-2"></i>odoo@cybrosys.com</a>
</div>
<div class="col-lg-4">
<a href="https://api.WhatsApp.com/send?phone=918606827707"
target="_blank"
class="btn btn-block mb-2 deep_hover"
style="text-decoration: none; background-color: #25D366; color: #FFF; border-radius: 4px;"><i
class="fa fa-WhatsApp mr-2"></i>WhatsApp</a>
</div>
<div class="col-lg-4">
<a href="mailto:info@cybrosys.com" target="_blank"
class="btn btn-block deep_hover"
style="text-decoration: none; background-color: #4d4d4d; color: #FFF; border-radius: 4px;"><i
class="fa fa-envelope mr-2"></i>info@cybrosys.com</a>
</div>
</div>
</div>
</div>
<!-- End of Contact Cards -->
</section>
<!-- Footer -->
<section class="oe_container" style="padding: 2rem 3rem 1rem;">
<div class="row"
style="max-width:1540px; margin: 0 auto; margin-right: 3rem; ">
<!-- Logo -->
<div class="col-lg-12 d-flex justify-content-center align-items-center"
style="margin-top: 3rem;">
<img src="https://www.cybrosys.com/images/logo.png"
width="200px" height="auto"/>
</div>
<!-- End of Logo -->
<div class="col-lg-12">
<hr
style="margin-top: 3rem;background: linear-gradient(90deg, rgba(2,0,36,0) 0%, rgba(229,229,229,1) 33%, rgba(229,229,229,1) 58%, rgba(0,212,255,0) 100%); height: 2px; border-style: none;">
<!-- End of Footer Section -->
</div>
</div>
</section>
<!-- END OF FOOTER -->
</div>
</div>

67
clicksend_sms_odoo/views/res_config_settings_views.xml

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Inherits res config settings to add the API fields for clicksend_sms_odoo -->
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">
res.conf.settings.view.form.inherit.clicksend_sms_odoo
</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="ClickSend SMS"
data-key="clicksend_sms_odoo">
<h2>API Credentials</h2>
<div class="row mt16 o_settings_container"
name="dashboard_columns_settings_container">
<div class="o_setting_right_pane">
<div class="o_setting_left_pane">
<label for="username" string="Username"/>
</div>
<div class="text-muted">
Username of your ClickSend Account
</div>
<div>
<field name="username"/>
</div>
</div>
</div>
<div class="row mt16 o_settings_container"
name="dashboard_columns_settings_container">
<div class="o_setting_right_pane">
<div class="o_setting_left_pane">
<label for="api_key" string="API Key"/>
</div>
<div class="text-muted">
Enter your API Key for ClickSend
</div>
<div>
<field name="api_key"/>
</div>
</div>
<br/>
</div>
<div class="row mt16 o_settings_container">
<a href="https://dashboard.clicksend.com/login"
title="Go to ClickSend" class="o_doc_link"
target="_blank">
<span>New to ClickSend</span>
</a>
<br/>
</div>
</div>
</xpath>
</field>
</record>
<!-- Action for settings -->
<record id="res_config_settings_action"
model="ir.actions.act_window">
<field name="name">Settings</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.config.settings</field>
<field name="view_id" ref="res_config_settings_view_form"/>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="context">{'module' : 'clicksend_sms_odoo'}</field>
</record>
</odoo>

48
clicksend_sms_odoo/views/sms_group_views.xml

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- SMS Group form view -->
<record id="sms_group_view_form" model="ir.ui.view">
<field name="name">sms.group.view.form</field>
<field name="model">sms.group</field>
<field name="arch" type="xml">
<form string="SMS">
<sheet>
<h1>
<field name="name" readonly="True"/>
</h1>
<group>
<group>
<field name="name"/>
<field name="description"/>
</group>
<group>
<field name="partner_ids" widget="many2many_tags"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- SMS Group view action -->
<record id="sms_group_action"
model="ir.actions.act_window">
<field name="name">SMS</field>
<field name="res_model">sms.group</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No groups found. Let's create one!
</p>
</field>
</record>
<!-- Menu Items -->
<menuitem id="clicksend_sms_menu" name="Send SMS"
parent="sms_history_menu"/>
<menuitem id="conf_menu" name="Configuration" parent="sms_history_menu"
sequence="100"/>
<menuitem id="sms_group_menu" name="Groups"
action="sms_group_action" parent="conf_menu"/>
<menuitem id="res_config_settings_menu" name="Settings"
action="res_config_settings_action" parent="conf_menu"
sequence="1"/>
</odoo>

58
clicksend_sms_odoo/views/sms_history_views.xml

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- SMS History Form view -->
<record id="sms_history_view_form" model="ir.ui.view">
<field name="name">sms.history.view.form</field>
<field name="model">sms.history</field>
<field name="arch" type="xml">
<form string="SMS History">
<sheet>
<h1>
<field name="name" readonly="True"/>
</h1>
<group>
<group>
<field name="name" readonly="True"/>
<field name="number" readonly="True"/>
</group>
<group>
<field name="state" readonly="True"/>
<field name="message" readonly="True"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- SMS History tree view -->
<record id="sms_history_view_tree" model="ir.ui.view">
<field name="name">sms.history.view.tree</field>
<field name="model">sms.history</field>
<field name="arch" type="xml">
<tree name="sms" create="false" edit="false" delete="false">
<field name="name"/>
<field name="number"/>
<field name="state"/>
<field name="create_date"/>
</tree>
</field>
</record>
<!-- Action for SMS History view -->
<record id="sms_history_action"
model="ir.actions.act_window">
<field name="name">SMS History</field>
<field name="res_model">sms.history</field>
<field name="context">{'create': False, 'edit': False}</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No SMS history found. Let's create one!
</p>
</field>
</record>
<!-- Root menu for ClickSend SMS -->
<menuitem id="sms_history_menu" name="ClickSend SMS"
web_icon="clicksend_sms_odoo,static/description/icon.png"
action="sms_history_action"
/>
</odoo>

22
clicksend_sms_odoo/wizard/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import send_sms

134
clicksend_sms_odoo/wizard/send_sms.py

@ -0,0 +1,134 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Raveena V (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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from __future__ import print_function
import clicksend_client
import logging
from ast import literal_eval
from clicksend_client import SmsMessage
from odoo import fields, models, _
from odoo.exceptions import UserError
_logger = logging.getLogger(__name__)
class SendSms(models.TransientModel):
"""This Transient model will read all the user inputs and sends sms"""
_name = 'send.sms'
_description = "Send SMS for a Partner ,Group or Anyone"
number = fields.Char(string='Number', related='partner_id.phone',
readonly=False,
store=True, help="Phone number of the Partner")
name = fields.Char(string="Name", help="Name of the Receiver")
partner_id = fields.Many2one('res.partner', string="Partner",
help="Receiver name")
message = fields.Text(string='Message', help="Content of the SMS Message")
group_id = fields.Many2one('sms.group', string='Group',
help="Choose a group to send the sms")
partner_ids = fields.Many2many('res.partner', string="Partners",
help="The partners to send SMS",
related='group_id.partner_ids')
def action_send_sms(self):
"""Send an SMS message using the ClickSend API."""
username = self.env['ir.config_parameter'].sudo().get_param(
'clicksend_sms_odoo.username')
password = self.env['ir.config_parameter'].sudo().get_param(
'clicksend_sms_odoo.api_key')
if not username or not password:
raise UserError(
_("Please configure your ClickSend credentials"))
configuration = clicksend_client.Configuration()
configuration.username = self.env[
'ir.config_parameter'].sudo().get_param(
'clicksend_sms_odoo.username')
configuration.password = self.env[
'ir.config_parameter'].sudo().get_param(
'clicksend_sms_odoo.api_key')
num_list = []
name_list = []
number = False
api_instance = clicksend_client.SMSApi(
clicksend_client.ApiClient(configuration))
if self.partner_id:
number = self.partner_id.phone
elif self.name and self.number:
number = self.number
elif self.group_id:
partner_ids = self.group_id.partner_ids
num_list = partner_ids.mapped('phone')
name_list = partner_ids.mapped('name')
if number:
sms_message = SmsMessage(
source="php",
body=self.message,
to=number,
schedule=1436874701)
sms_messages = clicksend_client.SmsMessageCollection(
messages=[sms_message])
try:
api_response = api_instance.sms_send_post(sms_messages)
response = api_response.replace("\'", "\"")
response = literal_eval(response)
if response.get('response_code') == 'SUCCESS':
state = "sent"
else:
state = "canceled"
name = self.name if self.name else (
self.partner_id.name if self.partner_id else "")
self.env['sms.history'].create({
'name': name,
'number': number,
'state': state,
'message': self.message
})
except Exception as e:
_logger.warning(
"Exception when calling SMSApi->sms_send_post: %s\n" % e)
elif num_list:
for num, name in zip(num_list, name_list):
sms_message = SmsMessage(
source="php",
body=self.message,
to=num,
schedule=1436874701
)
sms_messages = clicksend_client.SmsMessageCollection(
messages=[sms_message])
try:
api_response = api_instance.sms_send_post(sms_messages)
response = api_response.replace("\'", "\"")
response = literal_eval(response)
if response.get('response_code') == 'SUCCESS':
state = "sent"
else:
state = "canceled"
self.env['sms.history'].create({
'name': name,
'number': num,
'state': state,
'message': self.message
})
except Exception as e:
_logger.warning(
"Exception when calling SMSApi->sms_send_post: %s\n"
% e)

114
clicksend_sms_odoo/wizard/send_sms_views.xml

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Form view for send sms partners -->
<record id="send_sms_view_form_partner" model="ir.ui.view">
<field name="name">send.sms.view.form</field>
<field name="model">send.sms</field>
<field name="arch" type="xml">
<form string="SMS">
<sheet>
<group>
<group>
<field name="partner_id"/>
<field name="number"/>
</group>
<group>
<field name="message"/>
</group>
</group>
</sheet>
<footer>
<button name="action_send_sms" string="Send" type="object"
class="btn-primary" data-hotkey="q"/>
<button special="cancel" data-hotkey="z" string="Discard"
class="btn-secondary"/>
</footer>
</form>
</field>
</record>
<!-- Action for send sms form view for partners -->
<record id="send_sms_action" model="ir.actions.act_window">
<field name="name">Send</field>
<field name="res_model">send.sms</field>
<field name="view_mode">form</field>
<field name="view_id" ref="send_sms_view_form_partner"/>
<field name="target">new</field>
</record>
<!-- Form view for send sms to anyone -->
<record id="send_sms_view_form_anyone" model="ir.ui.view">
<field name="name">send.sms.view.form</field>
<field name="model">send.sms</field>
<field name="arch" type="xml">
<form string="SMS">
<sheet>
<group>
<group>
<field name="name"/>
<field name="number" placeholder="+919000000000"/>
</group>
<group>
<field name="message"/>
</group>
</group>
</sheet>
<footer>
<button name="action_send_sms" string="Send" type="object"
class="btn-primary" data-hotkey="q"/>
<button special="cancel" data-hotkey="z" string="Discard"
class="btn-secondary"/>
</footer>
</form>
</field>
</record>
<!-- Action for send sms form view for anyone -->
<record id="send_sms_anyone_action" model="ir.actions.act_window">
<field name="name">Send</field>
<field name="res_model">send.sms</field>
<field name="view_mode">form</field>
<field name="view_id" ref="send_sms_view_form_anyone"/>
<field name="target">new</field>
</record>
<!-- Form view for send sms group -->
<record id="send_sms_view_form_group" model="ir.ui.view">
<field name="name">send.sms.view.form</field>
<field name="model">send.sms</field>
<field name="arch" type="xml">
<form string="SMS">
<sheet>
<group>
<group>
<field name="group_id"/>
<field name="partner_ids" widget="many2many_tags"/>
</group>
<group>
<field name="message"/>
</group>
</group>
</sheet>
<footer>
<button name="action_send_sms" string="Send" type="object"
class="btn-primary" data-hotkey="q"/>
<button special="cancel" data-hotkey="z" string="Discard"
class="btn-secondary"/>
</footer>
</form>
</field>
</record>
<!-- Action for send sms form view for group -->
<record id="send_sms_menu_group_action" model="ir.actions.act_window">
<field name="name">Send</field>
<field name="res_model">send.sms</field>
<field name="view_mode">form</field>
<field name="view_id" ref="send_sms_view_form_group"/>
<field name="target">new</field>
</record>
<!-- Menu for Send SMS to a Group -->
<menuitem id="send_sms_group_menu" name="Send SMS to a Group"
action="send_sms_menu_group_action" parent="clicksend_sms_menu"/>
<!-- Menu for Send SMS to a Partner -->
<menuitem id="send_sms_partner_menu" name="Send SMS to a Partner"
action="send_sms_action" parent="clicksend_sms_menu"/>
<!-- Menu for Send SMS to Anyone -->
<menuitem id="send_sms_anyone_menu" name="Send SMS to Anyone"
action="send_sms_anyone_action" parent="clicksend_sms_menu"/>
</odoo>
Loading…
Cancel
Save