From cb8633bf735874935dd651cc965b2c16a2ee2ca6 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Fri, 21 Jul 2017 14:20:09 +0200 Subject: [PATCH 01/46] [ADD] two modules from 8.0 WIP branch --- github_connector_odoo/README.rst | 59 ++++ github_connector_odoo/__init__.py | 2 + github_connector_odoo/__openerp__.py | 35 +++ github_connector_odoo/data/function.xml | 11 + .../demo/github_organization.xml | 13 + github_connector_odoo/models/__init__.py | 12 + .../models/github_organization.py | 13 + .../models/github_repository.py | 33 ++ .../models/github_repository_branch.py | 195 ++++++++++++ github_connector_odoo/models/odoo_author.py | 43 +++ github_connector_odoo/models/odoo_lib_bin.py | 39 +++ .../models/odoo_lib_python.py | 39 +++ github_connector_odoo/models/odoo_license.py | 38 +++ github_connector_odoo/models/odoo_module.py | 151 +++++++++ .../models/odoo_module_version.py | 286 ++++++++++++++++++ .../security/ir.model.access.csv | 18 ++ .../static/description/icon.png | Bin 0 -> 70624 bytes .../description/reporting_module_by_serie.png | Bin 0 -> 8287 bytes github_connector_odoo/views/action.xml | 74 +++++ github_connector_odoo/views/menu.xml | 73 +++++ .../views/view_github_organization.xml | 19 ++ .../views/view_github_repository.xml | 19 ++ .../views/view_github_repository_branch.xml | 95 ++++++ .../views/view_odoo_author.xml | 55 ++++ .../views/view_odoo_lib_bin.xml | 50 +++ .../views/view_odoo_lib_python.xml | 50 +++ .../views/view_odoo_license.xml | 50 +++ .../views/view_odoo_module.xml | 74 +++++ .../views/view_odoo_module_version.xml | 98 ++++++ .../views/view_reporting.xml | 18 ++ 30 files changed, 1662 insertions(+) create mode 100644 github_connector_odoo/README.rst create mode 100644 github_connector_odoo/__init__.py create mode 100644 github_connector_odoo/__openerp__.py create mode 100644 github_connector_odoo/data/function.xml create mode 100644 github_connector_odoo/demo/github_organization.xml create mode 100644 github_connector_odoo/models/__init__.py create mode 100644 github_connector_odoo/models/github_organization.py create mode 100644 github_connector_odoo/models/github_repository.py create mode 100644 github_connector_odoo/models/github_repository_branch.py create mode 100644 github_connector_odoo/models/odoo_author.py create mode 100644 github_connector_odoo/models/odoo_lib_bin.py create mode 100644 github_connector_odoo/models/odoo_lib_python.py create mode 100644 github_connector_odoo/models/odoo_license.py create mode 100644 github_connector_odoo/models/odoo_module.py create mode 100644 github_connector_odoo/models/odoo_module_version.py create mode 100644 github_connector_odoo/security/ir.model.access.csv create mode 100644 github_connector_odoo/static/description/icon.png create mode 100644 github_connector_odoo/static/description/reporting_module_by_serie.png create mode 100644 github_connector_odoo/views/action.xml create mode 100644 github_connector_odoo/views/menu.xml create mode 100644 github_connector_odoo/views/view_github_organization.xml create mode 100644 github_connector_odoo/views/view_github_repository.xml create mode 100644 github_connector_odoo/views/view_github_repository_branch.xml create mode 100644 github_connector_odoo/views/view_odoo_author.xml create mode 100644 github_connector_odoo/views/view_odoo_lib_bin.xml create mode 100644 github_connector_odoo/views/view_odoo_lib_python.xml create mode 100644 github_connector_odoo/views/view_odoo_license.xml create mode 100644 github_connector_odoo/views/view_odoo_module.xml create mode 100644 github_connector_odoo/views/view_odoo_module_version.xml create mode 100644 github_connector_odoo/views/view_reporting.xml diff --git a/github_connector_odoo/README.rst b/github_connector_odoo/README.rst new file mode 100644 index 00000000..4acdf63a --- /dev/null +++ b/github_connector_odoo/README.rst @@ -0,0 +1,59 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 + +========================================================== +Analyze Odoo Modules Informations from github repositories +========================================================== + + +Installation +============ + +This module will not analyse correctly V10 branches, except if you get +a patch, available on that branch, to analyse correctly new manifest files. + +https://github.com/grap/OCB/tree/8.0_BACKPORT_V10_analysis + +Configuration +============= + +No extra configuration is needed. + +Usage +===== + +Reporting +========= + +This module provides several reportings. + +**Modules by Series** + +.. image:: /github_connector_odoo/static/description/reporting_module_by_serie.png + +Known issues / Roadmap +====================== + + +Credits +======= + +Contributors +------------ + +* Sylvain LE GAL (https://twitter.com/legalsylvain) + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/github_connector_odoo/__init__.py b/github_connector_odoo/__init__.py new file mode 100644 index 00000000..402ac47e --- /dev/null +++ b/github_connector_odoo/__init__.py @@ -0,0 +1,2 @@ +# -#- coding: utf-8 -#- +from . import models diff --git a/github_connector_odoo/__openerp__.py b/github_connector_odoo/__openerp__.py new file mode 100644 index 00000000..b0757026 --- /dev/null +++ b/github_connector_odoo/__openerp__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + 'name': 'Github Connector - Odoo', + 'summary': 'Analyze Odoo Modules Informations from github repositories', + 'version': '8.0.1.0.0', + 'category': 'Connector', + 'license': 'AGPL-3', + 'author': 'Odoo Community Association (OCA), Sylvain LE GAL, GRAP', + 'depends': [ + 'github_connector', + ], + 'data': [ + 'security/ir.model.access.csv', + 'data/function.xml', + 'views/view_reporting.xml', + 'views/action.xml', + 'views/menu.xml', + 'views/view_odoo_license.xml', + 'views/view_odoo_author.xml', + 'views/view_odoo_lib_bin.xml', + 'views/view_odoo_lib_python.xml', + 'views/view_odoo_module.xml', + 'views/view_odoo_module_version.xml', + 'views/view_github_organization.xml', + 'views/view_github_repository.xml', + 'views/view_github_repository_branch.xml', + ], + 'demo': [ + 'demo/github_organization.xml', + ], + 'installable': True, +} diff --git a/github_connector_odoo/data/function.xml b/github_connector_odoo/data/function.xml new file mode 100644 index 00000000..1aac0f1d --- /dev/null +++ b/github_connector_odoo/data/function.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/github_connector_odoo/demo/github_organization.xml b/github_connector_odoo/demo/github_organization.xml new file mode 100644 index 00000000..06ad5b6f --- /dev/null +++ b/github_connector_odoo/demo/github_organization.xml @@ -0,0 +1,13 @@ + + + + + + https://raw.githubusercontent.com/OCA/maintainer-tools/master/tools/repos_with_ids.txt + + + diff --git a/github_connector_odoo/models/__init__.py b/github_connector_odoo/models/__init__.py new file mode 100644 index 00000000..e41a57f1 --- /dev/null +++ b/github_connector_odoo/models/__init__.py @@ -0,0 +1,12 @@ +# -#- coding: utf-8 -#- +from . import odoo_author +from . import odoo_license +from . import odoo_lib_bin +from . import odoo_lib_python + +from . import odoo_module +from . import odoo_module_version + +from . import github_organization +from . import github_repository +from . import github_repository_branch diff --git a/github_connector_odoo/models/github_organization.py b/github_connector_odoo/models/github_organization.py new file mode 100644 index 00000000..46c6d99c --- /dev/null +++ b/github_connector_odoo/models/github_organization.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +from openerp import models, fields + + +class GithubOrganization(models.Model): + _inherit = 'github.organization' + + ci_url = fields.Char(string='URL For CI Ids') diff --git a/github_connector_odoo/models/github_repository.py b/github_connector_odoo/models/github_repository.py new file mode 100644 index 00000000..cdd15897 --- /dev/null +++ b/github_connector_odoo/models/github_repository.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import urllib2 +from collections import defaultdict + +from openerp import models, fields, api + + +class GithubRepository(models.Model): + _inherit = 'github.repository' + + ci_id = fields.Integer( + string='ID For CI', readonly=True, compute='_compute_ci_id', + store=True) + + # Compute Section + @api.multi + @api.depends('organization_id.ci_url') + def _compute_ci_id(self): + url_done = defaultdict(list) + for repository in self: + url_done[repository.organization_id].append(repository) + + for organization_id, repositories in url_done.iteritems(): + ci_list = urllib2.urlopen( + urllib2.Request(organization_id.ci_url)).read().split('\n') + for item in ci_list: + for repository in repositories: + if item.endswith(repository.complete_name): + repository.ci_id = item.split('|')[0] diff --git a/github_connector_odoo/models/github_repository_branch.py b/github_connector_odoo/models/github_repository_branch.py new file mode 100644 index 00000000..24acdc95 --- /dev/null +++ b/github_connector_odoo/models/github_repository_branch.py @@ -0,0 +1,195 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import logging +import os + +from os.path import join as opj + +from openerp import models, fields, api + +from openerp.modules import load_information_from_description_file + +# Hard define this value to make this module working with or without +# the patch (that backports V10 manifests analysis code. +MANIFEST_NAMES = ('__manifest__.py', '__openerp__.py') + +_logger = logging.getLogger(__name__) + + +class GithubRepositoryBranch(models.Model): + _inherit = ['github.repository.branch'] + + module_paths = fields.Text( + string='Module Paths', help="Set here extra relative paths" + " you want to scan to find modules. If not set, root path will be" + " scanned. One repository per line. Exemple:\n" + "./addons/\n" + "./openerp/addons/") + + module_version_ids = fields.One2many( + comodel_name='odoo.module.version', + inverse_name='repository_branch_id', string='Module Versions') + + module_version_qty = fields.Integer( + string='Module Versions Quantity', + compute='_compute_module_version_qty') + + coverage_url = fields.Char( + string='Coverage Url', store=True, multi='complete_name', + compute='_compute_multi_from_complete_name') + + coverage_image_url = fields.Char( + string='Coverage Image Url', store=True, multi='complete_name', + compute='_compute_multi_from_complete_name') + + integration_service_url = fields.Char( + string='Integration Service Url', store=True, multi='complete_name', + compute='_compute_multi_from_complete_name') + + integration_service_image_url = fields.Char( + string='Integration Service Image Url', store=True, + multi='complete_name', + compute='_compute_multi_from_complete_name') + + runbot_url = fields.Char( + string='Runbot Url', multi='complete_name', + compute='_compute_multi_from_complete_name') + + runbot_image_url = fields.Char( + string='Runbot Image Url', + multi='complete_name', + compute='_compute_multi_from_complete_name') + + github_url = fields.Char( + string='Github Url', store=True, + multi='complete_name', + compute='_compute_multi_from_complete_name') + + # Compute Section + @api.multi + @api.depends('name', 'repository_id.complete_name', 'repository_id.ci_id') + def _compute_multi_from_complete_name(self): + for branch in self: + # Compute Coverage Service Url and Image Url + branch.coverage_url =\ + 'https://coveralls.io/github/' +\ + branch.repository_id.complete_name +\ + '?branch=' + branch.name + branch.coverage_image_url =\ + 'https://coveralls.io/repos/github/' +\ + branch.repository_id.complete_name +\ + '/badge.svg?branch=' + branch.name + + # Compute Integration Service Url and Image Url + branch.integration_service_url =\ + 'https://travis-ci.org/' +\ + branch.repository_id.complete_name + branch.integration_service_image_url =\ + 'https://travis-ci.org/' +\ + branch.repository_id.complete_name +\ + '.svg?branch=' + branch.name + + # Compute Github Url + branch.github_url =\ + 'https://github.com/' +\ + branch.repository_id.complete_name +\ + '/tree/' + branch.name + + # Compute Runbot Service Url and Image Url + branch.runbot_url =\ + 'https://runbot.odoo-community.org/runbot/' +\ + str(branch.repository_id.ci_id) + '/' +\ + branch.name + branch.runbot_image_url =\ + 'https://runbot.odoo-community.org/runbot/badge/flat/' +\ + str(branch.repository_id.ci_id) + '/' +\ + branch.name + '.svg' + + @api.multi + @api.depends( + 'module_version_ids', 'module_version_ids.repository_branch_id') + def _compute_module_version_qty(self): + for repository_branch in self: + repository_branch.module_version_qty =\ + len(repository_branch.module_version_ids) + + # Custom Section + @api.model + def _set_state_to_analyse(self): + """ function called when the module is installed to set all branches + to analyze again. + """ + branches = self.search([('state', '=', 'analyzed')]) + branches.write({'state': 'to_analyze'}) + + @api.model + def analyze_code_one(self, branch): + # Change log level to avoid warning, when parsing odoo manifests + logger1 = logging.getLogger('openerp.modules.module') + logger2 = logging.getLogger('openerp.addons.base.module.module') + currentLevel1 = logger1.level + currentLevel2 = logger2.level + logger1.setLevel(logging.ERROR) + logger2.setLevel(logging.ERROR) + + try: + module_version_obj = self.env['odoo.module.version'] + # Delete all associated module versions + module_versions = module_version_obj.search([ + ('repository_branch_id', '=', branch.id)]) + module_versions.with_context( + dont_change_repository_branch_state=True).unlink() + + # Compute path(s) to analyze + if branch.module_paths: + paths = [] + for path in branch.module_paths.split('\n'): + if path.strip(): + paths.append(branch.local_path + '/' + path) + else: + paths = [branch.local_path] + + # Scan each path, if exists + for path in paths: + if not os.path.exists(path): + _logger.warning( + "Unable to analyse %s. Source code not found." % ( + path)) + else: + # Analyze folders and create module versions + _logger.info("Analyzing repository %s ..." % (path)) + for module_name in self.listdir(path): + module_info = load_information_from_description_file( + module_name, path + '/' + module_name) + + # Create module version, if the module is installable + # in the serie + if module_info.get('installable', False): + module_info['technical_name'] = module_name + module_version_obj.create_or_update_from_manifest( + module_info, branch) + finally: + # Reset Original level for module logger + logger1.setLevel(currentLevel1) + logger2.setLevel(currentLevel2) + return super(GithubRepositoryBranch, self).analyze_code_one(branch) + + # Copy Paste from Odoo Core + # This function is for the time being in another function. + # (Ref: openerp/modules/module.py) + def listdir(self, dir): + def clean(name): + name = os.path.basename(name) + if name[-4:] == '.zip': + name = name[:-4] + return name + + def is_really_module(name): + for mname in MANIFEST_NAMES: + if os.path.isfile(opj(dir, name, mname)): + return True + + return map(clean, filter(is_really_module, os.listdir(dir))) diff --git a/github_connector_odoo/models/odoo_author.py b/github_connector_odoo/models/odoo_author.py new file mode 100644 index 00000000..0ae20ea3 --- /dev/null +++ b/github_connector_odoo/models/odoo_author.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields, api + + +class OdooAuthor(models.Model): + _name = 'odoo.author' + _order = 'module_qty desc, name' + + # Column Section + name = fields.Char( + string='Name', store=True, readonly=True, index=True) + + module_version_ids = fields.Many2many( + string='Module Versions', comodel_name='odoo.module.version', + relation='github_module_version_author_rel', + column1='author_id', column2='module_version_id', readonly=True) + + module_ids = fields.Many2many( + string='Modules', comodel_name='odoo.module', + relation='github_module_author_rel', + column1='author_id', column2='module_id', readonly=True) + + module_qty = fields.Integer( + string='Modules Quantity', + compute='_compute_module_qty', store=True) + + @api.multi + @api.depends('module_ids.author_ids') + def _compute_module_qty(self): + for author in self: + author.module_qty = len(author.module_ids) + + # Custom Section + @api.model + def create_if_not_exist(self, name): + author = self.search([('name', '=', name)]) + if not author: + author = self.create({'name': name}) + return author diff --git a/github_connector_odoo/models/odoo_lib_bin.py b/github_connector_odoo/models/odoo_lib_bin.py new file mode 100644 index 00000000..1f499bc9 --- /dev/null +++ b/github_connector_odoo/models/odoo_lib_bin.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields, api + + +class OdooLibBin(models.Model): + _name = 'odoo.lib.bin' + _order = 'module_version_qty desc' + + # Column Section + name = fields.Char( + string='Name', index=True, required=True, readonly=True) + + module_version_ids = fields.Many2many( + comodel_name='odoo.module.version', string='Module Versions', + relation='module_version_lib_bin_rel', column1='lib_bin_id', + column2='module_version_id', readonly=True) + + module_version_qty = fields.Integer( + string='Module Versions Quantity', + compute='_compute_module_version_qty', store=True) + + # Compute Section + @api.multi + @api.depends('module_version_ids', 'module_version_ids.lib_bin_ids') + def _compute_module_version_qty(self): + for lib_bin in self: + lib_bin.module_version_qty = len(lib_bin.module_version_ids) + + # Custom Section + @api.model + def create_if_not_exist(self, name): + lib_bin = self.search([('name', '=', name)]) + if not lib_bin: + lib_bin = self.create({'name': name}) + return lib_bin diff --git a/github_connector_odoo/models/odoo_lib_python.py b/github_connector_odoo/models/odoo_lib_python.py new file mode 100644 index 00000000..7b4f7dfb --- /dev/null +++ b/github_connector_odoo/models/odoo_lib_python.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields, api + + +class OdooLibPython(models.Model): + _name = 'odoo.lib.python' + _order = 'module_version_qty desc' + + # Column Section + name = fields.Char( + string='Name', index=True, required=True, readonly=True) + + module_version_ids = fields.Many2many( + comodel_name='odoo.module.version', string='Module Versions', + relation='module_version_lib_python_rel', column1='lib_python_id', + column2='module_version_id', readonly=True) + + module_version_qty = fields.Integer( + string='Module Versions Quantity', + compute='_compute_module_version_qty', store=True) + + # Compute Section + @api.multi + @api.depends('module_version_ids', 'module_version_ids.lib_python_ids') + def _compute_module_version_qty(self): + for lib_python in self: + lib_python.module_version_qty = len(lib_python.module_version_ids) + + # Custom Section + @api.model + def create_if_not_exist(self, name): + lib_python = self.search([('name', '=', name)]) + if not lib_python: + lib_python = self.create({'name': name}) + return lib_python diff --git a/github_connector_odoo/models/odoo_license.py b/github_connector_odoo/models/odoo_license.py new file mode 100644 index 00000000..5c7432bb --- /dev/null +++ b/github_connector_odoo/models/odoo_license.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields, api + + +class OdooLicense(models.Model): + _name = 'odoo.license' + _order = 'module_version_qty desc, name' + + # Column Section + name = fields.Char( + string='Name', index=True, required=True, readonly=True) + + module_version_ids = fields.One2many( + comodel_name='odoo.module.version', inverse_name='license_id', + string='Module Versions') + + module_version_qty = fields.Integer( + string='Module Versions Quantity', + compute='_compute_module_version_qty', store=True) + + # Compute Section + @api.multi + @api.depends('module_version_ids.license_id') + def _compute_module_version_qty(self): + for module in self: + module.module_version_qty = len(module.module_version_ids) + + # Custom Section + @api.model + def create_if_not_exist(self, name): + module = self.search([('name', '=', name)]) + if not module: + module = self.create({'name': name}) + return module diff --git a/github_connector_odoo/models/odoo_module.py b/github_connector_odoo/models/odoo_module.py new file mode 100644 index 00000000..fdad22a5 --- /dev/null +++ b/github_connector_odoo/models/odoo_module.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields, api, _ +from openerp.tools import html_sanitize + + +class OdooModule(models.Model): + _name = 'odoo.module' + _order = 'name, technical_name' + + # Column Section + name = fields.Char( + string='Name', store=True, readonly=True, compute='_compute_name') + + technical_name = fields.Char( + string='Technical Name', index=True, required=True, readonly=True) + + module_version_ids = fields.One2many( + comodel_name='odoo.module.version', inverse_name='module_id', + string='Versions', readonly=True) + + module_version_qty = fields.Integer( + string='Module Version Quantity', + compute='_compute_module_version_qty', store=True) + + author_ids = fields.Many2many( + string='Authors', comodel_name='odoo.author', + compute='_compute_author', relation='github_module_author_rel', + column1='module_id', column2='author_id', multi='author') + # , store=True : Commented to optimize analysis. + + author_list = fields.Char( + string='Authors List', compute='_compute_author', multi='author') + # , store=True : Commented to optimize analysis. + + organization_serie_ids = fields.Many2many( + string='Series', comodel_name='github.organization.serie', + compute='_compute_organization_serie', multi='organization_serie', + relation='github_module_organization_serie_rel', + column1='module_id', column2='organization_serie_id', store=True) + + organization_serie_list = fields.Char( + string='Series List', + compute='_compute_organization_serie', multi='organization_serie', + store=True) + + description_rst = fields.Char( + string='RST Description of the last Version', store=True, + readonly=True, compute='_compute_description', multi='description_rst') + + description_rst_html = fields.Html( + string='HTML of the RST Description of the last Version', store=True, + readonly=True, compute='_compute_description', multi='description_rst') + + dependence_module_version_ids = fields.Many2many( + comodel_name='odoo.module.version', + string='Module Versions that depend on this module', + relation='module_version_dependency_rel', + column1='dependency_module_id', column2='module_version_id') + + dependence_module_version_qty = fields.Integer( + string='Quantity of Module Versions that depend on this module', + compute='_compute_dependence_module_version_qty') + # , store=True : Commented to optimize analysis. + + # Compute Section + @api.multi + @api.depends('technical_name', 'module_version_ids.name') + def _compute_name(self): + module_version_obj = self.env['odoo.module.version'] + for module in self: + version_ids = module.module_version_ids.ids + last_version = module_version_obj.search( + [('id', 'in', version_ids)], + order='organization_serie_id desc', limit=1) + if last_version: + module.name = last_version.name + else: + module.name = module.technical_name + + @api.multi + @api.depends( + 'module_version_ids', 'module_version_ids.description_rst_html') + def _compute_description(self): + module_version_obj = self.env['odoo.module.version'] + for module in self: + version_ids = module.module_version_ids.ids + last_version = module_version_obj.search( + [('id', 'in', version_ids)], + order='organization_serie_id desc', limit=1) + if last_version: + module.description_rst = last_version.description_rst + module.description_rst_html = last_version.description_rst_html + else: + module.description_rst = '' + module.description_rst_html = html_sanitize( + "

