Repository
OCA/module-composition-analysis · module folder · Try on Runboat
Module version
Category
Tools
Folder size
0.13 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/module-composition-analysis
Last tracking update
2026-08-19 17:25:11
Authors
Camptocamp, Odoo Community Association (OCA)
Maintainers
Camptocamp, Odoo Community Association (OCA)
Committers
Laurent Mignon (ACSONE), Sébastien Alix, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
OCA/connector:
OCA/module-composition-analysis:
OCA/queue:
OCA/server-tools:
odoo/odoo:
- web
- bus
Python dependencies
gitpython, odoo-addons-parser, pyyaml, requests, cachetools
System dependencies
None
Required by
odoo_project_changelog, odoo_project_migration
Description
This module allows you to declare your Odoo projects with the list of installed modules.

Based on the data collected by `odoo_repository` module, it will:

- give some code stats (lines of code, and how they are spread among Odoo/OCA/your organization)
- give the list of modules available for upgrade in current Odoo version (based on module versions)
- list modules still hosted in a pending Pull Request (so not yet merged, could be considered as technical debt)
- list modules available in your project repository (if any) but not installed in your database (dead code)

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
odoo_module_branch_view_form odoo.module.branch.form.inherit odoo.module.branch form Inherits odoo_repository.odoo_module_branch_view_form
odoo_module_branch_view_search odoo.module.branch.search.inherit odoo.module.branch search Inherits odoo_repository.odoo_module_branch_view_search
odoo_project_import_modules_view_form odoo.project.import.modules.form odoo.project.import.modules form New
odoo_project_module_view_form odoo.project.module.form.inherit odoo.project.module form Inherits odoo_repository.odoo_module_branch_view_form
odoo_project_module_view_pivot odoo.project.module.pivot odoo.project.module pivot New
odoo_project_module_view_search odoo.project.module.search.inherit odoo.project.module search Inherits odoo_repository.odoo_module_branch_view_search
odoo_project_module_view_tree odoo.project.module.list.inherit odoo.project.module list Inherits odoo_repository.odoo_module_branch_view_tree
odoo_project_module_view_tree_recursive_dependencies odoo.project.module.list.recursive_dependencies odoo.project.module list Inherits odoo_project_module_view_tree
odoo_project_view_form odoo.project.form odoo.project form New
odoo_project_view_search odoo.project.search odoo.project search New
odoo_project_view_tree odoo.project.list odoo.project list New
odoo_repository_view_form odoo.repository.form.inherit odoo.repository form Inherits odoo_repository.odoo_repository_view_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (2)
  • odoo_project_ids Many2many → odoo.project
    column1='module_branch_id' column2='odoo_project_id' comodel_name='odoo.project' compute='_compute_module_ids' relation='odoo_project_module_branch_rel' store=True string='Projects'
  • odoo_project_module_ids One2many → odoo.project.module
    comodel_name='odoo.project.module' inverse_name='module_branch_id' string='Deployed Modules'
Public methods (0)

No public methods.

