TIP: You can type at any time to perform a new search.
Program Multi-Menu
program_multi_menu · OCA/program
Security findings
Migration considerations
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.tools.translate` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- For a target of Odoo 10.0+: use the `__manifest__.py` manifest name instead of `__openerp__.py`. The filename alone does not establish module age or compatibility. migration-openerp-manifest · source
program_result— Class 'program_result' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceprogram_result— Class 'program_result' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_intervention— Class 'program_result_intervention' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceprogram_result_intervention— Class 'program_result_intervention' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_level— Class 'program_result_level' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceprogram_result_level— Class 'program_result_level' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_tag— Class 'program_result_tag' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceprogram_result_tag— Class 'program_result_tag' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_target— Class 'program_result_target' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceprogram_result_target— Class 'program_result_target' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceview_program_result_level_form— For a target of Odoo 17.0+: view 'view_program_result_level_form' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/program · module folder · Try on Runboat
- Module version
- 1.10
- Category
- Program
- Folder size
- 0.06 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- http://www.savoirfairelinux.com
- Last tracking update
- 2026-08-07 06:56:14
- Authors
- Savoir-faire Linux, Odoo Community Association (OCA)
- Maintainers
- Savoir-faire Linux, Odoo Community Association (OCA)
- Committers
- Alexandre Fayolle, Sandy Carter, Pedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- program_multi_menu_budget, program_multi_menu_evaluation, program_multi_menu_indicator, program_multi_menu_team
- Description
Program Multi-Menu ================= Allows different result level chains to be placed in their own menus Adds Custom menu (text field) option to root result level chains. If supplied, a menu will be added to the top OpenERP bar and will stay in sync with the root of the result chain even after chain re-organisation. If not supplied, result menus will be available in main Program menu. Creation of menus is only available to users with technical features enabled. Contributors ------------ * Sandy Carter (sandy.carter@savoirfairelinux.com)
Code Analysis
Views touched (2)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_program_result_form |
program.result | form | Inherits program.view_program_result_form | |
view_program_result_level_form |
program.result.level | form | Inherits program.view_program_result_level_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (5)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (7)-
create(self, cr, user, vals, context=None) -
create_groups(self, cr, user, vals, menu_id, menus_old_to_new, context=None)Copy the ACLs from base program Remove their rights from the original menus and add them to the new menus' equivalents. -
create_menus(self, cr, user, vals, context=None)Copy menus from original Programing menu Create a mapping of these old menus for the new menus so ACLs can be transferred. -
post_write_menu_writes(self, cr, user, ids, parent_id, vals, context=None) -
unlink(self, cr, uid, ids, context=None)If one of the extra RBM menu chains is removed, remove menu and all other related models -
validate_vals(self, vals) -
write(self, cr, user, ids, vals, context=None)Bubble up Top Menu configuration if chain root changes
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.