" + + _("No Version Found") + + "

") + + @api.multi + @api.depends('dependence_module_version_ids.dependency_module_ids') + def _compute_dependence_module_version_qty(self): + for module in self: + module.dependence_module_version_qty =\ + len(module.dependence_module_version_ids) + + @api.multi + @api.depends('module_version_ids') + def _compute_module_version_qty(self): + for module in self: + module.module_version_qty = len(module.module_version_ids) + + @api.multi + @api.depends('module_version_ids.author_ids') + def _compute_author(self): + for module in self: + authors = [] + for version in module.module_version_ids: + authors += version.author_ids + authors = set(authors) + module.author_ids = [x.id for x in authors] + module.author_list = ', '.join(sorted([x.name for x in authors])) + + @api.multi + @api.depends('module_version_ids.organization_serie_id') + def _compute_organization_serie(self): + for module in self: + organization_series = [] + for version in module.module_version_ids: + organization_series += version.organization_serie_id + organization_series = set(organization_series) + module.organization_serie_ids =\ + [x.id for x in organization_series] + module.organization_serie_list =\ + ', '.join(sorted([x.name for x in organization_series])) + + # Custom Section + @api.model + def create_if_not_exist(self, technical_name): + module = self.search([('technical_name', '=', technical_name)]) + if not module: + module = self.create({'technical_name': technical_name}) + return module + + @api.one + def name_get(self): + return [self.id, self.technical_name] diff --git a/github_connector_odoo/models/odoo_module_version.py b/github_connector_odoo/models/odoo_module_version.py new file mode 100644 index 00000000..a40b3759 --- /dev/null +++ b/github_connector_odoo/models/odoo_module_version.py @@ -0,0 +1,286 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2016-Today: Odoo Community Association (OCA) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import logging + +from docutils.core import publish_string + +from openerp import models, fields, api, _ +from openerp.tools import html_sanitize +from openerp.addons.base.module.module import MyWriter +from openerp.tools.safe_eval import safe_eval + +_logger = logging.getLogger(__name__) + + +class OdooModuleVersion(models.Model): + _name = 'odoo.module.version' + _order = 'name, technical_name' + + # Constant Section + _SETTING_OVERRIDES = { + 'embed_stylesheet': False, + 'doctitle_xform': False, + 'output_encoding': 'unicode', + 'xml_declaration': False, + } + + _ODOO_TYPE_SELECTION = [ + ('verticalization', 'Verticalization'), + ('localization', 'Localization'), + ('connector', 'Connector'), + ('other', 'Other'), + ] + + # Column Section + name = fields.Char(string='Name', readonly=True, index=True) + + technical_name = fields.Char( + string='Technical Name', readonly=True, index=True, + help="Technical Name of the Module. (Folder name)") + + complete_name = fields.Char( + string='Complete Name', compute='_compute_complete_name', store=True) + + auto_install = fields.Boolean(string='Auto Install', readonly=True) + + icon = fields.Char(string='Icon Path (Manifest)', readonly=True) + + module_id = fields.Many2one( + comodel_name='odoo.module', string='Module', required=True, + ondelete='cascade', index=True, auto_join=True, readonly=True) + + repository_branch_id = fields.Many2one( + comodel_name='github.repository.branch', string='Repository Branch', + readonly=True, required=True, ondelete='cascade') + + repository_id = fields.Many2one( + comodel_name='github.repository', string='Repository', readonly=True, + related='repository_branch_id.repository_id', store=True) + + organization_serie_id = fields.Many2one( + comodel_name='github.organization.serie', string='Organization Serie', + compute='_compute_organization_serie_id', readonly=True, store=True) + + license = fields.Char(string='License (Manifest)', readonly=True) + + license_id = fields.Many2one( + comodel_name='odoo.license', string='License', readonly=True, + compute='_compute_license_id', store=True) + + summary = fields.Char(string='Summary (Manifest)', readonly=True) + + depends = fields.Char(string='Dependencies (Manifest)', readonly=True) + + dependency_module_ids = fields.Many2many( + comodel_name='odoo.module', string='Dependencies', + relation='module_version_dependency_rel', column1='module_version_id', + column2='dependency_module_id', + compute='_compute_dependency_module_ids') + # , store=True : Commented to optimize analysis. + + website = fields.Char(string='Website (Manifest)', readonly=True) + + external_dependencies = fields.Char( + string='External Dependencies (Manifest)', readonly=True) + + description_rst = fields.Char( + string='RST Description (Manifest)', readonly=True) + + description_rst_html = fields.Html( + string='HTML the RST Description', readonly=True, + compute='_compute_description_rst_html', store=True) + + version = fields.Char(string='Version (Manifest)', readonly=True) + + author = fields.Char(string='Author (Manifest)', readonly=True) + + author_ids = fields.Many2many( + string='Authors', comodel_name='odoo.author', + relation='github_module_version_author_rel', + column1='module_version_id', column2='author_id', + compute='_compute_author_ids') + # , store=True : Commented to optimize analysis. + + lib_python_ids = fields.Many2many( + comodel_name='odoo.lib.python', string='Python Lib Dependencies', + relation='module_version_lib_python_rel', column1='module_version_id', + column2='lib_python_id', multi='lib', compute='_compute_lib', + store=True) + + lib_bin_ids = fields.Many2many( + comodel_name='odoo.lib.bin', string='Bin Lib Dependencies', + relation='module_version_lib_bin_rel', column1='module_version_id', + column2='lib_bin_id', multi='lib', compute='_compute_lib', store=True) + + odoo_type = fields.Selection( + string='Odoo Type', selection=_ODOO_TYPE_SELECTION, store=True, + compute='_compute_odoo_type') + + # Overload Section + @api.multi + def unlink(self): + # Analyzed repository branches should be reanalyzed + if not self._context.get('dont_change_repository_branch_state', False): + repository_branch_obj = self.env['github.repository.branch'] + repository_branch_obj.search([ + ('id', 'in', self.mapped('repository_branch_id').ids), + ('state', '=', 'analyzed')]).write({'state': 'to_analyze'}) + return super(OdooModuleVersion, self).unlink() + + # Compute Section + @api.multi + @api.depends('repository_branch_id.repository_id.name') + def _compute_odoo_type(self): + for version in self: + repository_name = version.repository_branch_id.repository_id.name + if repository_name.startswith('l10n-'): + version.odoo_type = 'localization' + elif repository_name.startswith('connector-'): + version.odoo_type = 'connector' + elif repository_name.startswith('vertical-'): + version.odoo_type = 'verticalization' + else: + version.odoo_type = 'other' + + @api.multi + @api.depends('technical_name', 'repository_branch_id.complete_name') + def _compute_complete_name(self): + for version in self: + version.complete_name =\ + version.repository_branch_id.complete_name +\ + '/' + version.technical_name + + @api.multi + @api.depends('description_rst') + def _compute_description_rst_html(self): + for version in self: + if version.description_rst: + try: + output = publish_string( + source=version.description_rst, + settings_overrides=self._SETTING_OVERRIDES, + writer=MyWriter()) + except: + output =\ + "

