diff --git a/asana_odoo_connector/README.rst b/asana_odoo_connector/README.rst new file mode 100644 index 000000000..f33072f8e --- /dev/null +++ b/asana_odoo_connector/README.rst @@ -0,0 +1,44 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Asana Odoo Connector +==================== +This module helps you to connect the projects and tasks from the odoo to asana and vice versa + +Configuration +============= +* Need to configure the Workspace id and the App Token in the Asana configuration + +Company +_______ +* `Cybrosys Techno Solutions `__ + +License +======= +Affero General Public License v3.0 (AGPL v3) +(http://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +_______ +Developer : (V16) Arjun S, Contact: odoo@cybrosys.com + +Contacts +________ +* Mail Contact : odoo@cybrosys.com +* Website : http://www.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/asana_odoo_connector/__init__.py b/asana_odoo_connector/__init__.py new file mode 100644 index 000000000..a89451085 --- /dev/null +++ b/asana_odoo_connector/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Arjun S(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 diff --git a/asana_odoo_connector/__manifest__.py b/asana_odoo_connector/__manifest__.py new file mode 100644 index 000000000..af5e3755f --- /dev/null +++ b/asana_odoo_connector/__manifest__.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Arjun S(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': 'Asana Odoo Connector', + 'version': '16.0.1.0.0', + 'category': 'Project', + 'summary': "With this module, you can easily connect the projects, tasks " + "and partners in the odoo to asana", + 'description': """With this module, user can connect the projects, tasks and + the customers in the odoo to asana, which means the projects, tasks and + customers in the odoo can be seen in the asana also vice versa""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['project'], + 'data': [ + 'views/project_project_views.xml', + 'views/project_task_views.xml', + 'views/project_task_type_views.xml', + 'views/res_config_settings_views.xml', + 'data/ir_actions_data.xml', + ], + 'external_dependencies': { + 'python': [ + 'asana', + ], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/asana_odoo_connector/data/ir_actions_data.xml b/asana_odoo_connector/data/ir_actions_data.xml new file mode 100644 index 000000000..b342c5460 --- /dev/null +++ b/asana_odoo_connector/data/ir_actions_data.xml @@ -0,0 +1,16 @@ + + + + + + Export to Asana + + + list + code + + action = records.action_export_to_asana() + + + + diff --git a/asana_odoo_connector/doc/RELEASE_NOTES.md b/asana_odoo_connector/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..6ef08f8d5 --- /dev/null +++ b/asana_odoo_connector/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 05.01.2024 +#### Version 16.0.1.0.0 +#### ADD + +- Initial Commit for Asana Odoo Connector diff --git a/asana_odoo_connector/models/__init__.py b/asana_odoo_connector/models/__init__.py new file mode 100644 index 000000000..7a133a851 --- /dev/null +++ b/asana_odoo_connector/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Arjun S(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 project_project +from . import project_task +from . import project_task_type +from . import res_config_settings diff --git a/asana_odoo_connector/models/project_project.py b/asana_odoo_connector/models/project_project.py new file mode 100644 index 000000000..fde7c26db --- /dev/null +++ b/asana_odoo_connector/models/project_project.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Arjun S(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 logging +from odoo import fields, models, _ +from odoo.exceptions import ValidationError + +_logger = logging.getLogger(__name__) +try: + import asana +except ImportError: + _logger.debug('Cannot `import asana`.') + + +class ProjectProject(models.Model): + """ + Inherits the model project.project to add extra fields and functionalities + for the working of the odoo to asana import and export. + """ + _inherit = 'project.project' + + asana_gid = fields.Char(string='Asana GID', + help='Asana ID for the project record', + readonly=True) + + def action_export_to_asana(self): + """ + Method action_export_to_asana used to export the data in the odoo to + asana + """ + configuration = asana.Configuration() + configuration.access_token = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'asana_odoo_connector.app_token') + api_client = asana.ApiClient(configuration) + project_instance = asana.ProjectsApi(api_client) + workspace_gid = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'asana_odoo_connector.workspace_gid') + try: + for project in self: + if not project.asana_gid: + project_body = asana.WorkspaceGidProjectsBody( + {"name": project.name}) + project_response = project_instance.create_project_for_workspace( + project_body, workspace_gid) + project.asana_gid = project_response.data.gid + project_gid = project_response.data.gid + task_instance = asana.TasksApi(api_client) + section_instance = asana.SectionsApi(api_client) + for section in project.type_ids: + section_body = asana.ProjectGidSectionsBody( + {'name': section.name}) + section_responses = section_instance.create_section_for_project( + project_gid, body=section_body + ) + section.asana_gid = section_responses.data.gid + for task in project.tasks: + task_body = asana.TasksBody( + {'name': task.name, 'workspace': workspace_gid, + "projects": project_gid, "memberships": [ + { + 'project': project_gid, + 'section': task.stage_id.asana_gid + } + ]}) + task_instance.create_task(task_body) + except Exception as exc: + raise ValidationError( + _('Please check the workspace ID or the app token')) from exc diff --git a/asana_odoo_connector/models/project_task.py b/asana_odoo_connector/models/project_task.py new file mode 100644 index 000000000..773bdf12b --- /dev/null +++ b/asana_odoo_connector/models/project_task.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Arjun S(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 ProjectTask(models.Model): + """ + Inherits the model project.task to add extra fields for the working of + importing and exporting of the data from odoo to asana + """ + _inherit = 'project.task' + + asana_gid = fields.Char(string='Asana GID', + help='Asana ID for the project record') diff --git a/asana_odoo_connector/models/project_task_type.py b/asana_odoo_connector/models/project_task_type.py new file mode 100644 index 000000000..8d0f9699f --- /dev/null +++ b/asana_odoo_connector/models/project_task_type.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Arjun S(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 ProjectTaskType(models.Model): + """ + Inherits the model project.task.type to add the extra fields for importing + and exporting of the data from odoo to asana + """ + _inherit = 'project.task.type' + + asana_gid = fields.Char(string='Asana GID', + help='Asana ID for the project record') diff --git a/asana_odoo_connector/models/res_config_settings.py b/asana_odoo_connector/models/res_config_settings.py new file mode 100644 index 000000000..764bac895 --- /dev/null +++ b/asana_odoo_connector/models/res_config_settings.py @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Arjun S(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 logging +import requests +from odoo import fields, models, _ +from odoo.exceptions import ValidationError + +_logger = logging.getLogger(__name__) +try: + import asana +except ImportError: + _logger.debug('Cannot `import asana`.') + + +def action_notify(success): + """ + Method action_notify used to notify whether the connection to the asana is + successful or not. + """ + notification = { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'title': _('Connection successful!') if success is True else _( + 'Connection not successful!'), + 'message': 'Connection to Asana is successful.' if success is True else 'Connection to Asana is not successful.', + 'sticky': True, + 'type': 'success' if success is True else 'danger' + } + } + return notification + + +def action_import_project_stages(project_gid, api_client): + """ + Method action_import_project_stages used to import the project stages from + asana to odoo + """ + api_instance = asana.SectionsApi(api_client) + section_response = api_instance.get_sections_for_project( + project_gid) + return section_response + + +class ResConfigSettings(models.TransientModel): + """ + Inherits the model Res Config Settings to add extra fields and + functionalities to this model + """ + _inherit = 'res.config.settings' + + workspace_gid = fields.Char(string='Workspace ID', + help='ID of the workspace in asana', + config_parameter='asana_odoo_connector.workspace_gid') + app_token = fields.Char(string='App Token', + help='Personal Access Token of the corresponding ' + 'asana account', + config_parameter='asana_odoo_connector.app_token') + + def action_test_asana(self): + """ + Method action_test_asana to test the connection from odoo to asana + """ + workspace_gid = self.workspace_gid + api_endpoint = f'https://app.asana.com/api/1.0/workspaces/{workspace_gid}' + access_token = self.app_token + headers = { + 'Authorization': f'Bearer {access_token}', + } + response = requests.get(api_endpoint, headers=headers, timeout=10) + if response.status_code == 200: + success = True + notification = action_notify(success) + self.env['ir.config_parameter'].sudo().set_param( + 'asana_odoo_connector.connection_successful', True) + return notification + success = False + notification = action_notify(success) + return notification + + def action_import_projects(self): + """ + Method action_import_projects to import the project from asana to odoo + """ + configuration = asana.Configuration() + configuration.access_token = self.app_token + api_client = asana.ApiClient(configuration) + project_instance = asana.ProjectsApi(api_client) + workspace = self.workspace_gid + try: + project_response = project_instance.get_projects( + workspace=workspace) + for project in project_response.data: + asana_gid = project.gid + existing_project = self.env['project.project'].search( + [('asana_gid', '=', asana_gid)]) + if not existing_project: + section_data = action_import_project_stages( + project_gid=asana_gid, + api_client=api_client) + type_ids = [ + (0, 0, {'name': section.name, 'asana_gid': section.gid}) + for section in section_data.data] + new_project = self.env['project.project'].create({ + 'name': project.name, + 'asana_gid': asana_gid, + 'type_ids': type_ids + }) + self.action_import_tasks( + api_client=api_client, section_data=section_data, + project_id=new_project.id) + except Exception as exc: + raise ValidationError( + _('Please check the workspace ID or the app token')) from exc + + def action_import_tasks(self, api_client, section_data, project_id): + """ + Method action_import_tasks to import tasks from the asana to odoo + """ + api_instance = asana.TasksApi(api_client) + for section in section_data.data: + task_response = api_instance.get_tasks_for_section(section.gid) + for task in task_response.data: + self.env['project.task'].create({ + 'name': task.name, + 'asana_gid': task.gid, + 'stage_id': self.env['project.task.type'].search( + [('asana_gid', '=', section.gid)]).id, + 'project_id': project_id + }) diff --git a/asana_odoo_connector/static/description/assets/icons/asana-pic.png b/asana_odoo_connector/static/description/assets/icons/asana-pic.png new file mode 100644 index 000000000..d0ac62b6b Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/asana-pic.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/check.png b/asana_odoo_connector/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/check.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/chevron.png b/asana_odoo_connector/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/chevron.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/cogs.png b/asana_odoo_connector/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/cogs.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/consultation.png b/asana_odoo_connector/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/consultation.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/ecom-black.png b/asana_odoo_connector/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/ecom-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/education-black.png b/asana_odoo_connector/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/education-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/hotel-black.png b/asana_odoo_connector/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/hotel-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/license.png b/asana_odoo_connector/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/license.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/lifebuoy.png b/asana_odoo_connector/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/lifebuoy.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/manufacturing-black.png b/asana_odoo_connector/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/manufacturing-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/pos-black.png b/asana_odoo_connector/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/pos-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/puzzle.png b/asana_odoo_connector/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/puzzle.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/restaurant-black.png b/asana_odoo_connector/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/restaurant-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/service-black.png b/asana_odoo_connector/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/service-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/trading-black.png b/asana_odoo_connector/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/trading-black.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/training.png b/asana_odoo_connector/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/training.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/update.png b/asana_odoo_connector/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/update.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/user.png b/asana_odoo_connector/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/user.png differ diff --git a/asana_odoo_connector/static/description/assets/icons/wrench.png b/asana_odoo_connector/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/asana_odoo_connector/static/description/assets/icons/wrench.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/categories.png b/asana_odoo_connector/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/categories.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/check-box.png b/asana_odoo_connector/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/check-box.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/compass.png b/asana_odoo_connector/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/compass.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/corporate.png b/asana_odoo_connector/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/corporate.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/customer-support.png b/asana_odoo_connector/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/customer-support.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/cybrosys-logo.png b/asana_odoo_connector/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/cybrosys-logo.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/features.png b/asana_odoo_connector/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/features.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/logo.png b/asana_odoo_connector/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/logo.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/pictures.png b/asana_odoo_connector/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/pictures.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/pie-chart.png b/asana_odoo_connector/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/pie-chart.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/right-arrow.png b/asana_odoo_connector/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/right-arrow.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/star.png b/asana_odoo_connector/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/star.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/support.png b/asana_odoo_connector/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/support.png differ diff --git a/asana_odoo_connector/static/description/assets/misc/whatsapp.png b/asana_odoo_connector/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/misc/whatsapp.png differ diff --git a/asana_odoo_connector/static/description/assets/modules/1.png b/asana_odoo_connector/static/description/assets/modules/1.png new file mode 100644 index 000000000..6c8c8adc3 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/modules/1.png differ diff --git a/asana_odoo_connector/static/description/assets/modules/2.png b/asana_odoo_connector/static/description/assets/modules/2.png new file mode 100644 index 000000000..5acf9a06a Binary files /dev/null and b/asana_odoo_connector/static/description/assets/modules/2.png differ diff --git a/asana_odoo_connector/static/description/assets/modules/3.png b/asana_odoo_connector/static/description/assets/modules/3.png new file mode 100644 index 000000000..bc5648b1a Binary files /dev/null and b/asana_odoo_connector/static/description/assets/modules/3.png differ diff --git a/asana_odoo_connector/static/description/assets/modules/4.png b/asana_odoo_connector/static/description/assets/modules/4.png new file mode 100644 index 000000000..f8aaeb32c Binary files /dev/null and b/asana_odoo_connector/static/description/assets/modules/4.png differ diff --git a/asana_odoo_connector/static/description/assets/modules/5.png b/asana_odoo_connector/static/description/assets/modules/5.png new file mode 100644 index 000000000..57eebc5b2 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/modules/5.png differ diff --git a/asana_odoo_connector/static/description/assets/modules/6.png b/asana_odoo_connector/static/description/assets/modules/6.png new file mode 100644 index 000000000..8ab7a1345 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/modules/6.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/1.png b/asana_odoo_connector/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..f0fafd7ff Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/1.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/10.png b/asana_odoo_connector/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..3022b77e0 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/10.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/11.png b/asana_odoo_connector/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..e2eae1bf8 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/11.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/12.png b/asana_odoo_connector/static/description/assets/screenshots/12.png new file mode 100644 index 000000000..20b0bade6 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/12.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/13.png b/asana_odoo_connector/static/description/assets/screenshots/13.png new file mode 100644 index 000000000..c83cd65a8 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/13.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/2.png b/asana_odoo_connector/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..23b26f02d Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/2.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/3.png b/asana_odoo_connector/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..3ea076d74 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/3.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/4.png b/asana_odoo_connector/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..de39cdbbb Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/4.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/5.png b/asana_odoo_connector/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..ed60b8353 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/5.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/6.png b/asana_odoo_connector/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..41afa28cd Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/6.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/7.png b/asana_odoo_connector/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..fa8d95ba6 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/7.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/8.png b/asana_odoo_connector/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..a44de055f Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/8.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/9.png b/asana_odoo_connector/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..72d109976 Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/9.png differ diff --git a/asana_odoo_connector/static/description/assets/screenshots/hero.gif b/asana_odoo_connector/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..8fe77400e Binary files /dev/null and b/asana_odoo_connector/static/description/assets/screenshots/hero.gif differ diff --git a/asana_odoo_connector/static/description/banner.jpg b/asana_odoo_connector/static/description/banner.jpg new file mode 100644 index 000000000..72b6613c7 Binary files /dev/null and b/asana_odoo_connector/static/description/banner.jpg differ diff --git a/asana_odoo_connector/static/description/icon.png b/asana_odoo_connector/static/description/icon.png new file mode 100644 index 000000000..d43f7bd9a Binary files /dev/null and b/asana_odoo_connector/static/description/icon.png differ diff --git a/asana_odoo_connector/static/description/index.html b/asana_odoo_connector/static/description/index.html new file mode 100644 index 000000000..bdfd98b06 --- /dev/null +++ b/asana_odoo_connector/static/description/index.html @@ -0,0 +1,657 @@ +
+ +
+ +
+
+ Odoo.sh +
+
+ Community +
+
+ Enterprise +
+
+
+ +
+
+
+ +

+ Asana Odoo Connector

+

+ This Module Will Helps To Connect The Projects And Tasks In + The Odoo To Asana Also Vice Versa

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

+ Explore This Module

+
+ + + + + +
+
+ +
+

+ Overview

+
+ +
+
This module helps to connect the Odoo and Asana + to show the Projects and Tasks in Odoo at Asana also vice versa. +
+
+ + + +
+
+ +
+

+ Features

+
+ +
+
+
+ + Easy to import Projects from Asana to Odoo +
+
+ + Easy to export Projects from Odoo to Asana +
+
+ + Easy to import Projects Stages from Asana to Odoo +
+
+ + Easy to export Projects Stages from Odoo to Asana +
+
+ + Easy to import Tasks from Asana to Odoo according to the Project Stages +
+
+ + Easy to export Tasks from Odoo to Asana according to the Project Stages +
+
+
+ + + +
+
+ +
+

+ Screenshots

+
+ +
+
+
+

+ Go to the Settings page. +

+ +
+
+

+ Go to the Asana settings section. You can get a new asana + account from here +

+ +
+
+

+ In the Asana settings section you can provide your Asana + Workspace ID and your Personal Access Token (PAT) as App Token. +

+ +
+
+

+ To get the App Token first you need to go the settings by + clicking on the Settings button. +

+ +
+
+

+ Then under the Apps section you need to click on Manage + Developer Apps option. +

+ +
+
+

+ From here you can see the existing tokens and also you can + create new app token by clicking on the button Create new token. +

+ +
+
+

+ To get the Workspace ID you need to go to this + link and then + as per the image you need to fill your App Token on + AUTHORIZATION section and then click on the button Try It!, as + you can see in the Response section you can get the Workspace + ID's of the workspaces from here. +

+ +
+
+

+ If you want to test the connection from Odoo to Asana you can + click the TEST button, if the connection is success then it will + be shown as in a popup as connection successful. +

+ +
+
+

+ From the IMPORT PROJECTS AND TASKS button you can import the + Projects and Tasks from Asana to Odoo if the Projects are not + already imported then the Projects will be get imported also the + corresponding Tasks will be imported according to the Project + Sections from Asana. +

+ +
+
+

+ Here you can see the imported project from Asana in Odoo. +

+ +
+
+

+ Here you can see the imported project from Asana in Odoo in + Asana. +

+ +
+
+

+ Here you can see the option Export to Asana, which will act as + the projects will be exported into the asana also the project + stages, also tasks according to each project stage will be + exported into asana. +

+ +
+
+

+ Here you can see the exported Projects from Odoo to Asana in + Asana. +

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

+ Related Products

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

+ Our Services

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

+ Our Industries

+
+ +
+
+
+
+ +
+ Trading
+

+ Easily Procure And Sell Your Products

+
+
+
+
+ +
+ POS
+

+ Easy Configuration and Convivial Experience

+
+
+
+
+ +
+ Education
+

+ A Platform for Educational Management

+
+
+
+
+ +
+ Manufacturing
+

+ Plan, Track and Schedule Your Operations

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

+ Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +
+ Service Management
+

+ Keep track of services and invoice

+
+
+
+
+ +
+ Restaurant
+

+ Run your bar or restaurant methodically

+
+
+
+
+ +
+ Hotel Management
+

+ An all-inclusive hotel management application

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

+ Support

+
+ +
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 27707

+
+
+
+
+
+
+
+ +
+
+
+ diff --git a/asana_odoo_connector/views/project_project_views.xml b/asana_odoo_connector/views/project_project_views.xml new file mode 100644 index 000000000..8b1e99b9a --- /dev/null +++ b/asana_odoo_connector/views/project_project_views.xml @@ -0,0 +1,22 @@ + + + + + + project.project.view.form.inherit.asana.odoo.connector + + project.project + + + + + + + + + + + + + + diff --git a/asana_odoo_connector/views/project_task_type_views.xml b/asana_odoo_connector/views/project_task_type_views.xml new file mode 100644 index 000000000..40bdfc979 --- /dev/null +++ b/asana_odoo_connector/views/project_task_type_views.xml @@ -0,0 +1,24 @@ + + + + + + project.task.type.view.form.inherit.asana.odoo.connector + + project.task.type + + + + + + + + + + + + + + + + diff --git a/asana_odoo_connector/views/project_task_views.xml b/asana_odoo_connector/views/project_task_views.xml new file mode 100644 index 000000000..7a404747d --- /dev/null +++ b/asana_odoo_connector/views/project_task_views.xml @@ -0,0 +1,22 @@ + + + + + + project.task.view.form.inherit.asana.odoo.connector + + project.task + + + + + + + + + + + + + + diff --git a/asana_odoo_connector/views/res_config_settings_views.xml b/asana_odoo_connector/views/res_config_settings_views.xml new file mode 100644 index 000000000..5a3ed85d6 --- /dev/null +++ b/asana_odoo_connector/views/res_config_settings_views.xml @@ -0,0 +1,56 @@ + + + + + + res.config.settings.view.form.inherit.asana.odoo.connector + + res.config.settings + + + +
+

Asana Settings

+
+
+
+
+ Workspace ID +
+ +
+
+
+ App Token +
+ +
+
+
+
+
+
+
+

Asana Import Settings

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