From 23b2e40c247b8a8b00cf5b7fd088ff870bd4c57e Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Mon, 8 Jul 2019 22:09:24 +0200 Subject: [PATCH] fixup! fixup! [REF] remove use of cloc. use pygount librairy instead --- module_analysis/README.rst | 45 ++++++++++++++++-- module_analysis/models/base_module_update.py | 6 +-- module_analysis/models/ir_module_module.py | 10 ++-- module_analysis/post_init_hook.py | 2 +- module_analysis/readme/CONFIGURE.rst | 13 ++++- module_analysis/readme/USAGE.rst | 2 +- .../static/description/config_parameters.png | Bin 0 -> 7090 bytes .../views/view_base_module_update.xml | 2 +- .../views/view_ir_module_module.xml | 2 +- 9 files changed, 64 insertions(+), 18 deletions(-) create mode 100644 module_analysis/static/description/config_parameters.png diff --git a/module_analysis/README.rst b/module_analysis/README.rst index 7c4986615..db23145d6 100644 --- a/module_analysis/README.rst +++ b/module_analysis/README.rst @@ -54,10 +54,9 @@ Each installed modules have extra data in the 'Technical Data' tab : Installation ============ -To use this module, you have to install the application ``cloc`` - -``sudo apt-get install cloc`` +To use this module, you have to install the ``pygount`` python librairy. +``pip install pygount`` Configuration ============= @@ -88,18 +87,54 @@ to update the data, you have to : This will update analysis of your installed modules. + +Adding Extra data +~~~~~~~~~~~~~~~~~ + +If you want to analyse other data, (for exemple, having the number of HTML +files), create a custom modules and overload the module model : + +.. code-block:: python + + from odoo import api, fields, models + + class IrModuleModule(models.Model): + _inherit = 'ir.module.module' + + xml_documentation_qty = fields.Integer( + string='Quantity of Comments in XML Files') + + @api.model + def _get_analyse_settings(self): + res = super(IrModuleModule, self)._get_analyse_settings() + if not '.html' in res: + res['.html'] = {} + res['.html']['documentation'] 'xml_documentation_qty' + return res + +Exclude files and directories +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Two parameters are availaible in 'Settings' / 'Technical' / 'Parameters' +'System Parameters' : + + .. image:: https://raw.githubusercontent.com/legalsylvain/server-tools/12.0-ADD-module_analysis/module_analysis/static/description/config_parameters.png + +The list of folders and filename will be exclude from the analysis. +You can change the default settings. + Usage ===== * Go to 'Apps' / 'Module Analysis' / 'Installed module by Types' -Open the stats to analyze the detail of the code installed +Open the stats to analyse the detail of the code installed .. image:: https://raw.githubusercontent.com/legalsylvain/server-tools/12.0-ADD-module_analysis/module_analysis/static/description/analysis_pivot.png - .. image:: https://raw.githubusercontent.com/legalsylvain/server-tools/12.0-ADD-module_analysis/module_analysis/static/description/analysis_pie.png + Bug Tracker =========== diff --git a/module_analysis/models/base_module_update.py b/module_analysis/models/base_module_update.py index b56d0e93f..9a884de13 100644 --- a/module_analysis/models/base_module_update.py +++ b/module_analysis/models/base_module_update.py @@ -8,11 +8,11 @@ from odoo import api, fields, models class BaseModuleUpdate(models.TransientModel): _inherit = 'base.module.update' - analyze_installed_modules = fields.Boolean( - string='Analyze Installed Modules', default=True) + analyse_installed_modules = fields.Boolean( + string='Analyse Installed Modules', default=True) @api.multi def update_module(self): return super(BaseModuleUpdate, self.with_context( - analyze_installed_modules=self.analyze_installed_modules) + analyse_installed_modules=self.analyse_installed_modules) ).update_module() diff --git a/module_analysis/models/ir_module_module.py b/module_analysis/models/ir_module_module.py index 779162411..b0418fcc4 100644 --- a/module_analysis/models/ir_module_module.py +++ b/module_analysis/models/ir_module_module.py @@ -84,15 +84,15 @@ class IrModuleModule(models.Model): @api.model def update_list(self): res = super(IrModuleModule, self).update_list() - if self.env.context.get('analyze_installed_modules', False): - self.search([('state', '=', 'installed')]).button_analyze_code() + if self.env.context.get('analyse_installed_modules', False): + self.search([('state', '=', 'installed')]).button_analyse_code() return res @api.multi def write(self, vals): res = super(IrModuleModule, self).write(vals) if vals.get('state', False) == 'installed': - self.button_analyze_code() + self.button_analyse_code() elif vals.get('state', False) == 'uninstalled'\ and 'module_analysis' not in [x.name for x in self]: self.write(self._get_clean_analyse_values()) @@ -100,7 +100,7 @@ class IrModuleModule(models.Model): # Public Section @api.multi - def button_analyze_code(self): + def button_analyse_code(self): IrModuleAuthor = self.env['ir.module.author'] IrModuleTypeRule = self.env['ir.module.type.rule'] rules = IrModuleTypeRule.search([]) @@ -112,7 +112,7 @@ class IrModuleModule(models.Model): exclude_files = [x.strip() for x in val.split(',') if x.strip()] for module in self: - _logger.info("Analyzing Code for module %s ..." % (module.name)) + _logger.info("Analysing Code for module %s ..." % (module.name)) # Update Authors, based on manifest key authors = [] diff --git a/module_analysis/post_init_hook.py b/module_analysis/post_init_hook.py index 3b1ba4697..5f9a882e8 100644 --- a/module_analysis/post_init_hook.py +++ b/module_analysis/post_init_hook.py @@ -10,4 +10,4 @@ def analyse_installed_modules(cr, registry): env = api.Environment(cr, SUPERUSER_ID, {}) installed_modules = env['ir.module.module'].search( [('state', '=', 'installed')]) - installed_modules.button_analyze_code() + installed_modules.button_analyse_code() diff --git a/module_analysis/readme/CONFIGURE.rst b/module_analysis/readme/CONFIGURE.rst index 1cebd460c..8fd3c9f44 100644 --- a/module_analysis/readme/CONFIGURE.rst +++ b/module_analysis/readme/CONFIGURE.rst @@ -28,7 +28,7 @@ This will update analysis of your installed modules. Adding Extra data ~~~~~~~~~~~~~~~~~ -If you want to analyze other data, (for exemple, having the number of HTML +If you want to analyse other data, (for exemple, having the number of HTML files), create a custom modules and overload the module model : .. code-block:: python @@ -48,3 +48,14 @@ files), create a custom modules and overload the module model : res['.html'] = {} res['.html']['documentation'] 'xml_documentation_qty' return res + +Exclude files and directories +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Two parameters are availaible in 'Settings' / 'Technical' / 'Parameters' +'System Parameters' : + + .. image:: ../static/description/config_parameters.png + +The list of folders and filename will be exclude from the analysis. +You can change the default settings. diff --git a/module_analysis/readme/USAGE.rst b/module_analysis/readme/USAGE.rst index a88d6fcfc..2676bb76c 100644 --- a/module_analysis/readme/USAGE.rst +++ b/module_analysis/readme/USAGE.rst @@ -1,6 +1,6 @@ * Go to 'Apps' / 'Module Analysis' / 'Installed module by Types' -Open the stats to analyze the detail of the code installed +Open the stats to analyse the detail of the code installed .. image:: ../static/description/analysis_pivot.png diff --git a/module_analysis/static/description/config_parameters.png b/module_analysis/static/description/config_parameters.png new file mode 100644 index 0000000000000000000000000000000000000000..b11538a8afb11a5c601485da4a45dcb423e885cd GIT binary patch literal 7090 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 - + diff --git a/module_analysis/views/view_ir_module_module.xml b/module_analysis/views/view_ir_module_module.xml index cadb26a00..29baf1d01 100644 --- a/module_analysis/views/view_ir_module_module.xml +++ b/module_analysis/views/view_ir_module_module.xml @@ -12,7 +12,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -