Browse Source

Feb 23 : [ADD] Initial Commit 'clicksend_sms_odoo'

pull/267/merge
RisvanaCybro 1 year ago
parent
commit
71c4e06c71
  1. 49
      clicksend_sms_odoo/README.rst
  2. 23
      clicksend_sms_odoo/__init__.py
  3. 50
      clicksend_sms_odoo/__manifest__.py
  4. 7
      clicksend_sms_odoo/doc/RELEASE_NOTES.md
  5. 24
      clicksend_sms_odoo/models/__init__.py
  6. 36
      clicksend_sms_odoo/models/res_config_settings.py
  7. 35
      clicksend_sms_odoo/models/sms_group.py
  8. 37
      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/3.jpg
  45. BIN
      clicksend_sms_odoo/static/description/assets/modules/4.png
  46. BIN
      clicksend_sms_odoo/static/description/assets/modules/5.png
  47. BIN
      clicksend_sms_odoo/static/description/assets/modules/6.png
  48. BIN
      clicksend_sms_odoo/static/description/assets/modules/banner.jpg
  49. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/1.png
  50. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/10.png
  51. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/2.png
  52. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/3.png
  53. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/4.png
  54. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/5.png
  55. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/6.png
  56. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/7.png
  57. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/8.png
  58. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/9.png
  59. BIN
      clicksend_sms_odoo/static/description/assets/screenshots/v16-hero.gif
  60. BIN
      clicksend_sms_odoo/static/description/banner.png
  61. BIN
      clicksend_sms_odoo/static/description/icon.png
  62. 721
      clicksend_sms_odoo/static/description/index.html
  63. 25
      clicksend_sms_odoo/views/clicksend_sms_odoo_menus.xml
  64. 59
      clicksend_sms_odoo/views/res_config_settings_views.xml
  65. 38
      clicksend_sms_odoo/views/sms_group_views.xml
  66. 53
      clicksend_sms_odoo/views/sms_history_views.xml
  67. 22
      clicksend_sms_odoo/wizard/__init__.py
  68. 131
      clicksend_sms_odoo/wizard/send_sms.py
  69. 114
      clicksend_sms_odoo/wizard/send_sms_views.xml

49
clicksend_sms_odoo/README.rst

@ -0,0 +1,49 @@
.. 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
ClickSend SMS Integration
=========================
* Odoo -Integration with ClickSend SMS Gateway
Configuration
=============
- Need to add API Key and Username in Clicksend settings section in Res Config Settings
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
License
-------
General Public License, Version 3 (AGPL v3).
(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Credits
-------
* Developer:
(V15) Raveena V,
(V16) Anfas Faisal K
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: Anfas Faisal K (odoo@cybrosys.info)
#
# 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

50
clicksend_sms_odoo/__manifest__.py

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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": "16.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",
"views/clicksend_sms_odoo_menus.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,
}

7
clicksend_sms_odoo/doc/RELEASE_NOTES.md

@ -0,0 +1,7 @@
## Module <clicksend_sms_odoo>
#### 15.02.2024
#### Version 16.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: Anfas Faisal K (odoo@cybrosys.info)
#
# 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

