Project Risk

project_risk
REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/17.0/project_risk
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSOCA-git-bot, Abraham Anes, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - analytic
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - resource
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
With this module you can manage your projects risk using the MOR method.

<https://www.axelos.com/best-practice-solutions/mor/what-is-mor>

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
edit_project edit.project project.project xpath Inherits project.edit_project
project_completion_kanban project.completion.kanban project.project xpath Inherits project.view_project_kanban
project_risk_category_form_view project.risk.category form New
project_risk_category_tree_view project.risk.category tree New
project_risk_form_view project.risk form New
project_risk_response_category_form_view project.risk.response.category form New
project_risk_response_category_tree_view project.risk.response.category tree New
project_risk_search_view project.risk search New
project_risk_tree_view project.risk tree New
Models touched (5)

New fields (2)
  • project_risk_count Integer
    compute='_compute_risk_count'
  • project_risk_ids One2many → project.risk
    comodel_name='project.risk' inverse_name='project_id'
Public methods (1)
  • view_risk(self)

New fields (13)
  • actionee_id Many2one → res.users
    comodel_name='res.users' string='Actionee' tracking=True
  • description Html
  • impact Selection
    required=True selection=[('1', 'Trivial'), ('2', 'Minor'), ('3', 'Moderate'), ('4', 'Significant'), ('5', 'Extreme')]
  • name Char
    required=1
  • owner_id Many2one → res.users
    comodel_name='res.users' string='Owner' tracking=True
  • probability Selection
    required=True selection=[('1', 'Rare'), ('2', 'Unlikely'), ('3', 'Possible'), ('4', 'Likely'), ('5', 'Very likely')] tracking=True
  • project_id Many2one → project.project
    comodel_name='project.project' required=True
  • project_risk_category_id Many2one → project.risk.category
    comodel_name='project.risk.category' required=True string='Category'
  • project_risk_response_category_id Many2one → project.risk.response.category
    comodel_name='project.risk.response.category' string='Response Category'
  • project_risk_response_ids One2many → project.risk.response
    comodel_name='project.risk.response' inverse_name='project_risk_id' string='Response'
  • proximity Selection
    selection=[('1', 'Very low'), ('2', 'Low'), ('3', 'Medium'), ('4', 'High'), ('5', 'Very High'), ('6', 'Imminent')] tracking=True
  • rating Selection
    compute='_compute_rating' selection=[('1', 'N/A'), ('2', 'Trivial'), ('3', 'Very Low'), ('4', 'Low'), ('5', 'Low-Medium'), ('6', 'Medium'), ('7', 'Medium-High'), ('8', 'High'), ('9', 'Very High'), ('10', 'Critical')] store=True
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('active', 'Active'), ('closed', 'Closed')] tracking=True
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • description Char
  • project_risk_id Many2one → project.risk
    comodel_name='project.risk'
  • sequence Integer
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/16.0/project_risk
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Heliconia Solutions
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - analytic
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - resource
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
edit_project edit.project project.project xpath Inherits project.edit_project
project_completion_kanban project.completion.kanban project.project xpath Inherits project.view_project_kanban
project_risk_category_form_view project.risk.category form New
project_risk_category_tree_view project.risk.category tree New
project_risk_form_view project.risk form New
project_risk_response_category_form_view project.risk.response.category form New
project_risk_response_category_tree_view project.risk.response.category tree New
project_risk_search_view project.risk search New
project_risk_tree_view project.risk tree New
Models touched (5)

New fields (2)
  • project_risk_count Integer
    compute='_compute_risk_count'
  • project_risk_ids One2many → project.risk
    comodel_name='project.risk' inverse_name='project_id'
Public methods (1)
  • view_risk(self)

