diff --git a/monday_odoo_connector/README.rst b/monday_odoo_connector/README.rst new file mode 100755 index 000000000..7c5f8a564 --- /dev/null +++ b/monday_odoo_connector/README.rst @@ -0,0 +1,50 @@ +.. 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 + +Monday.com Odoo Connector +========================= +This module helps to import data from Monday.com to Odoo. + +Configuration +============= +* First you need to create Monday token. +1) Go to https://demos-team-team.monday.com/ and login to your account +2) Click on your profile picture at the right corner. +3) Click on Developers +4) Under My access token tab, you can see the Monday token + +License +------- +General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +Developer: (V15) Unnimaya C O, Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/monday_odoo_connector/__init__.py b/monday_odoo_connector/__init__.py new file mode 100644 index 000000000..1680be90b --- /dev/null +++ b/monday_odoo_connector/__init__.py @@ -0,0 +1,22 @@ +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import models +from . import wizard diff --git a/monday_odoo_connector/__manifest__.py b/monday_odoo_connector/__manifest__.py new file mode 100644 index 000000000..a2a339e40 --- /dev/null +++ b/monday_odoo_connector/__manifest__.py @@ -0,0 +1,50 @@ +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + 'name': "Monday.com Odoo Connector", + 'version': '15.0.1.0.0', + 'category': 'Productivity', + 'summary': """Helps to connect with your Monday.com account from Odoo""", + 'description': """Monday Odoo connector module allows to connect with your + Monday.com account and import Users, Boards, Groups, Items and Customers + from Monday.com to Odoo""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base'], + 'data': [ + 'security/ir.model.access.csv', + 'wizard/monday_connector_views.xml', + 'views/monday_credential_views.xml', + 'views/monday_board_views.xml', + 'views/monday_group_views.xml', + 'views/monday_item_views.xml', + 'views/res_partner_views.xml', + 'views/res_users_views.xml', + 'views/item_column_value.xml' + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/monday_odoo_connector/doc/RELEASE_NOTES.md b/monday_odoo_connector/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..5ad6abb10 --- /dev/null +++ b/monday_odoo_connector/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 04.09.2023 +#### Version 15.0.1.0.0 +#### ADD + +- Initial commit for Monday.com Odoo Connector diff --git a/monday_odoo_connector/models/__init__.py b/monday_odoo_connector/models/__init__.py new file mode 100644 index 000000000..38157a0c7 --- /dev/null +++ b/monday_odoo_connector/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import item_column_value +from . import monday_board +from . import monday_credential +from . import monday_group +from . import monday_item +from . import res_partner +from . import res_users diff --git a/monday_odoo_connector/models/item_column_value.py b/monday_odoo_connector/models/item_column_value.py new file mode 100644 index 000000000..2131d16f6 --- /dev/null +++ b/monday_odoo_connector/models/item_column_value.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class ItemColumnValue(models.Model): + """Class for storing Column Values of items received from Monday.cpm""" + _name = "item.column.value" + _description = "Monday Item Column Values" + _rec_name = "title" + + item_id = fields.Many2one('monday.item', string="Item", + help="It is the item of the group", readonly=True) + title = fields.Char(string="Title", help="Indicates title of the item", + readonly=True) + text = fields.Char(string="Text", help="Indicated text on the item", + readonly=True) diff --git a/monday_odoo_connector/models/monday_board.py b/monday_odoo_connector/models/monday_board.py new file mode 100644 index 000000000..e789a90f2 --- /dev/null +++ b/monday_odoo_connector/models/monday_board.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class MondayBoard(models.Model): + """Class for storing Boards received from Monday.com""" + _name = "monday.board" + _description = "Monday Boards" + + name = fields.Char(string="Board", help="It is the name of the board") + board_reference = fields.Char(string="Board ID", + help="It is the reference number of the " + "board") + owner = fields.Char(string="Owner", help="It is the owner of the board") + description = fields.Char(string="Description", + help="It is the detailed description of the " + "board") + group_ids = fields.One2many('monday.group', 'board_id', string="Group", + help="It indicates the Groups of Board") + item_ids = fields.One2many('monday.item', 'board_id', string="Item", + help="It indicates the item of board") diff --git a/monday_odoo_connector/models/monday_credential.py b/monday_odoo_connector/models/monday_credential.py new file mode 100644 index 000000000..b6f036163 --- /dev/null +++ b/monday_odoo_connector/models/monday_credential.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class MondayCredential(models.Model): + """Class containing Monday Credentials which is used to connect + with Monday.com""" + _name = "monday.credential" + _description = "Monday Credentials" + + name = fields.Char(string="Name", help="Account name") + token = fields.Char(string="Token", + help="Token for connecting with Monday.com") diff --git a/monday_odoo_connector/models/monday_group.py b/monday_odoo_connector/models/monday_group.py new file mode 100644 index 000000000..3ef0f9579 --- /dev/null +++ b/monday_odoo_connector/models/monday_group.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class MondayGroup(models.Model): + """Class for storing Groups received from Monday""" + _name = "monday.group" + _description = "Monday Groups" + + name = fields.Char(string="Group", help="It is the name of the group", + readonly=True) + group = fields.Char(string='Id', help="It is the id of the group", + readonly=True) + board_id = fields.Many2one('monday.board', string="Board Id", + help="It is the id of the board", readonly=True) + item_name = fields.Char(string="Item", help="It is the item of the board", + readonly=True) diff --git a/monday_odoo_connector/models/monday_item.py b/monday_odoo_connector/models/monday_item.py new file mode 100644 index 000000000..dc78e1c34 --- /dev/null +++ b/monday_odoo_connector/models/monday_item.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class MondayItem(models.Model): + """Class for storing Items received from Monday.com""" + _name = "monday.item" + _description = "Monday Item" + + board_id = fields.Many2one('monday.board', string="Board", + help="This indicates the board") + group_id = fields.Many2one('monday.group', string="Group", + help="This indicates the group") + name = fields.Char(string="Item", help="ID of the Item", readonly=True) + column_value_ids = fields.One2many('item.column.value', 'item_id', + string="Column Value", + help="It is the Column Value of the" + " Item") diff --git a/monday_odoo_connector/models/res_partner.py b/monday_odoo_connector/models/res_partner.py new file mode 100644 index 000000000..69cd643a8 --- /dev/null +++ b/monday_odoo_connector/models/res_partner.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class ResPartner(models.Model): + """Inherited to add Monday fields which helps to identify the partners + imported from Monday""" + _inherit = 'res.partner' + + monday_reference = fields.Boolean(string='Is Monday Contact', + help="True for contacts from monday") diff --git a/monday_odoo_connector/models/res_users.py b/monday_odoo_connector/models/res_users.py new file mode 100644 index 000000000..8cd6378d6 --- /dev/null +++ b/monday_odoo_connector/models/res_users.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class ResUsers(models.Model): + """Inherited to add Monday fields which is used to identify the users + inherited from Monday.com""" + _inherit = 'res.users' + + monday_reference = fields.Char(string='Monday ID', + help="It is the Monday id of the user") diff --git a/monday_odoo_connector/security/ir.model.access.csv b/monday_odoo_connector/security/ir.model.access.csv new file mode 100644 index 000000000..28f25f39a --- /dev/null +++ b/monday_odoo_connector/security/ir.model.access.csv @@ -0,0 +1,7 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_monday_credential,access.monday.credential,model_monday_credential,base.group_user,1,1,1,1 +access_monday_board,access.monday.board,model_monday_board,base.group_user,1,1,1,1 +access_monday_connector,access.monday.connector,model_monday_connector,base.group_user,1,1,1,1 +access_monday_group,access.monday.group,model_monday_group,base.group_user,1,1,1,1 +access_monday_item,access.monday.item,model_monday_item,base.group_user,1,1,1,1 +access_item_column_value,access.item.column.value,model_item_column_value,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/monday_odoo_connector/static/description/assets/icons/check.png b/monday_odoo_connector/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/check.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/chevron.png b/monday_odoo_connector/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/chevron.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/cogs.png b/monday_odoo_connector/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/cogs.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/consultation.png b/monday_odoo_connector/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/consultation.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/ecom-black.png b/monday_odoo_connector/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/ecom-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/education-black.png b/monday_odoo_connector/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/education-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/hotel-black.png b/monday_odoo_connector/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/hotel-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/license.png b/monday_odoo_connector/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/license.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/lifebuoy.png b/monday_odoo_connector/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/lifebuoy.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/logo.png b/monday_odoo_connector/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/logo.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/manufacturing-black.png b/monday_odoo_connector/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/manufacturing-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/pos-black.png b/monday_odoo_connector/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/pos-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/puzzle.png b/monday_odoo_connector/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/puzzle.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/restaurant-black.png b/monday_odoo_connector/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/restaurant-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/service-black.png b/monday_odoo_connector/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/service-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/trading-black.png b/monday_odoo_connector/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/trading-black.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/training.png b/monday_odoo_connector/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/training.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/update.png b/monday_odoo_connector/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/update.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/user.png b/monday_odoo_connector/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/user.png differ diff --git a/monday_odoo_connector/static/description/assets/icons/wrench.png b/monday_odoo_connector/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/monday_odoo_connector/static/description/assets/icons/wrench.png differ diff --git a/monday_odoo_connector/static/description/assets/modules/agriculture.png b/monday_odoo_connector/static/description/assets/modules/agriculture.png new file mode 100644 index 000000000..bb6d60e85 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/modules/agriculture.png differ diff --git a/monday_odoo_connector/static/description/assets/modules/hospital.png b/monday_odoo_connector/static/description/assets/modules/hospital.png new file mode 100644 index 000000000..187ab1e5e Binary files /dev/null and b/monday_odoo_connector/static/description/assets/modules/hospital.png differ diff --git a/monday_odoo_connector/static/description/assets/modules/project_dashboard.png b/monday_odoo_connector/static/description/assets/modules/project_dashboard.png new file mode 100644 index 000000000..c46f55b75 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/modules/project_dashboard.png differ diff --git a/monday_odoo_connector/static/description/assets/modules/shopify.png b/monday_odoo_connector/static/description/assets/modules/shopify.png new file mode 100644 index 000000000..288227618 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/modules/shopify.png differ diff --git a/monday_odoo_connector/static/description/assets/modules/systray.png b/monday_odoo_connector/static/description/assets/modules/systray.png new file mode 100644 index 000000000..e67ae8c93 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/modules/systray.png differ diff --git a/monday_odoo_connector/static/description/assets/modules/woocomp_connector.png b/monday_odoo_connector/static/description/assets/modules/woocomp_connector.png new file mode 100644 index 000000000..4bec075eb Binary files /dev/null and b/monday_odoo_connector/static/description/assets/modules/woocomp_connector.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot.png new file mode 100644 index 000000000..a519ce26a Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot0.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot0.png new file mode 100644 index 000000000..2b9ff3a6f Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot0.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot1.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot1.png new file mode 100644 index 000000000..cc1f878c8 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot1.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot10.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot10.png new file mode 100644 index 000000000..45f1f71b4 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot10.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot11.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot11.png new file mode 100644 index 000000000..2ec494bc3 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot11.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot2.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot2.png new file mode 100644 index 000000000..f0b132838 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot2.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot3.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot3.png new file mode 100644 index 000000000..c728393fa Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot3.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot4.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot4.png new file mode 100644 index 000000000..4c7732765 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot4.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot5.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot5.png new file mode 100644 index 000000000..012f53c55 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot5.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot6.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot6.png new file mode 100644 index 000000000..e4967a62f Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot6.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot7.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot7.png new file mode 100644 index 000000000..b65c18cc4 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot7.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot8.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot8.png new file mode 100644 index 000000000..3e5adc831 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot8.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/Screenshot9.png b/monday_odoo_connector/static/description/assets/screenshots/Screenshot9.png new file mode 100644 index 000000000..26a726574 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/Screenshot9.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/connector.png b/monday_odoo_connector/static/description/assets/screenshots/connector.png new file mode 100644 index 000000000..9e78e8853 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/connector.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/credential.png b/monday_odoo_connector/static/description/assets/screenshots/credential.png new file mode 100644 index 000000000..002550ab0 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/credential.png differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/hero.gif b/monday_odoo_connector/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..a75733d69 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/hero.gif differ diff --git a/monday_odoo_connector/static/description/assets/screenshots/imported.png b/monday_odoo_connector/static/description/assets/screenshots/imported.png new file mode 100644 index 000000000..96cbe1116 Binary files /dev/null and b/monday_odoo_connector/static/description/assets/screenshots/imported.png differ diff --git a/monday_odoo_connector/static/description/banner.jpg b/monday_odoo_connector/static/description/banner.jpg new file mode 100644 index 000000000..7b2b114eb Binary files /dev/null and b/monday_odoo_connector/static/description/banner.jpg differ diff --git a/monday_odoo_connector/static/description/icon.png b/monday_odoo_connector/static/description/icon.png new file mode 100644 index 000000000..44014f95a Binary files /dev/null and b/monday_odoo_connector/static/description/icon.png differ diff --git a/monday_odoo_connector/static/description/index.html b/monday_odoo_connector/static/description/index.html new file mode 100644 index 000000000..a9fafac23 --- /dev/null +++ b/monday_odoo_connector/static/description/index.html @@ -0,0 +1,717 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+ +
+
+
+