" +\ + _("Incorrect RST Description") +\ + "

" + else: + output = html_sanitize( + "

" + + _("No Version Found") + + "

") + version.description_rst_html = html_sanitize(output) + + @api.multi + @api.depends('depends') + def _compute_dependency_module_ids(self): + module_obj = self.env['odoo.module'] + modules = [] + for version in self: + for module_name in version.depends.split(','): + if module_name: + # Weird case, some times 'depends' field is empty + modules.append(module_obj.create_if_not_exist(module_name)) + version.dependency_module_ids = [x.id for x in modules] + + @api.multi + @api.depends('external_dependencies') + def _compute_lib(self): + lib_python_obj = self.env['odoo.lib.python'] + lib_bin_obj = self.env['odoo.lib.bin'] + for version in self: + python_libs = [] + bin_libs = [] + my_eval = safe_eval(version.external_dependencies) + for python_name in my_eval.get('python', []): + python_libs.append( + lib_python_obj.create_if_not_exist(python_name)) + for bin_name in my_eval.get('bin', []): + bin_libs.append( + lib_bin_obj.create_if_not_exist(bin_name)) + + version.lib_python_ids = [x.id for x in python_libs] + version.lib_bin_ids = [x.id for x in bin_libs] + + @api.multi + @api.depends('license') + def _compute_license_id(self): + license_obj = self.env['odoo.license'] + for version in self: + if version.license: + version.license_id =\ + license_obj.create_if_not_exist(version.license).id + + @api.multi + @api.depends('author') + def _compute_author_ids(self): + odoo_author_obj = self.env['odoo.author'] + for version in self: + author_ids = [] + for item in version.author.split(','): + if item: + author_ids.append( + odoo_author_obj.create_if_not_exist(item.strip()).id) + version.author_ids = author_ids + + @api.multi + @api.depends( + 'repository_branch_id', 'repository_branch_id.organization_id', + 'repository_branch_id.organization_id.organization_serie_ids', + 'repository_branch_id.organization_id.organization_serie_ids.name') + def _compute_organization_serie_id(self): + organization_serie_obj = self.env['github.organization.serie'] + for module_version in self: + res = organization_serie_obj.search([ + ('organization_id', '=', + module_version.repository_branch_id.organization_id.id), + ('name', '=', module_version.repository_branch_id.name)]) + module_version.organization_serie_id = res and res[0].id or False + + # Custom Section + @api.model + def manifest_2_odoo(self, info, repository_branch, module): + author_list =\ + (type(info['author']) == list) and info['author'] or\ + (type(info['author']) == tuple) and [x for x in info['author']] or\ + info['author'].split(',') + res = { + 'name': info['name'], + 'technical_name': info['technical_name'], + 'summary': info['summary'], + 'website': info['website'], + 'version': info['version'], + 'license': info['license'], + 'auto_install': info['auto_install'], + 'icon': info['icon'], + 'description_rst': info['description'], + 'external_dependencies': info.get('external_dependencies', {}), + 'author': ','.join( + [x.strip() for x in sorted(author_list) if x.strip()]), + 'depends': ','.join([x for x in sorted(info['depends']) if x]), + 'repository_branch_id': repository_branch.id, + 'module_id': module.id, + } + return res + + @api.model + def create_or_update_from_manifest(self, info, repository_branch): + module_obj = self.env['odoo.module'] + module_version = self.search([ + ('technical_name', '=', info['technical_name']), + ('repository_branch_id', '=', repository_branch.id)]) + + if not module_version: + # Create new module version + module = module_obj.create_if_not_exist(info['technical_name']) + module_version.create( + self.manifest_2_odoo(info, repository_branch, module)) + else: + # Update module Version + value = self.manifest_2_odoo( + info, repository_branch, module_version.module_id) + module_version.write(value) diff --git a/github_connector_odoo/security/ir.model.access.csv b/github_connector_odoo/security/ir.model.access.csv new file mode 100644 index 00000000..15c15383 --- /dev/null +++ b/github_connector_odoo/security/ir.model.access.csv @@ -0,0 +1,18 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_odoo_author_reader,odoo_author reader,model_odoo_author,,1,0,0,0 +access_odoo_author_manager,odoo_author manager,model_odoo_author,github_connector.group_github_connector_manager,1,1,1,1 +,,,,,,, +access_odoo_lib_bin_reader,odoo_lib_bin reader,model_odoo_lib_bin,,1,0,0,0 +access_odoo_lib_bin_manager,odoo_lib_bin manager,model_odoo_lib_bin,github_connector.group_github_connector_manager,1,1,1,1 +,,,,,,, +access_odoo_lib_python_reader,odoo_lib_python reader,model_odoo_lib_python,,1,0,0,0 +access_odoo_lib_python_manager,odoo_lib_python manager,model_odoo_lib_python,github_connector.group_github_connector_manager,1,1,1,1 +,,,,,,, +access_odoo_license_reader,odoo_license reader,model_odoo_license,,1,0,0,0 +access_odoo_license_manager,odoo_license manager,model_odoo_license,github_connector.group_github_connector_manager,1,1,1,1 +,,,,,,, +access_odoo_module_reader,odoo_module reader,model_odoo_module,,1,0,0,0 +access_odoo_module_manager,odoo_module manager,model_odoo_module,github_connector.group_github_connector_manager,1,1,1,1 +,,,,,,, +access_odoo_module_version_reader,odoo_module_version reader,model_odoo_module_version,,1,0,0,0 +access_odoo_module_version_manager,odoo_module_version manager,model_odoo_module_version,github_connector.group_github_connector_manager,1,1,1,1 diff --git a/github_connector_odoo/static/description/icon.png b/github_connector_odoo/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4599a94187011c9fabf1978eda0be1d42618808b GIT binary patch literal 70624 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 ADF6Tf literal 0 HcmV?d00001 diff --git a/github_connector_odoo/views/action.xml b/github_connector_odoo/views/action.xml new file mode 100644 index 00000000..bad13da4 --- /dev/null +++ b/github_connector_odoo/views/action.xml @@ -0,0 +1,74 @@ + + + + + + + Odoo Modules + ir.actions.act_window + odoo.module + form + tree,form + {'search_default_filter_with_version': True} + + + + Odoo Module Versions + ir.actions.act_window + odoo.module.version + form + tree,form + + + + Licenses + ir.actions.act_window + odoo.license + form + tree,form + + + + Authors + ir.actions.act_window + odoo.author + form + tree,form + + + + Bin Libs + ir.actions.act_window + odoo.lib.bin + form + tree,form + + + + Python Libs + ir.actions.act_window + odoo.lib.python + form + tree,form + + + + + tree,kanban,form + + + + + Modules by Series + ir.actions.act_window + odoo.module.version + form + graph + + + + diff --git a/github_connector_odoo/views/menu.xml b/github_connector_odoo/views/menu.xml new file mode 100644 index 00000000..a959cc93 --- /dev/null +++ b/github_connector_odoo/views/menu.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/github_connector_odoo/views/view_github_organization.xml b/github_connector_odoo/views/view_github_organization.xml new file mode 100644 index 00000000..7d2a08c4 --- /dev/null +++ b/github_connector_odoo/views/view_github_organization.xml @@ -0,0 +1,19 @@ + + + + + + github.organization + + + + + + + + + diff --git a/github_connector_odoo/views/view_github_repository.xml b/github_connector_odoo/views/view_github_repository.xml new file mode 100644 index 00000000..ff38ca6b --- /dev/null +++ b/github_connector_odoo/views/view_github_repository.xml @@ -0,0 +1,19 @@ + + + + + + github.repository + + + + + + + + + diff --git a/github_connector_odoo/views/view_github_repository_branch.xml b/github_connector_odoo/views/view_github_repository_branch.xml new file mode 100644 index 00000000..e840310e --- /dev/null +++ b/github_connector_odoo/views/view_github_repository_branch.xml @@ -0,0 +1,95 @@ + + + + + + github.repository.branch + + + + + + + + + + github.repository.branch + + + + + + + + + + + + + + + + + + + + + + + + github.repository.branch + + + + + + + + + + + +
+
+

+
+ +
+
+ + + + + + + diff --git a/github_connector_odoo/views/view_odoo_author.xml b/github_connector_odoo/views/view_odoo_author.xml new file mode 100644 index 00000000..45a07af1 --- /dev/null +++ b/github_connector_odoo/views/view_odoo_author.xml @@ -0,0 +1,55 @@ + + + + + + odoo.author + + + + + + + + + odoo.author + + + + + + + + + + odoo.author + +
+ +
+

+
+
+ + + + + + + + + + + + + + + + + + + diff --git a/github_connector_odoo/views/view_odoo_lib_bin.xml b/github_connector_odoo/views/view_odoo_lib_bin.xml new file mode 100644 index 00000000..0f4cad60 --- /dev/null +++ b/github_connector_odoo/views/view_odoo_lib_bin.xml @@ -0,0 +1,50 @@ + + + + + + odoo.lib.bin + + + + + + + + + odoo.lib.bin + + + + + + + + + + odoo.lib.bin + +
+ +
+

+
+
+ + + + + + + + + + + + + + diff --git a/github_connector_odoo/views/view_odoo_lib_python.xml b/github_connector_odoo/views/view_odoo_lib_python.xml new file mode 100644 index 00000000..cc2aae7e --- /dev/null +++ b/github_connector_odoo/views/view_odoo_lib_python.xml @@ -0,0 +1,50 @@ + + + + + + odoo.lib.python + + + + + + + + + odoo.lib.python + + + + + + + + + + odoo.lib.python + +
+ +
+

+
+
+ + + + + + + + + + + + + + diff --git a/github_connector_odoo/views/view_odoo_license.xml b/github_connector_odoo/views/view_odoo_license.xml new file mode 100644 index 00000000..d1e88f42 --- /dev/null +++ b/github_connector_odoo/views/view_odoo_license.xml @@ -0,0 +1,50 @@ + + + + + + odoo.license + + + + + + + + + odoo.license + + + + + + + + + + odoo.license + +
+ +
+