New fields (13)
  • actionee_id Many2one → res.users
    comodel_name='res.users' string='Actionee' tracking=True
  • description Html
  • impact Selection
    required=True selection=[('1', 'Trivial'), ('2', 'Minor'), ('3', 'Moderate'), ('4', 'Significant'), ('5', 'Extreme')]
  • name Char
    required=1
  • owner_id Many2one → res.users
    comodel_name='res.users' string='Owner' tracking=True
  • probability Selection
    required=True selection=[('1', 'Rare'), ('2', 'Unlikely'), ('3', 'Possible'), ('4', 'Likely'), ('5', 'Very likely')] tracking=True
  • project_id Many2one → project.project
    comodel_name='project.project' required=True
  • project_risk_category_id Many2one → project.risk.category
    comodel_name='project.risk.category' required=True string='Category'
  • project_risk_response_category_id Many2one → project.risk.response.category
    comodel_name='project.risk.response.category' string='Response Category'
  • project_risk_response_ids One2many → project.risk.response
    comodel_name='project.risk.response' inverse_name='project_risk_id' string='Response'
  • proximity Selection
    selection=[('1', 'Very low'), ('2', 'Low'), ('3', 'Medium'), ('4', 'High'), ('5', 'Very High'), ('6', 'Imminent')] tracking=True
  • rating Selection
    compute='_compute_rating' selection=[('1', 'N/A'), ('2', 'Trivial'), ('3', 'Very Low'), ('4', 'Low'), ('5', 'Low-Medium'), ('6', 'Medium'), ('7', 'Medium-High'), ('8', 'High'), ('9', 'Very High'), ('10', 'Critical')] store=True
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('active', 'Active'), ('closed', 'Closed')] tracking=True
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • description Char
  • project_risk_id Many2one → project.risk
    comodel_name='project.risk'
  • sequence Integer
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/13.0/project_risk
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSErnesto Tejeda, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - analytic
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - resource
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
edit_project edit.project project.project xpath Inherits project.edit_project
project_completion_kanban project.completion.kanban project.project xpath Inherits project.view_project_kanban
project_risk_category_form_view project.risk.category form New
project_risk_category_tree_view project.risk.category tree New
project_risk_form_view project.risk form New
project_risk_response_category_form_view project.risk.response.category form New
project_risk_response_category_tree_view project.risk.response.category tree New
project_risk_search_view project.risk search New
project_risk_tree_view project.risk tree New
Models touched (5)

New fields (2)
  • project_risk_count Integer
    compute='_compute_risk_count'
  • project_risk_ids One2many → project.risk
    comodel_name='project.risk' inverse_name='project_id'
Public methods (1)
  • view_risk(self)

New fields (13)
  • actionee_id Many2one → res.users
    comodel_name='res.users' string='Actionee' tracking=True
  • description Html
  • impact Selection
    required=True selection=[('1', 'Trivial'), ('2', 'Minor'), ('3', 'Moderate'), ('4', 'Significant'), ('5', 'Extreme')]
  • name Char
    required=1
  • owner_id Many2one → res.users
    comodel_name='res.users' string='Owner' tracking=True
  • probability Selection
    required=True selection=[('1', 'Rare'), ('2', 'Unlikely'), ('3', 'Possible'), ('4', 'Likely'), ('5', 'Very likely')] tracking=True
  • project_id Many2one → project.project
    comodel_name='project.project' required=True
  • project_risk_category_id Many2one → project.risk.category
    comodel_name='project.risk.category' required=True string='Category'
  • project_risk_response_category_id Many2one → project.risk.response.category
    comodel_name='project.risk.response.category' string='Response Category'
  • project_risk_response_ids One2many → project.risk.response
    comodel_name='project.risk.response' inverse_name='project_risk_id' string='Response'
  • proximity Selection
    selection=[('1', 'Very low'), ('2', 'Low'), ('3', 'Medium'), ('4', 'High'), ('5', 'Very High'), ('6', 'Imminent')] tracking=True
  • rating Selection
    compute='_compute_rating' selection=[('1', 'N/A'), ('2', 'Trivial'), ('3', 'Very Low'), ('4', 'Low'), ('5', 'Low-Medium'), ('6', 'Medium'), ('7', 'Medium-High'), ('8', 'High'), ('9', 'Very High'), ('10', 'Critical')] store=True
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('active', 'Active'), ('closed', 'Closed')] tracking=True
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • description Char
  • project_risk_id Many2one → project.risk
    comodel_name='project.risk'
  • sequence Integer
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/12.0/project_risk
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSOCA Transbot, Ernesto Tejeda, oca-travis, Weblate, OCA-git-bot, Marcel Savegnago, Manuel Calero
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - portal
    - http_routing
    - rating
    - resource
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
edit_project edit.project project.project xpath Inherits project.edit_project
project_completion_kanban project.completion.kanban project.project xpath Inherits project.view_project_kanban
project_risk_category_form_view project.risk.category form New
project_risk_category_tree_view project.risk.category tree New
project_risk_form_view project.risk form New
project_risk_response_category_form_view project.risk.response.category form New
project_risk_response_category_tree_view project.risk.response.category tree New
project_risk_search_view project.risk search New
project_risk_tree_view project.risk tree New
Models touched (5)