+ Monday.com Odoo Connector

+

+ Provides opportunity to connect with your Monday.com account + from Odoo +

+ +
+
+ +
+
+

+ Overview +

+
+
+

+ Monday Odoo connector module allows to import Users, Boards, + Groups, Items and Customers from Monday to Odoo. The imported + features will be identified with a unique Monday id. +

+
+
+
+
+

+ Features +

+
+
+
+ +
+
+

+ Imports Users From Monday.com

+
+
+
+
+ +
+
+

+ Imports Boards From Monday.com

+
+
+
+
+ +
+
+

+ Imports Groups From Monday.com

+
+
+
+
+ +
+
+

+ Imports Items From Monday.com

+
+
+
+
+ +
+
+

+ Imports Customers From Monday.com

+
+
+
+
+
+
+

+ Screenshots +

+
+
+

+ Login to Monday.com account then click on the button in the top left + corner and click on Explore more products. Then Select Monday sales + CRM.

+ +
+
+

+ Select the profile picture in the top right. Following that, select + Developers. +

+ +
+
+

+ My access tokens tab will provide the Access Token.

+ +
+
+

+ Navigate to the Credentials menu under Configuration

+ +
+
+

+ Add the access token to Monday Credentials

+ +
+
+

+ Navigate to the Connector menu under Configuration.

