TIP: You can type at any time to perform a new search.
Program
program · 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.tools.safe_eval` 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.tools.translate` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Uses the old workflow engine (base.workflow / `trg_validate`): removed in Odoo 11.0, must be rewritten as state-field transitions. migration-workflow · source
- Uses the old workflow engine (base.workflow / `trg_validate`): removed in Odoo 11.0, must be rewritten as state-field transitions. migration-workflow · 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.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.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
- Imports from the old `openerp.tools.translate` 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— Class 'program_result' declares `_defaults` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_close— Class 'program_result_close' still inherits from the old-style `orm.TransientModel` 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_close— Class 'program_result_close' 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_close— Class 'program_result_close' declares `_defaults` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_close_line— Class 'program_result_close_line' still inherits from the old-style `orm.TransientModel` 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_close_line— Class 'program_result_close_line' 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_level— Class 'program_result_level' declares `_defaults` 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_tag— Class 'program_result_tag' declares `_defaults` 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 · sourceprogram_result_target— Class 'program_result_target' declares `_defaults` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_validation— Class 'program_result_validation' still inherits from the old-style `orm.TransientModel` 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_validation— Class 'program_result_validation' 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_validation— Class 'program_result_validation' declares `_defaults` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceprogram_result_validation_line— Class 'program_result_validation_line' still inherits from the old-style `orm.TransientModel` 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_validation_line— Class 'program_result_validation_line' 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_validation_spec— Class 'program_result_validation_spec' 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_validation_spec— Class 'program_result_validation_spec' 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_form— For a target of Odoo 17.0+: view 'view_program_result_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 · 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 · sourceview_program_result_intervention_tree— View 'view_program_result_intervention_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourceview_program_result_level_tree— View 'view_program_result_level_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourceview_program_result_tag_tree— View 'view_program_result_tag_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourceview_program_result_target_tree— View 'view_program_result_target_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourceview_program_result_tree— View 'view_program_result_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · 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.1
- Category
- Program
- Folder size
- 0.2 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, Joao Alfredo Gama Batista, Sandy Carter, Pedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, Sandy, Davin Baragiotta, david Cormier
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- program_budget, program_document, program_evaluation, program_indicator, program_multi_menu, program_team, program_travel
- Description
Program ======= Results Based Management Contributors ------------ * Alexandre Boily (alexandre.boily@savoirfairelinux.com) * Sandy Carter (sandy.carter@savoirfairelinux.com)
Code Analysis
Views touched (18)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
program_result_multi_close |
Result Multi Close Form | program.result.close | form | New |
program_result_multi_validate |
Result Multi Validate Form | program.result.validation | form | New |
view_program_result_calendar |
Result Calendar | program.result | calendar | New |
view_program_result_form |
Result Form | program.result | form | New |
view_program_result_intervention_form |
Program Result Intervention Form | program.result.intervention | form | New |
view_program_result_intervention_search |
Program Result Intervention Search | program.result.intervention | search | New |
view_program_result_intervention_tree |
Program Result Intervention Tree | program.result.intervention | tree | New |
view_program_result_level_form |
Program Result Level Form | program.result.level | form | New |
view_program_result_level_search |
Program Result Level Search | program.result.level | search | New |
view_program_result_level_tree |
Program Result Level Tree | program.result.level | tree | New |
view_program_result_search |
Result Search | program.result | search | New |
view_program_result_tag_form |
Program Result Tag Form | program.result.tag | form | New |
view_program_result_tag_search |
Program Result Tag Search | program.result.tag | search | New |
view_program_result_tag_tree |
Program Result Tag Tree | program.result.tag | tree | New |
view_program_result_target_form |
Program Result Target Form | program.result.target | form | New |
view_program_result_target_search |
Program Result Target Search | program.result.target | search | New |
view_program_result_target_tree |
Program Result Target Tree | program.result.target | tree | New |
view_program_result_tree |
Result Tree | program.result | tree | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (10)
New fields (0)
No new fields.
Public methods (8)-
create(self, cr, user, vals, context=None) -
fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False)Change the readonly fields depending on the groups and the settings of the levels Non-employees cannot edit the form except for changing the state Hide intervention_id in all but last level results Hide pages and fields according to the config parameters of the level -
mass_close(self, cr, user, ids, context=None) -
mass_validate(self, cr, user, ids, context=None) -
name_get(self, cr, user, ids, context=None)Format name as code-name or one or the other if the other doesn't exist -
onchange_parent_depth(self, cr, user, ids, parent_depth, context=None) -
onchange_parent_id(self, cr, user, ids, parent_id, context=None) -
write(self, cr, user, ids, vals, context=None)Clear transversals if tree structure has changed
New fields (0)
No new fields.
Public methods (1)-
run(self, cr, uid, ids, context=None)
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 (6)-
create(self, cr, user, vals, context=None)Create a menu entry for each level Clone regular result view Clone regular result view action Redirect link through ir.values so new view links to new action -
default_validation_spec_ids(self, cr, uid, context=None)Create default validations from validated to closed using groups -
name_get(self, cr, uid, ids, context=None) -
onchange_name(self, cr, uid, ids, name, context=None) -
unlink(self, cr, uid, ids, context=None) -
write(self, cr, user, ids, vals, context=None)Update menu entry for each level
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 (1)-
run(self, cr, uid, ids, context=None)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (1)-
get_all_states(self, cr, uid, context=None)