TIP: You can type at any time to perform a new search.
Odoo Project
odoo_project · OCA/module-composition-analysis
- 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
- 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 ID | Name | Model | Type | Status |
|---|---|---|---|---|
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_idsMany2many → odoo.projectcolumn1='module_branch_id'column2='odoo_project_id'comodel_name='odoo.project'compute='_compute_module_ids'relation='odoo_project_module_branch_rel'store=Truestring='Projects' -
odoo_project_module_idsOne2many → odoo.project.modulecomodel_name='odoo.project.module'inverse_name='module_branch_id'string='Deployed Modules'
No public methods.
New fields (12)
-
activeBooleandefault=True -
available_odoo_version_idsOne2many → odoo.branchcomodel_name='odoo.branch'compute='_compute_available_odoo_version_ids'string='Available Odoo Versions' -
module_idsMany2many → odoo.modulecolumn1='odoo_project_id'column2='module_id'comodel_name='odoo.module'compute='_compute_module_ids'relation='odoo_project_module_rel'store=Truestring='Modules' -
module_not_installed_idsMany2many → odoo.module.branchcomodel_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_countIntegercompute='_compute_modules_count' -
nameCharindex=Truerequired=True -
odoo_version_idMany2one → odoo.branchcomodel_name='odoo.branch'index=Trueondelete='restrict'store=Truestring='Odoo Version' -
project_module_idsOne2many → odoo.project.modulecomodel_name='odoo.project.module'inverse_name='odoo_project_id'string='Deployed Modules' -
repository_branch_idMany2one → odoo.repository.branchcomodel_name='odoo.repository.branch'compute='_compute_repository_branch_id'index=Truestore=Truestring='Repository / Branch' -
repository_idMany2one → odoo.repositorycomodel_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=Truestore=Truestring='Repository' -
unknown_module_idsMany2many → odoo.module.branchcomodel_name='odoo.module.branch'compute='_compute_unknown_module_ids'help='Modules installed but cannot be found among repositories/branches.'string='Modules unknown' -
unmerged_module_idsMany2many → odoo.module.branchcomodel_name='odoo.module.branch'compute='_compute_unmerged_module_ids'help='Modules installed belonging to an open PR.'string='Modules to merge'
-
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_idsMany2many → odoo.module.branchcomodel_name='odoo.module.branch'domain="[('branch_id', '=', odoo_version_id), ('repository_id', '!=', False)]"string='Additional Modules' -
import_missing_dependenciesBooleandefault=Falsehelp='Import module dependencies that are not part of the list above to get an exhaustive list of modules installed in the project.' -
modules_listTexthelp='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_idMany2one → odoo.projectcomodel_name='odoo.project'required=Truestring='Project' -
odoo_version_idMany2onerelated='odoo_project_id.odoo_version_id'
-
action_import(self)Import the modules for the given Odoo project.
New fields (8)
-
installed_reverse_dependency_idsMany2many → odoo.project.modulecomodel_name='odoo.project.module'compute='_compute_installed_reverse_dependency_ids'string='Installed Reverse Dependencies' -
installed_versionCharhelp='Installed version in project database.' -
installed_version_idMany2one → odoo.module.branch.versioncomodel_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_scriptsBooleancompute='_compute_migration_scripts'help='Available migration scripts between installed and last version.'store=True -
module_branch_idMany2one → odoo.module.branchcomodel_name='odoo.module.branch'ondelete='cascade'required=Truestring='Upstream Module' -
not_installed_reverse_dependency_idsMany2many → odoo.module.branchcomodel_name='odoo.module.branch'compute='_compute_installed_reverse_dependency_ids'string='Not Installed Reverse Dependencies' -
odoo_project_idMany2one → odoo.projectcomodel_name='odoo.project'ondelete='cascade'string='Project' -
to_upgradeBooleancompute='_compute_to_upgrade'store=True
-
open_recursive_dependencies(self)
New fields (2)
-
project_countIntegercompute='_compute_project_count' -
project_idsOne2many → odoo.projectcomodel_name='odoo.project'inverse_name='repository_id'string='Projects'
-
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)