New fields (2)
  • project_risk_count Integer
    compute='_compute_risk_count'
  • project_risk_ids One2many → project.risk
    comodel_name='project.risk' inverse_name='project_id'
Public methods (1)
  • view_risk(self)

New fields (13)
  • actionee_id Many2one → res.users
    comodel_name='res.users' string='Actionee' track_visibility='onchange'
  • description Html
  • impact Selection
    required=True selection=list(IMPACT.items())
  • name Char
    required=1
  • owner_id Many2one → res.users
    comodel_name='res.users' string='Owner' track_visibility='onchange'
  • probability Selection
    required=True selection=list(PROBABILITY.items()) track_visibility='onchange'
  • project_id Many2one → project.project
    comodel_name='project.project' required=True
  • project_risk_category_id Many2one → project.risk.category
    comodel_name='project.risk.category' required=True string='Category'
  • project_risk_response_category_id Many2one → project.risk.response.category
    comodel_name='project.risk.response.category' string='Response Category'
  • project_risk_response_ids One2many → project.risk.response
    comodel_name='project.risk.response' inverse_name='project_risk_id' string='Response'
  • proximity Selection
    selection=list(PROXIMITY.items()) track_visibility='onchange'
  • rating Selection
    compute='_compute_rating' selection=list(RATING.items()) store=True
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('active', 'Active'), ('closed', 'Closed')] track_visibility='onchange'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • description Char
  • project_risk_id Many2one → project.risk
    comodel_name='project.risk'
  • sequence Integer
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/11.0/project_risk
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSOCA Transbot, Ernesto Tejeda, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - portal
    - http_routing
    - resource
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
edit_project edit.project project.project xpath Inherits project.edit_project
project_completion_kanban project.completion.kanban project.project xpath Inherits project.view_project_kanban
project_risk_category_form_view project.risk.category form New
project_risk_category_tree_view project.risk.category tree New
project_risk_form_view project.risk form New
project_risk_response_category_form_view project.risk.response.category form New
project_risk_response_category_tree_view project.risk.response.category tree New
project_risk_search_view project.risk search New
project_risk_tree_view project.risk tree New
Models touched (5)

New fields (2)
  • project_risk_count Integer
    compute='_compute_risk_count'
  • project_risk_ids One2many → project.risk
    comodel_name='project.risk' inverse_name='project_id'
Public methods (1)
  • view_risk(self)
    @api.multi

New fields (13)
  • actionee_id Many2one → res.users
    comodel_name='res.users' string='Actionee' track_visibility='onchange'
  • description Html
  • impact Selection
    required=True selection=list(IMPACT.items())
  • name Char
    required=1
  • owner_id Many2one → res.users
    comodel_name='res.users' string='Owner' track_visibility='onchange'
  • probability Selection
    required=True selection=list(PROBABILITY.items()) track_visibility='onchange'
  • project_id Many2one → project.project
    comodel_name='project.project' required=True
  • project_risk_category_id Many2one → project.risk.category
    comodel_name='project.risk.category' required=True string='Category'
  • project_risk_response_category_id Many2one → project.risk.response.category
    comodel_name='project.risk.response.category' string='Response Category'
  • project_risk_response_ids One2many → project.risk.response
    comodel_name='project.risk.response' inverse_name='project_risk_id' string='Response'
  • proximity Selection
    selection=list(PROXIMITY.items()) track_visibility='onchange'
  • rating Selection
    compute='_compute_rating' selection=list(RATING.items()) store=True
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('active', 'Active'), ('closed', 'Closed')] track_visibility='onchange'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • description Char
  • project_risk_id Many2one → project.risk
    comodel_name='project.risk'
  • sequence Integer
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/project
PULL REQUEST
PULL REQUEST[MIG] project_risk: Migration to 18.0 (#1762)