+ +
+
+

+ Import Users from Monday.com to Odoo

+

+ Choose Monday Credential and Tick Import user Checkbox +

+ +
+
+

+ All imported data will be available under the Imported menu.

+ +
+
+

+ Imported User

+ +
+
+

+ Import Boards from Monday.com

+

+ While Ticking the checkbox Import Boards, the checkboxes for Groups + and Items enabled by default

+ +
+
+

+ Imported Boards

+ +
+
+

+ Groups in imported Boards

+ +
+
+

+ Items in imported Boards

+ +
+
+

+ Column Values that correspond to the imported Item +

+ +
+
+

+ Import Customers from Monday.com

+ +
+
+

+ Imported Customers

+ +
+
+ +
+
+

Suggested Products

+
+ + +
+
+ + +
+
+
+

Our Services

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

Our Industries

+
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

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

+ Mobile + friendly, + awe-inspiring product pages

+
+
+
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

Need Help?

+
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+
+ + + diff --git a/monday_odoo_connector/views/item_column_value.xml b/monday_odoo_connector/views/item_column_value.xml new file mode 100644 index 000000000..417c56cbf --- /dev/null +++ b/monday_odoo_connector/views/item_column_value.xml @@ -0,0 +1,23 @@ + + + + + item.column.value.view.form + item.column.value + +
+ + + + + + + + + + + +
+
+
+
diff --git a/monday_odoo_connector/views/monday_board_views.xml b/monday_odoo_connector/views/monday_board_views.xml new file mode 100644 index 000000000..b8884e15f --- /dev/null +++ b/monday_odoo_connector/views/monday_board_views.xml @@ -0,0 +1,87 @@ + + + + + monday.board.view.tree + monday.board + + + + + + + + + + + monday.board.view.form + monday.board + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + monday.board.view.search + monday.board + + + + + + + + + + + + Monday Boards + monday.board + ir.actions.act_window + tree,form + + + + + + +
diff --git a/monday_odoo_connector/views/monday_credential_views.xml b/monday_odoo_connector/views/monday_credential_views.xml new file mode 100644 index 000000000..9b7dae77e --- /dev/null +++ b/monday_odoo_connector/views/monday_credential_views.xml @@ -0,0 +1,44 @@ + + + + + monday.credential.view.tree + monday.credential + + + + + + + + + + monday.credential.view.form + monday.credential + +
+ + + + + + +
+
+
+ + + Monday Credential + monday.credential + ir.actions.act_window + tree,form + + + +
diff --git a/monday_odoo_connector/views/monday_group_views.xml b/monday_odoo_connector/views/monday_group_views.xml new file mode 100644 index 000000000..fcefdd8ea --- /dev/null +++ b/monday_odoo_connector/views/monday_group_views.xml @@ -0,0 +1,34 @@ + + + + + monday.group.view.tree + monday.group + + + + + + + + + + monday.group.view.form + monday.group + +
+ + + + + + + + + + + +
+
+
+
diff --git a/monday_odoo_connector/views/monday_item_views.xml b/monday_odoo_connector/views/monday_item_views.xml new file mode 100644 index 000000000..8af0ae587 --- /dev/null +++ b/monday_odoo_connector/views/monday_item_views.xml @@ -0,0 +1,40 @@ + + + + + monday.item.view.tree + monday.item + + + + + + + + + + monday.item.view.form + monday.item + +
+ + + + + + + + + + + + + + + +
+
+
+
diff --git a/monday_odoo_connector/views/res_partner_views.xml b/monday_odoo_connector/views/res_partner_views.xml new file mode 100644 index 000000000..644fc57f8 --- /dev/null +++ b/monday_odoo_connector/views/res_partner_views.xml @@ -0,0 +1,61 @@ + + + + + res.partner.view.form.inherit.monday.odoo.connector + + res.partner + form + + + + false + + + + + + res.partner.view.kanban.inherit.monday.odoo.connector + + res.partner + kanban + + + + false + + + + + + res.partner.view.tree.inherit.monday.odoo.connector + + res.partner + tree + + + + false + + + 0 + + + + + + Monday Customers + res.partner + ir.actions.act_window + kanban,tree,form + [('monday_reference', '=', True)] + + + + diff --git a/monday_odoo_connector/views/res_users_views.xml b/monday_odoo_connector/views/res_users_views.xml new file mode 100644 index 000000000..80c0aa1c0 --- /dev/null +++ b/monday_odoo_connector/views/res_users_views.xml @@ -0,0 +1,62 @@ + + + + + res.users.view.form.inherit.monday.odoo.connector + + res.users + form + + + + false + + + + + + res.users.view.kanban.inherit.monday.odoo.connector + + res.users + kanban + + + + false + + + + + + res.users.view.tree.inherit.monday.odoo.connector + + res.users + tree + + + + false + + + 0 + + + + + + Monday Users + res.users + ir.actions.act_window + kanban,tree,form + [('monday_reference', '!=', False)] + + + + diff --git a/monday_odoo_connector/wizard/__init__.py b/monday_odoo_connector/wizard/__init__.py new file mode 100644 index 000000000..6e016961e --- /dev/null +++ b/monday_odoo_connector/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import monday_connector diff --git a/monday_odoo_connector/wizard/monday_connector.py b/monday_odoo_connector/wizard/monday_connector.py new file mode 100644 index 000000000..01f97620f --- /dev/null +++ b/monday_odoo_connector/wizard/monday_connector.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Unnimaya C O (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +import requests +from odoo import fields, models +from odoo.exceptions import ValidationError + + +class MondayConnector(models.TransientModel): + _name = 'monday.connector' + _description = 'Monday Connector' + _rec_name = 'credential_id' + + credential_id = fields.Many2one('monday.credential', required="True", + string="Monday Credentials", + help="Select the credential for connecting" + " with Monday.com") + import_user = fields.Boolean(string="Import User", + help="Check if you want to import user") + import_board = fields.Boolean(string="Import Board", + help="Check if you want to import board") + import_group = fields.Boolean(string="Import Group", + help="If you want to import the board, " + "groups will also imported", + readonly=True, default=True) + import_item = fields.Boolean(string="Import Item", + help="If you want to import the board, " + "items will also imported", + readonly=True, default=True) + import_contact = fields.Boolean(string="Import Customer", + help="Check if you want to import contact") + + def action_execute(self): + """Function for executing Import and Export between Odoo and + Monday.com""" + if self.import_board: + self.get_boards("https://api.monday.com/v2", + {"Authorization": self.credential_id.token}) + if self.import_user: + self.get_users("https://api.monday.com/v2", + {"Authorization": self.credential_id.token}) + self.unlink() + + def get_boards(self, url, headers): + """Function for receiving Boards from Monday.com""" + vals = {} + response = requests.post(url=url, json={ + 'query': '{boards{ name id owner{name} groups{title id} ' \ + 'items { name column_values{title id type text } }} }'}, + headers=headers) + board = self.env['monday.board'].search([]).mapped('board_reference') + if 'error_code' in response.json().keys(): + raise ValidationError(response.json()['error_message']) + elif 'errors' in response.json().keys(): + raise ValidationError(response.json()['errors']) + else: + for rec in response.json()['data']['boards']: + if rec['id'] not in board: + # Create Board + board_obj = self.env['monday.board'].create([{ + 'name': rec['name'], + 'board_reference': rec['id'], + 'owner': rec['owner']['name'] + }]) + for item in rec['groups']: + if rec['id'] not in board: + board_obj.write({ + 'group_ids': [ + (0, 0, + {'name': item['title'], + 'group': item['id']}), + ] + }) + for item in rec['items']: + if rec['id'] not in board: + # Update Items + board_obj.write({ + 'item_ids': [ + (0, 0, + {'name': item['name'], + 'column_value_ids': [ + (0, 0, + {'title': value['title'], + 'item_id': value['id'], + 'text': value['text'], + }) for value in item['column_values'] + ] + }), ]}) + if rec['name'] == 'Contacts' and self.import_contact: + for value in item['column_values']: + vals[value['title']] = value['text'] + partner = self.env['res.partner'].search([]).mapped( + 'email') + if vals['Email'] not in partner: + # Create User + self.env['res.partner'].create({ + 'name': item['name'], + 'phone': vals['Phone'], + 'email': vals['Email'], + 'company_name': vals[ + 'Company'] if 'Company' in vals.keys() + else False, + 'monday_reference': True + }) + + def get_users(self, apiurl, headers): + """Function for receiving Users from Monday.com""" + response = requests.post(url=apiurl, + json={'query': '{users { id name email }}'}, + headers=headers) + if 'error_code' in response.json().keys(): + raise ValidationError(response.json()['error_message']) + elif 'errors' in response.json().keys(): + raise ValidationError(response.json()['errors']) + for rec in response.json()['data']['users']: + if not self.env['res.users'].search([('login', '=', rec['email'])]): + self.env['res.users'].create({ + 'name': rec['name'], + 'email': rec['email'], + 'login': rec['email'], + 'password': 'demo_password', + 'monday_reference': rec['id'] + }) diff --git a/monday_odoo_connector/wizard/monday_connector_views.xml b/monday_odoo_connector/wizard/monday_connector_views.xml new file mode 100644 index 000000000..3a2b0f659 --- /dev/null +++ b/monday_odoo_connector/wizard/monday_connector_views.xml @@ -0,0 +1,75 @@ + + + + + monday.connector.view.form + monday.connector + +
+ + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + Monday Connector + ir.actions.act_window + monday.connector + form + + new + + + + + + + +