+
+
+ + + + + + + + + + + + + + diff --git a/github_connector_odoo/views/view_odoo_module.xml b/github_connector_odoo/views/view_odoo_module.xml new file mode 100644 index 00000000..a10e253d --- /dev/null +++ b/github_connector_odoo/views/view_odoo_module.xml @@ -0,0 +1,74 @@ + + + + + + odoo.module + + + + + + + + + + + + + + odoo.module + + + + + + + + + + + + + odoo.module + +
+ +
+

+

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/github_connector_odoo/views/view_odoo_module_version.xml b/github_connector_odoo/views/view_odoo_module_version.xml new file mode 100644 index 00000000..f836655a --- /dev/null +++ b/github_connector_odoo/views/view_odoo_module_version.xml @@ -0,0 +1,98 @@ + + + + + + odoo.module.version + + + + + + + + + + + + + + + + + + + + + + + odoo.module.version + + + + + + + + + + + + + + + + odoo.module.version + +
+ +
+

+

+
+
+

+ +

+
+ + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + + +
+ + + + + + diff --git a/github_connector_odoo/views/view_reporting.xml b/github_connector_odoo/views/view_reporting.xml new file mode 100644 index 00000000..3c7ba137 --- /dev/null +++ b/github_connector_odoo/views/view_reporting.xml @@ -0,0 +1,18 @@ + + + + + + odoo.module.version + + + + + + + + From 20c1c1734c50d5e590480a64deacb0a6188a14e4 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Fri, 21 Jul 2017 14:57:51 +0200 Subject: [PATCH 02/46] [MIG] github_connector_odoo: Migration to 10.0 --- github_connector_odoo/README.rst | 101 ++++++++++++++--- github_connector_odoo/__openerp__.py | 5 +- github_connector_odoo/data/function.xml | 2 +- github_connector_odoo/data/odoo_licence.xml | 30 +++++ .../demo/github_organization.xml | 4 +- .../models/github_organization.py | 7 +- .../models/github_repository.py | 25 +++-- .../models/github_repository_branch.py | 91 ++++----------- github_connector_odoo/models/odoo_author.py | 2 +- github_connector_odoo/models/odoo_lib_bin.py | 2 +- .../models/odoo_lib_python.py | 2 +- github_connector_odoo/models/odoo_license.py | 17 ++- github_connector_odoo/models/odoo_module.py | 60 ++++++---- .../models/odoo_module_version.py | 106 ++++++++++++++---- .../security/ir.model.access.csv | 5 - .../description/github_organization_form.png | Bin 0 -> 26172 bytes .../static/description/menu.png | Bin 0 -> 6431 bytes .../static/description/odoo_author.png | Bin 0 -> 14304 bytes .../static/description/odoo_bin_libs.png | Bin 0 -> 9954 bytes .../static/description/odoo_license.png | Bin 0 -> 31481 bytes .../static/description/odoo_module_form.png | Bin 0 -> 48742 bytes .../static/description/odoo_module_kanban.png | Bin 0 -> 46239 bytes .../static/description/odoo_python_libs.png | Bin 0 -> 13501 bytes .../description/reporting_module_by_serie.png | Bin 8287 -> 14436 bytes .../static/src/img/default_image_module.png | Bin 0 -> 6447 bytes .../src/img/default_image_module_version.png | Bin 0 -> 6447 bytes .../static/src/img/github.png | Bin 0 -> 4229 bytes .../src/img/odoo_licence_agpl_3-image.png | Bin 0 -> 7041 bytes .../src/img/odoo_licence_gpl_3-image.png | Bin 0 -> 6064 bytes .../src/img/odoo_licence_lgpl_3-image.png | Bin 0 -> 6602 bytes github_connector_odoo/views/action.xml | 21 ++-- github_connector_odoo/views/menu.xml | 41 ++----- .../views/view_github_organization.xml | 10 +- .../views/view_github_repository.xml | 2 +- .../views/view_github_repository_branch.xml | 84 ++++---------- .../views/view_odoo_author.xml | 20 ++-- .../views/view_odoo_lib_bin.xml | 19 ++-- .../views/view_odoo_lib_python.xml | 19 ++-- .../views/view_odoo_license.xml | 51 ++++++++- .../views/view_odoo_module.xml | 68 ++++++++--- .../views/view_odoo_module_version.xml | 73 +++++++++--- .../views/view_reporting.xml | 1 + 42 files changed, 533 insertions(+), 335 deletions(-) create mode 100644 github_connector_odoo/data/odoo_licence.xml create mode 100644 github_connector_odoo/static/description/github_organization_form.png create mode 100644 github_connector_odoo/static/description/menu.png create mode 100644 github_connector_odoo/static/description/odoo_author.png create mode 100644 github_connector_odoo/static/description/odoo_bin_libs.png create mode 100644 github_connector_odoo/static/description/odoo_license.png create mode 100644 github_connector_odoo/static/description/odoo_module_form.png create mode 100644 github_connector_odoo/static/description/odoo_module_kanban.png create mode 100644 github_connector_odoo/static/description/odoo_python_libs.png create mode 100644 github_connector_odoo/static/src/img/default_image_module.png create mode 100644 github_connector_odoo/static/src/img/default_image_module_version.png create mode 100644 github_connector_odoo/static/src/img/github.png create mode 100644 github_connector_odoo/static/src/img/odoo_licence_agpl_3-image.png create mode 100644 github_connector_odoo/static/src/img/odoo_licence_gpl_3-image.png create mode 100644 github_connector_odoo/static/src/img/odoo_licence_lgpl_3-image.png diff --git a/github_connector_odoo/README.rst b/github_connector_odoo/README.rst index 4acdf63a..45ee1f85 100644 --- a/github_connector_odoo/README.rst +++ b/github_connector_odoo/README.rst @@ -1,39 +1,114 @@ .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg :alt: License: AGPL-3 -========================================================== -Analyze Odoo Modules Informations from github repositories -========================================================== +========================================================= +Analyze Odoo modules information from Github repositories +========================================================= +This module was written to extend the functionality of 'Github Connector' Module +if your repositories contain Odoo Modules. -Installation -============ +It extends 'Analysis' features to parse code files (readme / manifest files) +and add new models and menus. -This module will not analyse correctly V10 branches, except if you get -a patch, available on that branch, to analyse correctly new manifest files. - -https://github.com/grap/OCB/tree/8.0_BACKPORT_V10_analysis +.. image:: /github_connector_odoo/static/description/menu.png Configuration ============= -No extra configuration is needed. +* Once installed, go to your organization, and set extra settings: + +1. The name of your organization in the author keys of the manifest odoo modules +2. The URL of the file that contains IDs of your repositories for the runbot + +.. image:: /github_connector_odoo/static/description/github_organization_form.png + +If you had analyzed previously your repositories with the +'github Connector' module, you should launch again the Analysis Process +for all your Repository Branches. Usage ===== +Odoo Modules +------------ + +.. image:: /github_connector_odoo/static/description/odoo_module_kanban.png + +In each module, you can see the description of the module, the authors, +the available series, and the list of the modules that depend on the +current module. + +.. image:: /github_connector_odoo/static/description/odoo_module_form.png + +Odoo Authors +------------ + +.. image:: /github_connector_odoo/static/description/odoo_author.png + +This list is based on the 'author' key of the manifest file. + +Odoo License +------------ + +This list is based on the 'license' key of the manifest file. + +.. image:: /github_connector_odoo/static/description/odoo_license.png + +Odoo Bin Libs +------------- + +This list is based on the 'external_dependencies' / 'bin' key of the +manifest file. + +.. image:: /github_connector_odoo/static/description/odoo_bin_libs.png + +Odoo Python Libs +---------------- + +This list is based on the 'external_dependencies' / 'python' key of the +manifest file. + +.. image:: /github_connector_odoo/static/description/odoo_python_libs.png + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/229/10.0 + Reporting ========= -This module provides several reportings. +This module provide a new reporting. -**Modules by Series** +**Modules by Serie (and Licenses)** .. image:: /github_connector_odoo/static/description/reporting_module_by_serie.png Known issues / Roadmap ====================== +Possible improvements : + +* Implement deep code source analysis, like the website http://odoo-code-search.com/ + and specially: + +1. Possibility to search by field or by model name. (Ex: field:invoice_id) +2. Possibility to display the number of XML, Python, Yaml, HTML, CSS lines + +* Implement Social feature, like possibility to comment a module, add a + notation, like the website https://www.odoo.com/apps + +* Create a new module github_connector_odoo_website, that could display + the modules informations for non logged users. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. Credits ======= @@ -56,4 +131,4 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -To contribute to this module, please visit http://odoo-community.org. +To contribute to this module, please visit https://odoo-community.org. diff --git a/github_connector_odoo/__openerp__.py b/github_connector_odoo/__openerp__.py index b0757026..2deed3b0 100644 --- a/github_connector_odoo/__openerp__.py +++ b/github_connector_odoo/__openerp__.py @@ -4,8 +4,8 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { 'name': 'Github Connector - Odoo', - 'summary': 'Analyze Odoo Modules Informations from github repositories', - 'version': '8.0.1.0.0', + 'summary': 'Analyze Odoo modules information from Github repositories', + 'version': '10.0.1.0.0', 'category': 'Connector', 'license': 'AGPL-3', 'author': 'Odoo Community Association (OCA), Sylvain LE GAL, GRAP', @@ -27,6 +27,7 @@ 'views/view_github_organization.xml', 'views/view_github_repository.xml', 'views/view_github_repository_branch.xml', + 'data/odoo_licence.xml', ], 'demo': [ 'demo/github_organization.xml', diff --git a/github_connector_odoo/data/function.xml b/github_connector_odoo/data/function.xml index 1aac0f1d..a2f02934 100644 --- a/github_connector_odoo/data/function.xml +++ b/github_connector_odoo/data/function.xml @@ -6,6 +6,6 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). --> - + diff --git a/github_connector_odoo/data/odoo_licence.xml b/github_connector_odoo/data/odoo_licence.xml new file mode 100644 index 00000000..43250622 --- /dev/null +++ b/github_connector_odoo/data/odoo_licence.xml @@ -0,0 +1,30 @@ + + + + + + GPL-3 + http://www.gnu.org/licenses/gpl-3.0.html + + You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build and install instructions. + + + + LGPL-3 + http://www.gnu.org/licenses/lgpl-3.0.html + + This license is mainly applied to libraries. You may copy, distribute and modify the software provided that modifications are described and licensed for free under LGPL. Derivatives works (including modifications or anything statically linked to the library) can only be redistributed under LGPL, but applications that use the library don't have to be. + + + + AGPL-3 + http://www.gnu.org/licenses/agpl-3.0.html + + The AGPL license differs from the other GNU licenses in that it was built for network software. You can distribute modified versions if you keep track of the changes and the date you made them. As per usual with GNU licenses, you must license derivatives under AGPL. It provides the same restrictions and freedoms as the GPLv3 but with an additional clause which makes it so that source code must be distributed along with web publication. Since web sites and services are never distributed in the traditional sense, the AGPL is the GPL of the web. + + + diff --git a/github_connector_odoo/demo/github_organization.xml b/github_connector_odoo/demo/github_organization.xml index 06ad5b6f..fd29c8bf 100644 --- a/github_connector_odoo/demo/github_organization.xml +++ b/github_connector_odoo/demo/github_organization.xml @@ -7,7 +7,9 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - https://raw.githubusercontent.com/OCA/maintainer-tools/master/tools/repos_with_ids.txt + https://raw.githubusercontent.com/OCA/maintainer-tools/master/tools/repos_with_ids.txt + Odoo Community Association (OCA) + https://runbot.odoo-community.org/runbot/{runbot_id_external}/{branch_name} diff --git a/github_connector_odoo/models/github_organization.py b/github_connector_odoo/models/github_organization.py index 46c6d99c..eeca583a 100644 --- a/github_connector_odoo/models/github_organization.py +++ b/github_connector_odoo/models/github_organization.py @@ -10,4 +10,9 @@ class GithubOrganization(models.Model): _inherit = 'github.organization' - ci_url = fields.Char(string='URL For CI Ids') + runbot_parse_url = fields.Char( + string='URL For Runbot Ids', oldname='runbot_url') + + default_author_text = fields.Char(string='Default Author Text') + + runbot_url_pattern = fields.Char(string='Runbot URL Pattern') diff --git a/github_connector_odoo/models/github_repository.py b/github_connector_odoo/models/github_repository.py index cdd15897..1a3a6d3c 100644 --- a/github_connector_odoo/models/github_repository.py +++ b/github_connector_odoo/models/github_repository.py @@ -12,22 +12,25 @@ class GithubRepository(models.Model): _inherit = 'github.repository' - ci_id = fields.Integer( - string='ID For CI', readonly=True, compute='_compute_ci_id', - store=True) + runbot_id_external = fields.Integer( + string='ID For Runbot', readonly=True, store=True, + compute='_compute_runbot_id_external', + oldname='ci_id_external') # Compute Section @api.multi - @api.depends('organization_id.ci_url') - def _compute_ci_id(self): + @api.depends('organization_id.runbot_parse_url') + def _compute_runbot_id_external(self): url_done = defaultdict(list) for repository in self: url_done[repository.organization_id].append(repository) for organization_id, repositories in url_done.iteritems(): - ci_list = urllib2.urlopen( - urllib2.Request(organization_id.ci_url)).read().split('\n') - for item in ci_list: - for repository in repositories: - if item.endswith(repository.complete_name): - repository.ci_id = item.split('|')[0] + if organization_id.runbot_parse_url: + runbot_list = urllib2.urlopen( + urllib2.Request( + organization_id.runbot_parse_url)).read().split('\n') + for item in runbot_list: + for repository in repositories: + if item.endswith(repository.complete_name): + repository.runbot_id_external = item.split('|')[0] diff --git a/github_connector_odoo/models/github_repository_branch.py b/github_connector_odoo/models/github_repository_branch.py index 24acdc95..88f5897b 100644 --- a/github_connector_odoo/models/github_repository_branch.py +++ b/github_connector_odoo/models/github_repository_branch.py @@ -25,7 +25,7 @@ class GithubRepositoryBranch(models.Model): module_paths = fields.Text( string='Module Paths', help="Set here extra relative paths" " you want to scan to find modules. If not set, root path will be" - " scanned. One repository per line. Exemple:\n" + " scanned. One repository per line. Example:\n" "./addons/\n" "./openerp/addons/") @@ -34,79 +34,27 @@ class GithubRepositoryBranch(models.Model): inverse_name='repository_branch_id', string='Module Versions') module_version_qty = fields.Integer( - string='Module Versions Quantity', + string='Number of Module Versions', compute='_compute_module_version_qty') - coverage_url = fields.Char( - string='Coverage Url', store=True, multi='complete_name', - compute='_compute_multi_from_complete_name') - - coverage_image_url = fields.Char( - string='Coverage Image Url', store=True, multi='complete_name', - compute='_compute_multi_from_complete_name') - - integration_service_url = fields.Char( - string='Integration Service Url', store=True, multi='complete_name', - compute='_compute_multi_from_complete_name') - - integration_service_image_url = fields.Char( - string='Integration Service Image Url', store=True, - multi='complete_name', - compute='_compute_multi_from_complete_name') - runbot_url = fields.Char( - string='Runbot Url', multi='complete_name', - compute='_compute_multi_from_complete_name') - - runbot_image_url = fields.Char( - string='Runbot Image Url', - multi='complete_name', - compute='_compute_multi_from_complete_name') - - github_url = fields.Char( - string='Github Url', store=True, - multi='complete_name', - compute='_compute_multi_from_complete_name') + string='Runbot URL', compute='_compute_runbot_url') # Compute Section @api.multi - @api.depends('name', 'repository_id.complete_name', 'repository_id.ci_id') - def _compute_multi_from_complete_name(self): + @api.depends( + 'name', 'repository_id.runbot_id_external', + 'organization_id.runbot_url_pattern') + def _compute_runbot_url(self): for branch in self: - # Compute Coverage Service Url and Image Url - branch.coverage_url =\ - 'https://coveralls.io/github/' +\ - branch.repository_id.complete_name +\ - '?branch=' + branch.name - branch.coverage_image_url =\ - 'https://coveralls.io/repos/github/' +\ - branch.repository_id.complete_name +\ - '/badge.svg?branch=' + branch.name - - # Compute Integration Service Url and Image Url - branch.integration_service_url =\ - 'https://travis-ci.org/' +\ - branch.repository_id.complete_name - branch.integration_service_image_url =\ - 'https://travis-ci.org/' +\ - branch.repository_id.complete_name +\ - '.svg?branch=' + branch.name - - # Compute Github Url - branch.github_url =\ - 'https://github.com/' +\ - branch.repository_id.complete_name +\ - '/tree/' + branch.name - - # Compute Runbot Service Url and Image Url - branch.runbot_url =\ - 'https://runbot.odoo-community.org/runbot/' +\ - str(branch.repository_id.ci_id) + '/' +\ - branch.name - branch.runbot_image_url =\ - 'https://runbot.odoo-community.org/runbot/badge/flat/' +\ - str(branch.repository_id.ci_id) + '/' +\ - branch.name + '.svg' + if not branch.repository_id.runbot_id_external: + branch.runbot_url = False + else: + branch.runbot_url =\ + branch.organization_id.runbot_url_pattern.format( + runbot_id_external=str( + branch.repository_id.runbot_id_external), + branch_name=branch.name) @api.multi @api.depends( @@ -118,7 +66,7 @@ def _compute_module_version_qty(self): # Custom Section @api.model - def _set_state_to_analyse(self): + def _set_state_to_analyze(self): """ function called when the module is installed to set all branches to analyze again. """ @@ -148,7 +96,7 @@ def analyze_code_one(self, branch): paths = [] for path in branch.module_paths.split('\n'): if path.strip(): - paths.append(branch.local_path + '/' + path) + paths.append(os.path.join(branch.local_path, path)) else: paths = [branch.local_path] @@ -162,15 +110,16 @@ def analyze_code_one(self, branch): # Analyze folders and create module versions _logger.info("Analyzing repository %s ..." % (path)) for module_name in self.listdir(path): + full_module_path = os.path.join(path, module_name) module_info = load_information_from_description_file( - module_name, path + '/' + module_name) + module_name, full_module_path) # Create module version, if the module is installable # in the serie if module_info.get('installable', False): module_info['technical_name'] = module_name module_version_obj.create_or_update_from_manifest( - module_info, branch) + module_info, branch, full_module_path) finally: # Reset Original level for module logger logger1.setLevel(currentLevel1) diff --git a/github_connector_odoo/models/odoo_author.py b/github_connector_odoo/models/odoo_author.py index 0ae20ea3..f594d6d6 100644 --- a/github_connector_odoo/models/odoo_author.py +++ b/github_connector_odoo/models/odoo_author.py @@ -25,7 +25,7 @@ class OdooAuthor(models.Model): column1='author_id', column2='module_id', readonly=True) module_qty = fields.Integer( - string='Modules Quantity', + string='Number of Modules', compute='_compute_module_qty', store=True) @api.multi diff --git a/github_connector_odoo/models/odoo_lib_bin.py b/github_connector_odoo/models/odoo_lib_bin.py index 1f499bc9..7bb9214c 100644 --- a/github_connector_odoo/models/odoo_lib_bin.py +++ b/github_connector_odoo/models/odoo_lib_bin.py @@ -20,7 +20,7 @@ class OdooLibBin(models.Model): column2='module_version_id', readonly=True) module_version_qty = fields.Integer( - string='Module Versions Quantity', + string='Number of Module Versions', compute='_compute_module_version_qty', store=True) # Compute Section diff --git a/github_connector_odoo/models/odoo_lib_python.py b/github_connector_odoo/models/odoo_lib_python.py index 7b4f7dfb..1e70c119 100644 --- a/github_connector_odoo/models/odoo_lib_python.py +++ b/github_connector_odoo/models/odoo_lib_python.py @@ -20,7 +20,7 @@ class OdooLibPython(models.Model): column2='module_version_id', readonly=True) module_version_qty = fields.Integer( - string='Module Versions Quantity', + string='Number of Module Versions', compute='_compute_module_version_qty', store=True) # Compute Section diff --git a/github_connector_odoo/models/odoo_license.py b/github_connector_odoo/models/odoo_license.py index 5c7432bb..a6c5af95 100644 --- a/github_connector_odoo/models/odoo_license.py +++ b/github_connector_odoo/models/odoo_license.py @@ -8,7 +8,7 @@ class OdooLicense(models.Model): _name = 'odoo.license' - _order = 'module_version_qty desc, name' + _order = 'name' # Column Section name = fields.Char( @@ -19,9 +19,22 @@ class OdooLicense(models.Model): string='Module Versions') module_version_qty = fields.Integer( - string='Module Versions Quantity', + string='Number of Module Versions', compute='_compute_module_version_qty', store=True) + website = fields.Char(string='Website') + + image = fields.Binary(string='Icon Image') + + description = fields.Text(string='Description') + + active = fields.Boolean(string='Active', default=True) + + # Constrains Section + _sql_constraints = [ + ('name_uniq', 'unique (name)', "Name already exists !"), + ] + # Compute Section @api.multi @api.depends('module_version_ids.license_id') diff --git a/github_connector_odoo/models/odoo_module.py b/github_connector_odoo/models/odoo_module.py index fdad22a5..530f9f7f 100644 --- a/github_connector_odoo/models/odoo_module.py +++ b/github_connector_odoo/models/odoo_module.py @@ -9,7 +9,7 @@ class OdooModule(models.Model): _name = 'odoo.module' - _order = 'name, technical_name' + _order = 'technical_name, name' # Column Section name = fields.Char( @@ -23,29 +23,30 @@ class OdooModule(models.Model): string='Versions', readonly=True) module_version_qty = fields.Integer( - string='Module Version Quantity', + string='Number of Module Versions', compute='_compute_module_version_qty', store=True) author_ids = fields.Many2many( string='Authors', comodel_name='odoo.author', compute='_compute_author', relation='github_module_author_rel', - column1='module_id', column2='author_id', multi='author') - # , store=True : Commented to optimize analysis. + column1='module_id', column2='author_id', multi='author', + store=True) - author_list = fields.Char( - string='Authors List', compute='_compute_author', multi='author') - # , store=True : Commented to optimize analysis. + author_ids_description = fields.Char( + string='Authors (Text)', compute='_compute_author', multi='author', + store=True) organization_serie_ids = fields.Many2many( string='Series', comodel_name='github.organization.serie', - compute='_compute_organization_serie', multi='organization_serie', + compute='_compute_organization_serie', + multi='organization_serie', store=True, relation='github_module_organization_serie_rel', - column1='module_id', column2='organization_serie_id', store=True) + column1='module_id', column2='organization_serie_id') - organization_serie_list = fields.Char( - string='Series List', - compute='_compute_organization_serie', multi='organization_serie', - store=True) + organization_serie_ids_description = fields.Char( + string='Series (Text)', store=True, + compute='_compute_organization_serie', + multi='organization_serie') description_rst = fields.Char( string='RST Description of the last Version', store=True, @@ -62,11 +63,26 @@ class OdooModule(models.Model): column1='dependency_module_id', column2='module_version_id') dependence_module_version_qty = fields.Integer( - string='Quantity of Module Versions that depend on this module', - compute='_compute_dependence_module_version_qty') - # , store=True : Commented to optimize analysis. + string='Number of Module Versions that depend on this module', + compute='_compute_dependence_module_version_qty', store=True) + + image = fields.Binary( + string='Icon Image', compute='_compute_image', store=True, + reaonly=True) # Compute Section + @api.multi + @api.depends('module_version_ids.image') + def _compute_image(self): + module_version_obj = self.env['odoo.module.version'] + for module in self: + version_ids = module.module_version_ids.ids + last_version = module_version_obj.search( + [('id', 'in', version_ids)], + order='organization_serie_id desc', limit=1) + if last_version: + module.image = last_version.image + @api.multi @api.depends('technical_name', 'module_version_ids.name') def _compute_name(self): @@ -123,7 +139,8 @@ def _compute_author(self): authors += version.author_ids authors = set(authors) module.author_ids = [x.id for x in authors] - module.author_list = ', '.join(sorted([x.name for x in authors])) + module.author_ids_description =\ + ', '.join(sorted([x.name for x in authors])) @api.multi @api.depends('module_version_ids.organization_serie_id') @@ -135,8 +152,9 @@ def _compute_organization_serie(self): organization_series = set(organization_series) module.organization_serie_ids =\ [x.id for x in organization_series] - module.organization_serie_list =\ - ', '.join(sorted([x.name for x in organization_series])) + module.organization_serie_ids_description =\ + ' - '.join([x.name for x in sorted( + organization_series, key=lambda x: x.sequence)]) # Custom Section @api.model @@ -146,6 +164,6 @@ def create_if_not_exist(self, technical_name): module = self.create({'technical_name': technical_name}) return module - @api.one + @api.multi def name_get(self): - return [self.id, self.technical_name] + return [(module.id, module.technical_name) for module in self] diff --git a/github_connector_odoo/models/odoo_module_version.py b/github_connector_odoo/models/odoo_module_version.py index a40b3759..99e6ad28 100644 --- a/github_connector_odoo/models/odoo_module_version.py +++ b/github_connector_odoo/models/odoo_module_version.py @@ -4,10 +4,11 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import logging +import os from docutils.core import publish_string -from openerp import models, fields, api, _ +from openerp import api, fields, models, tools, _ from openerp.tools import html_sanitize from openerp.addons.base.module.module import MyWriter from openerp.tools.safe_eval import safe_eval @@ -19,6 +20,11 @@ class OdooModuleVersion(models.Model): _name = 'odoo.module.version' _order = 'name, technical_name' + _ICON_PATH = [ + 'static/src/img/', + 'static/description/', + ] + # Constant Section _SETTING_OVERRIDES = { 'embed_stylesheet': False, @@ -28,7 +34,7 @@ class OdooModuleVersion(models.Model): } _ODOO_TYPE_SELECTION = [ - ('verticalization', 'Verticalization'), + ('verticalization', 'Vertical Solutions'), ('localization', 'Localization'), ('connector', 'Connector'), ('other', 'Other'), @@ -39,7 +45,7 @@ class OdooModuleVersion(models.Model): technical_name = fields.Char( string='Technical Name', readonly=True, index=True, - help="Technical Name of the Module. (Folder name)") + help="Technical Name of the Module (Folder name).") complete_name = fields.Char( string='Complete Name', compute='_compute_complete_name', store=True) @@ -61,8 +67,9 @@ class OdooModuleVersion(models.Model): related='repository_branch_id.repository_id', store=True) organization_serie_id = fields.Many2one( - comodel_name='github.organization.serie', string='Organization Serie', - compute='_compute_organization_serie_id', readonly=True, store=True) + comodel_name='github.organization.serie', + string='Organization Serie', readonly=True, store=True, + compute='_compute_organization_serie_id') license = fields.Char(string='License (Manifest)', readonly=True) @@ -77,9 +84,8 @@ class OdooModuleVersion(models.Model): dependency_module_ids = fields.Many2many( comodel_name='odoo.module', string='Dependencies', relation='module_version_dependency_rel', column1='module_version_id', - column2='dependency_module_id', + column2='dependency_module_id', store=True, compute='_compute_dependency_module_ids') - # , store=True : Commented to optimize analysis. website = fields.Char(string='Website (Manifest)', readonly=True) @@ -100,9 +106,12 @@ class OdooModuleVersion(models.Model): author_ids = fields.Many2many( string='Authors', comodel_name='odoo.author', relation='github_module_version_author_rel', - column1='module_version_id', column2='author_id', - compute='_compute_author_ids') - # , store=True : Commented to optimize analysis. + column1='module_version_id', column2='author_id', multi='author', + compute='_compute_author', store=True) + + author_ids_description = fields.Char( + string='Authors (Text)', compute='_compute_author', multi='author', + store=True) lib_python_ids = fields.Many2many( comodel_name='odoo.lib.python', string='Python Lib Dependencies', @@ -110,15 +119,29 @@ class OdooModuleVersion(models.Model): column2='lib_python_id', multi='lib', compute='_compute_lib', store=True) + lib_python_ids_description = fields.Char( + string='Python Lib Dependencies (Text)', compute='_compute_lib', + multi='lib', store=True) + lib_bin_ids = fields.Many2many( comodel_name='odoo.lib.bin', string='Bin Lib Dependencies', relation='module_version_lib_bin_rel', column1='module_version_id', column2='lib_bin_id', multi='lib', compute='_compute_lib', store=True) + lib_bin_ids_description = fields.Char( + string='Bin Lib Dependencies (Text)', compute='_compute_lib', + multi='lib', store=True) + odoo_type = fields.Selection( string='Odoo Type', selection=_ODOO_TYPE_SELECTION, store=True, compute='_compute_odoo_type') + image = fields.Binary(string='Icon Image', reaonly=True) + + github_url = fields.Char( + string='Github URL', compute='_compute_github_url', store=True, + readonly=True) + # Overload Section @api.multi def unlink(self): @@ -132,6 +155,19 @@ def unlink(self): # Compute Section @api.multi + @api.depends( + 'technical_name', 'repository_id.organization_id.github_login', + 'repository_id.name', 'repository_branch_id.name') + def _compute_github_url(self): + for version in self: + version.github_url = "https://github.com/{organization_name}/"\ + "{repository_name}/tree/{branch_name}/{module_name}".format( + organization_name=version. + repository_id.organization_id.github_login, + repository_name=version.repository_id.name, + branch_name=version.repository_branch_id.name, + module_name=version.technical_name) + @api.depends('repository_branch_id.repository_id.name') def _compute_odoo_type(self): for version in self: @@ -204,7 +240,11 @@ def _compute_lib(self): lib_bin_obj.create_if_not_exist(bin_name)) version.lib_python_ids = [x.id for x in python_libs] + version.lib_python_ids_description =\ + ', '.join(sorted([x.name for x in python_libs])) version.lib_bin_ids = [x.id for x in bin_libs] + version.lib_bin_ids_description =\ + ', '.join(sorted([x.name for x in bin_libs])) @api.multi @api.depends('license') @@ -217,15 +257,19 @@ def _compute_license_id(self): @api.multi @api.depends('author') - def _compute_author_ids(self): + def _compute_author(self): odoo_author_obj = self.env['odoo.author'] for version in self: - author_ids = [] - for item in version.author.split(','): - if item: - author_ids.append( - odoo_author_obj.create_if_not_exist(item.strip()).id) - version.author_ids = author_ids + authors = [] + for item in [x.strip() for x in version.author.split(',')]: + if item and item != version.repository_id.organization_id.\ + default_author_text: + authors.append( + odoo_author_obj.create_if_not_exist(item)) + authors = set(authors) + version.author_ids = [x.id for x in authors] + version.author_ids_description =\ + ', '.join(sorted([x.name for x in authors])) @api.multi @api.depends( @@ -239,7 +283,8 @@ def _compute_organization_serie_id(self): ('organization_id', '=', module_version.repository_branch_id.organization_id.id), ('name', '=', module_version.repository_branch_id.name)]) - module_version.organization_serie_id = res and res[0].id or False + module_version.organization_serie_id =\ + res and res[0].id or False # Custom Section @api.model @@ -268,19 +313,38 @@ def manifest_2_odoo(self, info, repository_branch, module): return res @api.model - def create_or_update_from_manifest(self, info, repository_branch): + def create_or_update_from_manifest( + self, info, repository_branch, full_module_path): module_obj = self.env['odoo.module'] module_version = self.search([ - ('technical_name', '=', info['technical_name']), + ('technical_name', '=', str(info['technical_name'])), ('repository_branch_id', '=', repository_branch.id)]) if not module_version: # Create new module version module = module_obj.create_if_not_exist(info['technical_name']) - module_version.create( + module_version = self.create( self.manifest_2_odoo(info, repository_branch, module)) + else: # Update module Version value = self.manifest_2_odoo( info, repository_branch, module_version.module_id) module_version.write(value) + icon_path = False + for current_icon_path in self._ICON_PATH: + full_current_icon_path = os.path.join( + full_module_path, current_icon_path, 'icon.png') + if os.path.exists(full_current_icon_path): + icon_path = full_current_icon_path + if icon_path: + resized_image = False + try: + with open(icon_path, 'rb') as f: + image = f.read() + resized_image = tools.image_resize_image( + image.encode('base64'), size=(96, 96), + encoding='base64', filetype='PNG') + except Exception: + _logger.warn("Unable to read or resize %s" % icon_path) + module_version.write({'image': resized_image}) diff --git a/github_connector_odoo/security/ir.model.access.csv b/github_connector_odoo/security/ir.model.access.csv index 15c15383..7d6ea31a 100644 --- a/github_connector_odoo/security/ir.model.access.csv +++ b/github_connector_odoo/security/ir.model.access.csv @@ -1,18 +1,13 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_odoo_author_reader,odoo_author reader,model_odoo_author,,1,0,0,0 access_odoo_author_manager,odoo_author manager,model_odoo_author,github_connector.group_github_connector_manager,1,1,1,1 -,,,,,,, access_odoo_lib_bin_reader,odoo_lib_bin reader,model_odoo_lib_bin,,1,0,0,0 access_odoo_lib_bin_manager,odoo_lib_bin manager,model_odoo_lib_bin,github_connector.group_github_connector_manager,1,1,1,1 -,,,,,,, access_odoo_lib_python_reader,odoo_lib_python reader,model_odoo_lib_python,,1,0,0,0 access_odoo_lib_python_manager,odoo_lib_python manager,model_odoo_lib_python,github_connector.group_github_connector_manager,1,1,1,1 -,,,,,,, access_odoo_license_reader,odoo_license reader,model_odoo_license,,1,0,0,0 access_odoo_license_manager,odoo_license manager,model_odoo_license,github_connector.group_github_connector_manager,1,1,1,1 -,,,,,,, access_odoo_module_reader,odoo_module reader,model_odoo_module,,1,0,0,0 access_odoo_module_manager,odoo_module manager,model_odoo_module,github_connector.group_github_connector_manager,1,1,1,1 -,,,,,,, access_odoo_module_version_reader,odoo_module_version reader,model_odoo_module_version,,1,0,0,0 access_odoo_module_version_manager,odoo_module_version manager,model_odoo_module_version,github_connector.group_github_connector_manager,1,1,1,1 diff --git a/github_connector_odoo/static/description/github_organization_form.png b/github_connector_odoo/static/description/github_organization_form.png new file mode 100644 index 0000000000000000000000000000000000000000..bbb428615168ca5d5ebda43a6ea9b95248291fd2 GIT binary patch literal 26172 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 A2mk;8 literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/description/odoo_author.png b/github_connector_odoo/static/description/odoo_author.png new file mode 100644 index 0000000000000000000000000000000000000000..1b19e295340fda5def2b38dd75148f25e69bb9f4 GIT binary patch literal 14304 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 F{|ipzGl&2H literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/description/odoo_module_kanban.png b/github_connector_odoo/static/description/odoo_module_kanban.png new file mode 100644 index 0000000000000000000000000000000000000000..0353ea62ffdde1b405cbf6e9aa73aa592474f73d GIT binary patch literal 46239 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 literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/description/odoo_python_libs.png b/github_connector_odoo/static/description/odoo_python_libs.png new file mode 100644 index 0000000000000000000000000000000000000000..833e6936e53a6ce9664b45cd47eef93911426ae4 GIT binary patch literal 13501 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 LBvmD081%mY&l5Jn literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/description/reporting_module_by_serie.png b/github_connector_odoo/static/description/reporting_module_by_serie.png index cddc42c8bc52971d0bcb2c8733170c6c44ff489d..4773fbbb70ea10f87f600c7e490c70522977eddf 100644 GIT binary patch literal 14436 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 ADF6Tf diff --git a/github_connector_odoo/static/src/img/default_image_module.png b/github_connector_odoo/static/src/img/default_image_module.png new file mode 100644 index 0000000000000000000000000000000000000000..9187bcdd5480451ed9fd9b5f3d5dd064865a07f7 GIT binary patch literal 6447 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 literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/src/img/default_image_module_version.png b/github_connector_odoo/static/src/img/default_image_module_version.png new file mode 100644 index 0000000000000000000000000000000000000000..9187bcdd5480451ed9fd9b5f3d5dd064865a07f7 GIT binary patch literal 6447 zcmWkzcQ}>rAAZho?2%5{qq0JXl6f2}BQvw?S-zcPkL(kL5VE&JQnCrzhmut?l2Jy) z!O6_A$M5|9c%S!r|9G#@^%>9o-1q%FH!{#-q~oLm05IxkYuu&0asPj45R~;J%3%Ni z_FWwfRnx~)Yc}-pW}4Y3kqElW?dWHp-3tRJT9K*@x7-(75&SDmWK*E2~S`$?;fwbHGY*HcY-+)yg&s9f&KY7 z$%ud7R8-hyT=o1rpqj6sovV&255l!IA?T}N`;!j}rt#+C-L+NihoT?mBIqMFI?hmX zr1CoaF{bGd%M>)hZ}OKYQEbWpOvUV2cSPD1juM&KS#kqr0y~?C`CPfEP=%Hkv*(2k z;Im;z*j;X%>b0D)_6u}0Jl&^!beCM1aq7`bV`b@#-Q#tbA-pOCgGx zN`ZH?pT#>yzqYUo_4BDY>nJW3hj{L9{vKN;LSBFWJrRYao@VA%l4~iTdxnElF9SS* zn;;HEkW>ku-@SV`)_tmyl2i*tTUlAjmYdL3l_WbX)Sx?so;cD1DY#|?oOFY}sQg}D z!RtS0t^)muV1~po&pF5hg%K*jG2VbVF*r0E@$MO z^0%d>lU9EZz0#6lgyC0Oq%r2!qZM)WfoJot^O#L?DZz9FKv%*|8+sy)CWg}zA#8m8 zQ`B84dO;YN2-GCu4+X_xU)9~>XD>N?$Fhp3#6$EP9cksBTRICFUn>n@y#ob2JUnG) zE=yes?|t7tb|czYwc1v~_;q)d(R8^Q8gwH%rY==i?Zx%QxQaPJ?0Wc*N5rywh~^$B zi^gO?hPOzZ5PFXfLwt&L;%S1Vq*&V6E-*1$Zyqy76-Dg zbr3P${I8Hz8<9FmSsHTB|5G+IaC`^wNan;-3tf)o8v5b@J{KZ((by#!k|ZU~bKdVo zwG%|58uBF)sJ)^SH2E!1f&jV)@x~lsMZ}q zxLVEQ4@;0dl&+Gi|2?50;eExux|*xKO*m3L9Kp$BJNwK8)weXVK#YbT0I}GyPSYEJ zFz92-G?4jX^xv+|-F688E@rYr`Q5rnN1iIxkd~Y@0`i8a>~er`%`5~cRv{UhzdiF~ z`G4W`)7ai9iB?9Z+y=`+gt5V&>umK*vXmsrEo?k`_4V~9O9H!Mz#v!dB|T|*u5hen zY3<`~Q;8?p2_J$3-{$7whoUO0)&O9DurYU|sO5ioHOls<{{D0^ES z>UAHrM`FMikjjolShSze;#AN+_%(GQukH_C3v{aj7m)xTY*u3^<|5fQT^+ETRuOJn z)%wanmNR9%91S*mH!@$~Y<^QoY`gs*!6Uw?l`mZdo9(766? z*0lC|Gi#Jr*!L|51N>TcgOgsrbAU{myW$VQ9(-ku#h62pfnyOcYB-%uEAny3d%hl; zhV)M`BsKDo{(}}(UP>AQ)Tsj zU%QLM_!Ur08w1T<$@n?2kN5v@Nr+cGl-F4eSp{4Y@+~h^oVuZ+EKGb0q=)$7p8eC`PVy8|t#Z zvmJa_ilis<6$9LZKy|>zjQdl6Gc&W$+%LGae`lhzL*xYyU?r*txgIjQTVH6nezF65RjTUBZp%(wWa~RSPf3kZFUG{2fAFf+hzV>ZNgK~>9Gn}#s=Qd zi}LCLt?T9UU7{#EAa(B3!|w5t762-EeG_|W{GJ|lee4-1k@)uCKZtwl*5@54ftq16 ztg3apzuZO-3a{+(s&-`u)&-sB2-n~70x`)$tCS-r+>|;W-8&bs`*(5$iZ%`KK#CCH zY&O2e1@OBl@i{0+pcy%W7JWe@!O)ZgDXULiJ9@}qP}P~$DgoURfFPB^a98&>#NJkm zRerea`_#Z%2G2*mIM5D$-V6m`GeW;tj(D8x`<60tqB7WM=u$Dy-Ky2 zM$;wVWdee&Vm9sjpq+_6z5K9*HF>=rj`m{aje`fyo0MjCLR)U1Wi`D7>i(WZeVqRBXX4le9=d!J@4nxkhKoj9p`EkcIy2Og#Vqo z$kpfDFiaPO)4J!MBfD&uVpd1uKW+)8ycO#_EH^r-bK`rd$tXR}F%wt>e=#P+T%4Qs zNxJ>(Xtie_bao@z2`@W?RslXdV4Aj+|Z)I0~#y2h6U0rpcp}C{(4z+wGgqmPm#ScJl>KAY<*5zk=|XE?33t%Ic|K8`pdw z5RSR*N0mB!AOsO5goVm|NNK|v38hLF==g7HBZjKzeG2QIto*AxtlJj|+>vHuNri)0 z2k3si(F|9=(=CtPg0*W}{TY{q%cZ8NK}25?hQC9574}p>6@5NQ0rcLhIJ|?m%)-q} zNt#p%{GbJ<0uPp?o|}T%OMh+>;D>SL4mvz1L0+o(J%qUuz{A@|wS*H#N3u&^Ujddc zB`D-Pbs0mbi9m&caOJjBR8OinNM2=H`q_$EG*U`H2>-O3JiTII_e(}Dk9z>A0_O?PGhZyPF0T$p7-;xlih@XjzQHxMeq~o-FP&{4k-y*|hk(5b2nl zaB@Pp0-sB5K6L&m^JG$w3pnBE>JORZXMoH8kjhQzEZAD;d2=4CO%#A5E^udAmXP z-3#@tn?o0yUoh@qu8iBL+7G}>SV2RgR0~a>(&wGyP3YbtuTs?fRaW46AImy6|FK_y zt2$?Lce^xhyecQ+I~1fSWrg5Gga}~`L9rNeC2!dGP(c{}@<)J=GrZ4MR0mPFI9TDf z2uG_VIM}}f)jq^Q_tsKUKQK+0nT)vjEnxQ*(qk$?!B!~ZPY9|q^qetzXr7FE2_;@i zdU==I#E25wjhwum)#s$SGTv*k6~wNMpn>7;jMv>c&Bx%iWVdI85Y;sRVq|5NBLVE0 z?AZ|ZDvB2vyZM-f$R1_>a@ZMcf=x?r^0lz^1mQ0$Ky!Wv#?cOjvJ0y}tCaH6mLTE>*KnQym5+N;- zo-ZXDA?eyYafo7Gci_YX0wtJqhQoaF&x}P0uWi%{9;1$=v@eoBGumnQ$(q}g3RLjg2<0CQw^Je8@!YhkOkkX?i~I|qxxX5 zn~DK-LqAoLRqw6N&=V{}BU@p4Mm)4}#t%H8-s1}S5X9{rb zgxQHil1Wqsm|7vijjtFX%eFdHk=CW6O93Y8b^0&B|v>tGrChqR; z&Z>~Vo195`%(SZ9xN&1HO}Nok+$8j~^6=#cZ3jy^q-aL2hFB`?gQB?1Jc$F}_5Jk8 zgqIA2sx%$18uDTDFM}=y-0sV(sXiC4N^uW5OMk1lU;kg-6vmuBfT9;a%)F*cQ^`{a zKRr(|E84Qt5_*9=^rUY4K*7J#rJ)`0fClqxdj}#@=I$_H@@ZsAorznnx}v7WYhiu5 zW!5<7aZB2*n2HclaktK!TU|EfItr!VqnIMcRu|eC3TqEupiPL0`VL+S5ncVov{Kj6 z4d%)V0i*J$244Cu*Dt8SrnpQ09TAqk=H$p?r*@jBFtn@>$<4KNmp({15?)eTNX%{7 zXg~6DftG9*sFkqHLPmri#+Dh4OUHhJcWDiGcW(`3Q2jv-DV3C_RM=+W22YOmJX#hK z6i+p=r-}EAD-1ObOieFQjZ+iHD{WeKtB8YnE#4GErs-Z50kMpd)feZ8hIA#QUAALx zgb;4#=4Dx=frbJ5I{0>SMwnjPOrUL;=ZAtwr zlAUcV%m$D5e@CCK{;=|}DNR+0h*eDm{1Y=`@nycFHOY`USmu(5XZ=ryo+$vDdoI6z z{o1AHRU+!JDtPzrfnj~1l8AlTc-lyTG(Mo|@#lDsIx{&R4}JZwYU>&sm)hAm)6r^F zpUspS{SY)<8N%Z>U(oD;Wt1Yc1a2uS7nhZhHc3?-GwX*c zL4bYgK(xqGO_mT7f7Pl1a}VXv^;GlMb2uv+7e-~l^5Kv{0qD(hwrEWTecCy0Ptw-h z2wqIHuw7!oc()|;P^2|=Hf;FFQ;L)^sA)-py zt_NzQf_m4l*;cD05|;qi|3##O&tViqE$T^$ai>Fn#-jDm$iX$$K#xBg{~t#)`M|S6 z*41U{r3R?nFB{DOqEh#~i_`EJi`|1zr7q-JxEcXRLQ3+h~>lFiD@Pl`%P zTpMvTC|p`-O<_q^>DS$qh+n3hQidtBfXcsotW&IC>AJm zv@!lQtrP^^5av5}`F%<#nLWE6`?H~hOd3D4#jbZdsM6L4nP{fJ+dR-JbLlV9&k3`& zuxN~NVj>`D*k0Y|ckehO@@?Uyy)#%Qn*3xKZ{AfrSw zd;2PQzJuG#4zLrV=j<4%K3vtq&< zv)`90@jZQa+5$GL+!ikNjGen>aoG&RwTWg=6^ppaY&u?++Vig34BEdU(}U zLMQ8k+KT$koM+|`-H41T>n86)ZXbJHB#+W#Pc0{>g@65hM`-M+{C;O2eT1}0dwH?< zh0}2RNU`tI&aRhLfVURd{cAxl0 zc1C97c@+I2xt}Nq`;mOjLlF=z)UXQ4O`T;X(-wm&4B zhTRjhtxDBR=H?Q&te!hg5jLEEX8!5fn@H&x(t`Qz*Uz0{F_^6juR`vfOB3Bbs}kwX f5uJ-S#UHCwl8V(m3m#H#KmgFuG|;G2vyb>6oR|>( literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/src/img/github.png b/github_connector_odoo/static/src/img/github.png new file mode 100644 index 0000000000000000000000000000000000000000..c8da8392d8fb075a9208c155f4b173070480a6c1 GIT binary patch literal 4229 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 bPk;dcPqqf!=7hV900000NkvXXu0mjfyVfGJ literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/src/img/odoo_licence_agpl_3-image.png b/github_connector_odoo/static/src/img/odoo_licence_agpl_3-image.png new file mode 100644 index 0000000000000000000000000000000000000000..b37d4cf796777ec44bf8046dda7bf415a026339d GIT binary patch literal 7041 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 Y!Q13{XfO8yP`QINRdrSB!M0KV2UR!8g8%>k literal 0 HcmV?d00001 diff --git a/github_connector_odoo/static/src/img/odoo_licence_lgpl_3-image.png b/github_connector_odoo/static/src/img/odoo_licence_lgpl_3-image.png new file mode 100644 index 0000000000000000000000000000000000000000..542f16558eebcf2f1f63df537accd29ad8f47be6 GIT binary patch literal 6602 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.actions.act_window odoo.module form - tree,form + kanban,tree,form {'search_default_filter_with_version': True} @@ -21,19 +21,19 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). ir.actions.act_window odoo.module.version form - tree,form + kanban,tree,graph,form - Licenses + Odoo Module Licenses ir.actions.act_window odoo.license form - tree,form + kanban,tree,form - Authors + Odoo Module Authors ir.actions.act_window odoo.author form @@ -41,7 +41,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - Bin Libs + Odoo Bin Libs ir.actions.act_window odoo.lib.bin form @@ -49,21 +49,16 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - Python Libs + Odoo Python Libs ir.actions.act_window odoo.lib.python form tree,form - - - tree,kanban,form - - - Modules by Series + Modules by Serie ir.actions.act_window odoo.module.version form diff --git a/github_connector_odoo/views/menu.xml b/github_connector_odoo/views/menu.xml index a959cc93..d74c8334 100644 --- a/github_connector_odoo/views/menu.xml +++ b/github_connector_odoo/views/menu.xml @@ -21,53 +21,30 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). sequence="2" action="action_odoo_module_version"/> - - - - - - - - - - - - - - - diff --git a/github_connector_odoo/views/view_github_organization.xml b/github_connector_odoo/views/view_github_organization.xml index 7d2a08c4..a1f8efe1 100644 --- a/github_connector_odoo/views/view_github_organization.xml +++ b/github_connector_odoo/views/view_github_organization.xml @@ -10,9 +10,15 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). github.organization - - + + + + + + + + diff --git a/github_connector_odoo/views/view_github_repository.xml b/github_connector_odoo/views/view_github_repository.xml index ff38ca6b..797e9bef 100644 --- a/github_connector_odoo/views/view_github_repository.xml +++ b/github_connector_odoo/views/view_github_repository.xml @@ -11,7 +11,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - + diff --git a/github_connector_odoo/views/view_github_repository_branch.xml b/github_connector_odoo/views/view_github_repository_branch.xml index e840310e..ab03db1f 100644 --- a/github_connector_odoo/views/view_github_repository_branch.xml +++ b/github_connector_odoo/views/view_github_repository_branch.xml @@ -10,8 +10,8 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). github.repository.branch - - + + @@ -20,75 +20,31 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). github.repository.branch - - - - - - - - - - - - - - - - + + + + + github.repository.branch + - - - - - - - - - - -