New fields (12)
  • active Boolean
    default=True
  • available_odoo_version_ids One2many → odoo.branch
    comodel_name='odoo.branch' compute='_compute_available_odoo_version_ids' string='Available Odoo Versions'
  • module_ids Many2many → odoo.module
    column1='odoo_project_id' column2='module_id' comodel_name='odoo.module' compute='_compute_module_ids' relation='odoo_project_module_rel' store=True string='Modules'
  • module_not_installed_ids Many2many → odoo.module.branch
    comodel_name='odoo.module.branch' compute='_compute_module_not_installed_ids' help='Modules available in the project repository but not installed.' string='Modules not installed'
  • modules_count Integer
    compute='_compute_modules_count'
  • name Char
    index=True required=True
  • odoo_version_id Many2one → odoo.branch
    comodel_name='odoo.branch' index=True ondelete='restrict' store=True string='Odoo Version'
  • project_module_ids One2many → odoo.project.module
    comodel_name='odoo.project.module' inverse_name='odoo_project_id' string='Deployed Modules'
  • repository_branch_id Many2one → odoo.repository.branch
    comodel_name='odoo.repository.branch' compute='_compute_repository_branch_id' index=True store=True string='Repository / Branch'
  • repository_id Many2one → odoo.repository
    comodel_name='odoo.repository' domain=[('specific', '=', True)] help='Repository this project is based on (optional). You can start to build/simulate a project without repository to get some figures.' index=True store=True string='Repository'
  • unknown_module_ids Many2many → odoo.module.branch
    comodel_name='odoo.module.branch' compute='_compute_unknown_module_ids' help='Modules installed but cannot be found among repositories/branches.' string='Modules unknown'
  • unmerged_module_ids Many2many → odoo.module.branch
    comodel_name='odoo.module.branch' compute='_compute_unmerged_module_ids' help='Modules installed belonging to an open PR.' string='Modules to merge'
Public methods (4)
  • action_find_unknown_modules(self)
    Try to locate unknown modules.
  • action_scan(self, force=False)
    Scan all the repositories used by the project.
  • open_import_modules(self)
    Open a wizard to import the modules of this Odoo project.
  • open_modules(self)

New fields (5)
  • additional_module_ids Many2many → odoo.module.branch
    comodel_name='odoo.module.branch' domain="[('branch_id', '=', odoo_version_id), ('repository_id', '!=', False)]" string='Additional Modules'
  • import_missing_dependencies Boolean
    default=False help='Import module dependencies that are not part of the list above to get an exhaustive list of modules installed in the project.'
  • modules_list Text
    help='Copy/paste your list of technical module names here.\nOne module per line with an optional version number (separated by any special character (space, tabulation, comma...).'
  • odoo_project_id Many2one → odoo.project
    comodel_name='odoo.project' required=True string='Project'
  • odoo_version_id Many2one
    related='odoo_project_id.odoo_version_id'
Public methods (1)
  • action_import(self)
    Import the modules for the given Odoo project.

New fields (8)
  • installed_reverse_dependency_ids Many2many → odoo.project.module
    comodel_name='odoo.project.module' compute='_compute_installed_reverse_dependency_ids' string='Installed Reverse Dependencies'
  • installed_version Char
    help='Installed version in project database.'
  • installed_version_id Many2one → odoo.module.branch.version
    comodel_name='odoo.module.branch.version' compute='_compute_installed_version_id' help='If the real installed version is not available in the history of versions (could come from a pending merge not scanned), this field computes the nearest version available.' string='Nearest installed version'
  • migration_scripts Boolean
    compute='_compute_migration_scripts' help='Available migration scripts between installed and last version.' store=True
  • module_branch_id Many2one → odoo.module.branch
    comodel_name='odoo.module.branch' ondelete='cascade' required=True string='Upstream Module'
  • not_installed_reverse_dependency_ids Many2many → odoo.module.branch
    comodel_name='odoo.module.branch' compute='_compute_installed_reverse_dependency_ids' string='Not Installed Reverse Dependencies'
  • odoo_project_id Many2one → odoo.project
    comodel_name='odoo.project' ondelete='cascade' string='Project'
  • to_upgrade Boolean
    compute='_compute_to_upgrade' store=True
Public methods (1)
  • open_recursive_dependencies(self)

New fields (2)
  • project_count Integer
    compute='_compute_project_count'
  • project_ids One2many → odoo.project
    comodel_name='odoo.project' inverse_name='repository_id' string='Projects'
Public methods (1)
  • action_view_projects(self)

Loading…

Status
Open migration PR — not merged yet for this version
CI status
checks failing
Open since
22 days ago
Last activity
7 days ago
Repository
OCA/module-composition-analysis
Pull request
[19.0][MIG] odoo_project (#150)