36
clicksend_sms_odoo/models/res_config_settings.py

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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 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",
config_parameter='clicksend_sms_odoo.username')
api_key = fields.Char(string="API Key",
help="You will get the API key from ClickSend",
config_parameter='clicksend_sms_odoo.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: Anfas Faisal K (odoo@cybrosys.info)
#
# 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")

37
clicksend_sms_odoo/models/sms_history.py

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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 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")

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_user,access.send.sms.user,model_send_sms,base.group_user,1,1,1,1
access_sms_group_user,access.sms.group.user,model_sms_group,base.group_user,1,1,1,1
access_sms_history_user,access.sms.history.user,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_user access.send.sms.user model_send_sms base.group_user 1 1 1 1
3 access_sms_group_user access.sms.group.user model_sms_group base.group_user 1 1 1 1
4 access_sms_history_user access.sms.history.user 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: 82 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
clicksend_sms_odoo/static/description/assets/modules/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
clicksend_sms_odoo/static/description/assets/screenshots/v16-hero.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

BIN
clicksend_sms_odoo/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
clicksend_sms_odoo/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

721
clicksend_sms_odoo/static/description/index.html

@ -0,0 +1,721 @@
<div style="background-color: #714B67; min-height: 600px; 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: #875A7B; 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: #875A7B; 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>
<!-- END OF TITLE BAR -->
<!-- APP HERO -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<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.
</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/v16-hero.gif"
style="width: 100%; margin-left: auto; margin-right: auto;"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<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="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
features of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="overview">
<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/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">
This Module Help you to Send SMS to a Group, Partner or Anyone by Using
ClickSend SMS Gateway.
</div>
<div class="alert alert-primary mt-4">
<hr/>
This module uses an external python dependency
'clicksend_client'.Before
installing the module install the python
package
first.The required python package can be installed using the
following command,
<br/>
<code class="d-block mt-2">pip install clicksend-client</code>
</div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="features">
<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/features.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Features
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Configure API Credentials
</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Create Groups and Send SMS</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Send SMS to a Partner
</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Send SMS to Anyone
</span>
</div>
</div>
<div class="col-sm-12 col-md-6">
</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="assets/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="assets/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="assets/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="assets/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="assets/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="assets/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="assets/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="assets/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="assets/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="assets/screenshots/10.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED 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/16.0/shopify_odoo_connector/"
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/16.0/odoo_icecat_connector/"
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.jpg">
</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/16.0/whatsapp_mail_messaging/#"
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>
<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/16.0/odoo_slack_connector/#"
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/16.0/woo_commerce/"
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 class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/odoo_magento_2_4_5/"
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/banner.jpg">
</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-6">
<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-6">
<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>
</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 -->

25
clicksend_sms_odoo/views/clicksend_sms_odoo_menus.xml

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Root menu for ClickSend SMS -->
<menuitem id="clicksend_sms_menu_root" name="ClickSend SMS"
web_icon="clicksend_sms_odoo,static/description/icon.png"
action="sms_history_action">
<!--Root Menu to show the options of sending SMS-->
<menuitem id="clicksend_sms_menu" name="Send SMS"/>
<!--Menu to see the SMS History-->
<menuitem id="sms_history_menu" name="SMS History"
action="sms_history_action"/>
<!--Root Configuration menu-->
<menuitem id="clicksend_sms_menu_configuration_root"
name="Configuration"
sequence="100">
<!--Menu to show the SMS Groups-->
<menuitem id="clicksend_sms_menu_groups" name="Groups"
action="sms_group_action"/>
<!--Menu to show the configuration-->
<menuitem id="clicksend_sms_menu_configuration" name="Settings"
action="res_config_settings_action"
sequence="1"/>
</menuitem>
</menuitem>
</odoo>

59
clicksend_sms_odoo/views/res_config_settings_views.xml

@ -0,0 +1,59 @@
<?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.config.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" string="ClickSend">
<h2>API Credentials</h2>
<div class="row mt16 o_settings_container"
name="dashboard_columns_settings_container">
<div class="o_setting_left_pane">
<label for="username" string="Username"/>
</div>
<div class="o_setting_right_pane">
Username of your ClickSend Account :
<field name="username"/>
</div>
</div>
<div class="row mt16 o_settings_container"
name="dashboard_columns_settings_container">
<div>
<label for="api_key" string="API Key"/>
</div>
<div class="o_setting_right_pane">
Enter your API Key for ClickSend :
<field name="api_key"/>
</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>

38
clicksend_sms_odoo/views/sms_group_views.xml

@ -0,0 +1,38 @@
<?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>
</odoo>

53
clicksend_sms_odoo/views/sms_history_views.xml

@ -0,0 +1,53 @@
<?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>
</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: Anfas Faisal K (odoo@cybrosys.info)
#
# 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

131
clicksend_sms_odoo/wizard/send_sms.py

@ -0,0 +1,131 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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, ValidationError
_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 SMS using ClickSend API.
This method retrieves ClickSend credentials from Odoo configuration
parameters, constructs SMS messages based on the recipient information,
and sends the SMS using the ClickSend API. It logs the SMS history
with details like recipient name, number, message, and delivery
status."""
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 = username
configuration.password = password
api_instance = clicksend_client.SMSApi(
clicksend_client.ApiClient(configuration))
num_list = []
name_list = []
number = False
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
)
else:
sms_messages = [SmsMessage(
source="php",
body=self.message,
to=num,
schedule=1436874701
) for num in num_list]
try:
if number:
api_response = api_instance.sms_send_post(
clicksend_client.SmsMessageCollection(
messages=[sms_message]))
else:
api_response = api_instance.sms_send_post(
clicksend_client.SmsMessageCollection(
messages=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 "")
if number:
self.env['sms.history'].create({
'name': name,
'number': number,
'state': state,
'message': self.message
})
else:
for num, name in zip(num_list, name_list):
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)
raise ValidationError(
_("An error occurred while sending SMS. Please check your "
"Credentials and try again."))

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