-
-

-
- -
-
- - - + + + + + Modules + + diff --git a/github_connector_odoo/views/view_odoo_author.xml b/github_connector_odoo/views/view_odoo_author.xml index 45a07af1..7f5f1467 100644 --- a/github_connector_odoo/views/view_odoo_author.xml +++ b/github_connector_odoo/views/view_odoo_author.xml @@ -20,7 +20,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - + @@ -30,19 +30,17 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+ +

-
- - - - - - - - - + diff --git a/github_connector_odoo/views/view_odoo_lib_bin.xml b/github_connector_odoo/views/view_odoo_lib_bin.xml index 0f4cad60..5b8d58ee 100644 --- a/github_connector_odoo/views/view_odoo_lib_bin.xml +++ b/github_connector_odoo/views/view_odoo_lib_bin.xml @@ -20,7 +20,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - + @@ -30,18 +30,17 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+ +

-
- - - - - - - - + diff --git a/github_connector_odoo/views/view_odoo_lib_python.xml b/github_connector_odoo/views/view_odoo_lib_python.xml index cc2aae7e..74f4b2da 100644 --- a/github_connector_odoo/views/view_odoo_lib_python.xml +++ b/github_connector_odoo/views/view_odoo_lib_python.xml @@ -20,7 +20,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - + @@ -30,18 +30,17 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+ +

-
- - - - - - - - + diff --git a/github_connector_odoo/views/view_odoo_license.xml b/github_connector_odoo/views/view_odoo_license.xml index d1e88f42..648a3efc 100644 --- a/github_connector_odoo/views/view_odoo_license.xml +++ b/github_connector_odoo/views/view_odoo_license.xml @@ -20,7 +20,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - + @@ -30,16 +30,28 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+ +
+ + +

-
- - + + + + + - @@ -47,4 +59,33 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + odoo.license + + + + + + + + +
+ + + +
+

+

+ +
+

+ +
+
+
+
+
+
+
+ diff --git a/github_connector_odoo/views/view_odoo_module.xml b/github_connector_odoo/views/view_odoo_module.xml index a10e253d..40001483 100644 --- a/github_connector_odoo/views/view_odoo_module.xml +++ b/github_connector_odoo/views/view_odoo_module.xml @@ -23,11 +23,11 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). odoo.module - - + - - + + + @@ -38,14 +38,25 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +
+ + +

-
- + - @@ -54,21 +65,42 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - - - - - - - - - - + + odoo.module + + + + + + + + +
+ + + + + + +
+

+

+
+
+ +

+
+
+
+
+
+
+
+ diff --git a/github_connector_odoo/views/view_odoo_module_version.xml b/github_connector_odoo/views/view_odoo_module_version.xml index f836655a..1f1e5b5d 100644 --- a/github_connector_odoo/views/view_odoo_module_version.xml +++ b/github_connector_odoo/views/view_odoo_module_version.xml @@ -33,13 +33,13 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). odoo.module.version - - - - - + + + + + @@ -50,6 +50,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+

@@ -62,20 +63,21 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - - - + - - - - - - - -
- + + +
+ + + + + + + +
+
@@ -95,4 +97,41 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + odoo.module.version + + + + + + + + + +
+ + + + + + +
+

+

+
+ +

+ + + + + +
+
+
+
+
+
+
+ diff --git a/github_connector_odoo/views/view_reporting.xml b/github_connector_odoo/views/view_reporting.xml index 3c7ba137..5e22861b 100644 --- a/github_connector_odoo/views/view_reporting.xml +++ b/github_connector_odoo/views/view_reporting.xml @@ -11,6 +11,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + From 1abcba9a93ff0f376def9340d6f01fffe78ad997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Sun, 3 Dec 2017 13:30:16 +0100 Subject: [PATCH 03/46] [FIX] _compute_dependency_module_ids --- github_connector_odoo/models/odoo_module_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github_connector_odoo/models/odoo_module_version.py b/github_connector_odoo/models/odoo_module_version.py index 99e6ad28..f9790d41 100644 --- a/github_connector_odoo/models/odoo_module_version.py +++ b/github_connector_odoo/models/odoo_module_version.py @@ -215,8 +215,8 @@ def _compute_description_rst_html(self): @api.depends('depends') def _compute_dependency_module_ids(self): module_obj = self.env['odoo.module'] - modules = [] for version in self: + modules = [] for module_name in version.depends.split(','): if module_name: # Weird case, some times 'depends' field is empty From a42d4961c2f5a48b34d541dc00182f232543d1dc Mon Sep 17 00:00:00 2001 From: cubells Date: Mon, 21 May 2018 19:14:08 +0200 Subject: [PATCH 04/46] [MIG] : Migration to 11.0 --- github_connector_odoo/README.rst | 15 +++++++++------ github_connector_odoo/__init__.py | 1 - .../{__openerp__.py => __manifest__.py} | 3 +-- github_connector_odoo/models/__init__.py | 1 - .../models/github_organization.py | 3 +-- github_connector_odoo/models/github_repository.py | 11 +++++------ .../models/github_repository_branch.py | 7 +++---- github_connector_odoo/models/odoo_author.py | 3 +-- github_connector_odoo/models/odoo_lib_bin.py | 3 +-- github_connector_odoo/models/odoo_lib_python.py | 3 +-- github_connector_odoo/models/odoo_license.py | 3 +-- github_connector_odoo/models/odoo_module.py | 5 ++--- .../models/odoo_module_version.py | 13 ++++++------- .../views/view_github_repository_branch.xml | 2 +- github_connector_odoo/views/view_odoo_author.xml | 4 +++- github_connector_odoo/views/view_odoo_lib_bin.xml | 4 +++- .../views/view_odoo_lib_python.xml | 4 +++- github_connector_odoo/views/view_odoo_license.xml | 9 +++++++-- github_connector_odoo/views/view_odoo_module.xml | 8 ++++++-- 19 files changed, 54 insertions(+), 48 deletions(-) rename github_connector_odoo/{__openerp__.py => __manifest__.py} (95%) diff --git a/github_connector_odoo/README.rst b/github_connector_odoo/README.rst index 45ee1f85..8bfe291b 100644 --- a/github_connector_odoo/README.rst +++ b/github_connector_odoo/README.rst @@ -1,12 +1,13 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :alt: License: AGPL-3 +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl + :alt: License: AGPL-3 ========================================================= Analyze Odoo modules information from Github repositories ========================================================= -This module was written to extend the functionality of 'Github Connector' Module -if your repositories contain Odoo Modules. +This module was written to extend the functionality of 'Github Connector' +Module if your repositories contain Odoo Modules. It extends 'Analysis' features to parse code files (readme / manifest files) and add new models and menus. @@ -18,7 +19,8 @@ Configuration * Once installed, go to your organization, and set extra settings: -1. The name of your organization in the author keys of the manifest odoo modules +1. The name of your organization in the author keys of the manifest odoo + modules 2. The URL of the file that contains IDs of your repositories for the runbot .. image:: /github_connector_odoo/static/description/github_organization_form.png @@ -74,7 +76,7 @@ manifest file. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/229/10.0 + :target: https://runbot.odoo-community.org/runbot/229/11.0 Reporting ========= @@ -117,6 +119,7 @@ Contributors ------------ * Sylvain LE GAL (https://twitter.com/legalsylvain) +* Vicent Cubells Maintainer ---------- diff --git a/github_connector_odoo/__init__.py b/github_connector_odoo/__init__.py index 402ac47e..0650744f 100644 --- a/github_connector_odoo/__init__.py +++ b/github_connector_odoo/__init__.py @@ -1,2 +1 @@ -# -#- coding: utf-8 -#- from . import models diff --git a/github_connector_odoo/__openerp__.py b/github_connector_odoo/__manifest__.py similarity index 95% rename from github_connector_odoo/__openerp__.py rename to github_connector_odoo/__manifest__.py index 2deed3b0..05fc958b 100644 --- a/github_connector_odoo/__openerp__.py +++ b/github_connector_odoo/__manifest__.py @@ -1,11 +1,10 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { 'name': 'Github Connector - Odoo', 'summary': 'Analyze Odoo modules information from Github repositories', - 'version': '10.0.1.0.0', + 'version': '11.0.1.0.0', 'category': 'Connector', 'license': 'AGPL-3', 'author': 'Odoo Community Association (OCA), Sylvain LE GAL, GRAP', diff --git a/github_connector_odoo/models/__init__.py b/github_connector_odoo/models/__init__.py index e41a57f1..efea12cf 100644 --- a/github_connector_odoo/models/__init__.py +++ b/github_connector_odoo/models/__init__.py @@ -1,4 +1,3 @@ -# -#- coding: utf-8 -#- from . import odoo_author from . import odoo_license from . import odoo_lib_bin diff --git a/github_connector_odoo/models/github_organization.py b/github_connector_odoo/models/github_organization.py index eeca583a..c330152a 100644 --- a/github_connector_odoo/models/github_organization.py +++ b/github_connector_odoo/models/github_organization.py @@ -1,10 +1,9 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models, fields +from odoo import fields, models class GithubOrganization(models.Model): diff --git a/github_connector_odoo/models/github_repository.py b/github_connector_odoo/models/github_repository.py index 1a3a6d3c..c033c188 100644 --- a/github_connector_odoo/models/github_repository.py +++ b/github_connector_odoo/models/github_repository.py @@ -1,12 +1,11 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -import urllib2 +from urllib.request import Request, urlopen from collections import defaultdict -from openerp import models, fields, api +from odoo import api, fields, models class GithubRepository(models.Model): @@ -25,10 +24,10 @@ def _compute_runbot_id_external(self): for repository in self: url_done[repository.organization_id].append(repository) - for organization_id, repositories in url_done.iteritems(): + for organization_id, repositories in url_done.items(): if organization_id.runbot_parse_url: - runbot_list = urllib2.urlopen( - urllib2.Request( + runbot_list = urlopen( + Request( organization_id.runbot_parse_url)).read().split('\n') for item in runbot_list: for repository in repositories: diff --git a/github_connector_odoo/models/github_repository_branch.py b/github_connector_odoo/models/github_repository_branch.py index 88f5897b..f6b5f237 100644 --- a/github_connector_odoo/models/github_repository_branch.py +++ b/github_connector_odoo/models/github_repository_branch.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). @@ -8,9 +7,9 @@ from os.path import join as opj -from openerp import models, fields, api +from odoo import api, fields, models -from openerp.modules import load_information_from_description_file +from odoo.modules import load_information_from_description_file # Hard define this value to make this module working with or without # the patch (that backports V10 manifests analysis code. @@ -108,7 +107,7 @@ def analyze_code_one(self, branch): path)) else: # Analyze folders and create module versions - _logger.info("Analyzing repository %s ..." % (path)) + _logger.info("Analyzing repository %s ..." % path) for module_name in self.listdir(path): full_module_path = os.path.join(path, module_name) module_info = load_information_from_description_file( diff --git a/github_connector_odoo/models/odoo_author.py b/github_connector_odoo/models/odoo_author.py index f594d6d6..4299086d 100644 --- a/github_connector_odoo/models/odoo_author.py +++ b/github_connector_odoo/models/odoo_author.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models, fields, api +from odoo import api, fields, models class OdooAuthor(models.Model): diff --git a/github_connector_odoo/models/odoo_lib_bin.py b/github_connector_odoo/models/odoo_lib_bin.py index 7bb9214c..5e442b67 100644 --- a/github_connector_odoo/models/odoo_lib_bin.py +++ b/github_connector_odoo/models/odoo_lib_bin.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models, fields, api +from odoo import api, fields, models class OdooLibBin(models.Model): diff --git a/github_connector_odoo/models/odoo_lib_python.py b/github_connector_odoo/models/odoo_lib_python.py index 1e70c119..02331ebc 100644 --- a/github_connector_odoo/models/odoo_lib_python.py +++ b/github_connector_odoo/models/odoo_lib_python.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models, fields, api +from odoo import api, fields, models class OdooLibPython(models.Model): diff --git a/github_connector_odoo/models/odoo_license.py b/github_connector_odoo/models/odoo_license.py index a6c5af95..016bd757 100644 --- a/github_connector_odoo/models/odoo_license.py +++ b/github_connector_odoo/models/odoo_license.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models, fields, api +from odoo import api, fields, models class OdooLicense(models.Model): diff --git a/github_connector_odoo/models/odoo_module.py b/github_connector_odoo/models/odoo_module.py index 530f9f7f..ddb6f98c 100644 --- a/github_connector_odoo/models/odoo_module.py +++ b/github_connector_odoo/models/odoo_module.py @@ -1,10 +1,9 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models, fields, api, _ -from openerp.tools import html_sanitize +from odoo import _, api, fields, models +from odoo.tools import html_sanitize class OdooModule(models.Model): diff --git a/github_connector_odoo/models/odoo_module_version.py b/github_connector_odoo/models/odoo_module_version.py index f9790d41..f25c04fd 100644 --- a/github_connector_odoo/models/odoo_module_version.py +++ b/github_connector_odoo/models/odoo_module_version.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2016-Today: Odoo Community Association (OCA) # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). @@ -8,10 +7,10 @@ from docutils.core import publish_string -from openerp import api, fields, models, tools, _ -from openerp.tools import html_sanitize -from openerp.addons.base.module.module import MyWriter -from openerp.tools.safe_eval import safe_eval +from odoo import _, api, fields, models, tools +from odoo.tools import html_sanitize +from odoo.addons.base.module.module import MyWriter +from odoo.tools.safe_eval import safe_eval _logger = logging.getLogger(__name__) @@ -199,7 +198,7 @@ def _compute_description_rst_html(self): source=version.description_rst, settings_overrides=self._SETTING_OVERRIDES, writer=MyWriter()) - except: + except Exception: output =\ "

" +\ _("Incorrect RST Description") +\ @@ -346,5 +345,5 @@ def create_or_update_from_manifest( image.encode('base64'), size=(96, 96), encoding='base64', filetype='PNG') except Exception: - _logger.warn("Unable to read or resize %s" % icon_path) + _logger.warning("Unable to read or resize %s" % icon_path) module_version.write({'image': resized_image}) diff --git a/github_connector_odoo/views/view_github_repository_branch.xml b/github_connector_odoo/views/view_github_repository_branch.xml index ab03db1f..5e169b6f 100644 --- a/github_connector_odoo/views/view_github_repository_branch.xml +++ b/github_connector_odoo/views/view_github_repository_branch.xml @@ -41,7 +41,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - + Modules diff --git a/github_connector_odoo/views/view_odoo_author.xml b/github_connector_odoo/views/view_odoo_author.xml index 7f5f1467..78969ea1 100644 --- a/github_connector_odoo/views/view_odoo_author.xml +++ b/github_connector_odoo/views/view_odoo_author.xml @@ -31,7 +31,9 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
- - -