Purchase Order security

purchase_security
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/19.0/purchase_security
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This addon creates new groups in Purchase.

Visibility of purchase orders is restricted for users in these groups.
You can only see the purchase order:

- User (own orders): If you are a follower of the partner or there is no
  user or you are the partner's user.
- User (team orders): If you are a follower of the partner or there is
  no user or you are a user of your purchasing team.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
purchase_order_form purchase.order.form (in purchase_security) purchase.order field Inherits purchase.purchase_order_form
purchase_team_form purchase.team.form purchase.team form New
purchase_team_tree purchase.team.form purchase.team list New
view_partner_property_form res.partner.property.form.inherit res.partner field Inherits account.view_partner_property_form
view_partner_tree res.partner.tree res.partner field Inherits base.view_partner_tree
view_res_partner_filter res.partner.select res.partner field Inherits base.view_res_partner_filter
Models touched (6)

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 (2)
  • is_user_id_editable Boolean
    compute='_compute_is_user_id_editable'
  • team_id Many2one → purchase.team
    bypass_search_access=True compute='_compute_team_id' index=True readonly=False store=True string='Team' args: 'purchase.team'
Public methods (1)
  • onchange_partner_id(self)
    @api.onchange('partner_id')

New fields (3)
  • name Char
    required=True
  • sequence Integer
    default=10
  • user_ids Many2many → res.users
    column1='purchase_team_id' column2='res_users_id' comodel_name='res.users' relation='purchase_team_res_users_rel' string='Purchase Users'
Public methods (1)
  • open_form_view(self)
    Allow to open the form view from the editable tree view. The main reason to use the form view is to manage the team members of larger teams. The many2many_avatar_user widget in the tree view does not allow to remove some of the users if ellipsis ('+3') is triggered in the widget.

New fields (2)
  • purchase_team_id Many2one → purchase.team
    comodel_name='purchase.team' index=True string='Purchase team'
  • purchase_user_id Many2one → res.users
    comodel_name='res.users' domain="[('share', '=', False)]" index=True string='Purchase representative'
Public methods (0)

No public methods.

New fields (1)
  • purchase_team_ids Many2many → purchase.team
    check_company=True column1='res_users_id' column2='purchase_team_id' comodel_name='purchase.team' copy=False readonly=True relation='purchase_team_res_users_rel' string='Purchases Teams'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/18.0/purchase_security
VERSION
VERSION 1.1.2
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSStefan Rijnhart, Víctor Martínez, Florian da Costa, Weblate, OCA-git-bot, oca-ci, ricardoMC
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This addon creates new groups in Purchase.

Visibility of purchase orders is restricted for users in these groups.
You can only see the purchase order:

- User (own orders): If you are a follower of the partner or there is no
  user or you are the partner's user.
- User (team orders): If you are a follower of the partner or there is
  no user or you are a user of your purchasing team.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
purchase_order_form purchase.order.form (in purchase_security) purchase.order field Inherits purchase.purchase_order_form
purchase_team_form purchase.team.form purchase.team form New
purchase_team_tree purchase.team.form purchase.team list New
view_partner_property_form res.partner.property.form.inherit res.partner field Inherits account.view_partner_property_form
view_partner_tree res.partner.tree res.partner field Inherits base.view_partner_tree
view_res_partner_filter res.partner.select res.partner field Inherits base.view_res_partner_filter
Models touched (6)

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 (2)
  • is_user_id_editable Boolean
    compute='_compute_is_user_id_editable'
  • team_id Many2one → purchase.team
    auto_join=True compute='_compute_team_id' index=True readonly=False store=True string='Team' args: 'purchase.team'
Public methods (1)
  • onchange_partner_id(self)
    @api.onchange('partner_id')

New fields (3)
  • name Char
    required=True
  • sequence Integer
    default=10
  • user_ids Many2many → res.users
    column1='purchase_team_id' column2='res_users_id' comodel_name='res.users' relation='purchase_team_res_users_rel' string='Purchase Users'
Public methods (1)
  • open_form_view(self)
    Allow to open the form view from the editable tree view. The main reason to use the form view is to manage the team members of larger teams. The many2many_avatar_user widget in the tree view does not allow to remove some of the users if ellipsis ('+3') is triggered in the widget.

New fields (2)
  • purchase_team_id Many2one → purchase.team
    comodel_name='purchase.team' index=True string='Purchase team'
  • purchase_user_id Many2one → res.users
    comodel_name='res.users' domain="[('share', '=', False)]" index=True string='Purchase representative'
Public methods (0)

No public methods.

New fields (1)
  • purchase_team_ids Many2many → purchase.team
    check_company=True column1='res_users_id' column2='purchase_team_id' comodel_name='purchase.team' copy=False readonly=True relation='purchase_team_res_users_rel' string='Purchases Teams'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/17.0/purchase_security
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSStefan Rijnhart, GitHub, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Deriman-Alonso
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This addon creates new groups in Purchase.

Visibility of purchase orders is restricted for users in these groups.
You can only see the purchase order:

- User (own orders): If you are a follower of the partner or there is no
  user or you are the partner's user.
- User (team orders): If you are a follower of the partner or there is
  no user or you are a user of your purchasing team.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
purchase_order_form purchase.order.form (in purchase_security) purchase.order field Inherits purchase.purchase_order_form
purchase_team_form purchase.team.form purchase.team form New
purchase_team_tree purchase.team.form purchase.team tree New
view_partner_property_form res.partner.property.form.inherit res.partner field Inherits account.view_partner_property_form
view_partner_tree res.partner.tree res.partner field Inherits base.view_partner_tree
view_res_partner_filter res.partner.select res.partner field Inherits base.view_res_partner_filter
Models touched (6)

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 (2)
  • is_user_id_editable Boolean
    compute='_compute_is_user_id_editable'
  • team_id Many2one → purchase.team
    auto_join=True compute='_compute_team_id' index=True readonly=False store=True string='Team' args: 'purchase.team'
Public methods (1)
  • onchange_partner_id(self)
    @api.onchange('partner_id')

New fields (3)
  • name Char
    required=True
  • sequence Integer
    default=10
  • user_ids Many2many → res.users
    column1='purchase_team_id' column2='res_users_id' comodel_name='res.users' relation='purchase_team_res_users_rel' string='Purchase Users'
Public methods (1)
  • open_form_view(self)
    Allow to open the form view from the editable tree view. The main reason to use the form view is to manage the team members of larger teams. The many2many_avatar_user widget in the tree view does not allow to remove some of the users if ellipsis ('+3') is triggered in the widget.

New fields (2)
  • purchase_team_id Many2one → purchase.team
    comodel_name='purchase.team' index=True string='Purchase team'
  • purchase_user_id Many2one → res.users
    comodel_name='res.users' domain="[('share', '=', False)]" index=True string='Purchase representative'
Public methods (0)

No public methods.

New fields (1)
  • purchase_team_ids Many2many → purchase.team
    check_company=True column1='res_users_id' column2='purchase_team_id' comodel_name='purchase.team' copy=False readonly=True relation='purchase_team_res_users_rel' string='Purchases Teams'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/16.0/purchase_security
VERSION
VERSION 2.0.2
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSCarlos Lopez, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, David Alonso // Solvos, Yannis Burkhalter
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
purchase_order_form purchase.order.form (in purchase_security) purchase.order field Inherits purchase.purchase_order_form
purchase_team_form purchase.team.form purchase.team form New
purchase_team_tree purchase.team.form purchase.team tree New
view_partner_property_form res.partner.property.form.inherit res.partner field Inherits account.view_partner_property_form
view_partner_tree res.partner.tree res.partner field Inherits base.view_partner_tree
view_res_partner_filter res.partner.select res.partner field Inherits base.view_res_partner_filter
Models touched (5)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • is_user_id_editable Boolean
    compute='_compute_is_user_id_editable'
  • team_id Many2one → purchase.team
    auto_join=True compute='_compute_team_id' index=True readonly=False store=True string='Team' args: 'purchase.team'
Public methods (1)
  • onchange_partner_id(self)
    @api.onchange('partner_id')

New fields (3)
  • name Char
    required=True
  • sequence Integer
    default=10
  • user_ids Many2many → res.users
    column1='purchase_team_id' column2='res_users_id' comodel_name='res.users' relation='purchase_team_res_users_rel' string='Purchase Users'
Public methods (0)

No public methods.

New fields (2)
  • purchase_team_id Many2one → purchase.team
    comodel_name='purchase.team' index=True string='Purchase team'
  • purchase_user_id Many2one → res.users
    comodel_name='res.users' domain="[('share', '=', False)]" index=True string='Purchase representative'
Public methods (0)

No public methods.

New fields (1)
  • purchase_team_ids Many2many → purchase.team
    check_company=True column1='res_users_id' column2='purchase_team_id' comodel_name='purchase.team' copy=False readonly=True relation='purchase_team_res_users_rel' string='Purchases Teams'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/15.0/purchase_security
VERSION
VERSION 4.0.0
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa, David Alonso // Solvos
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
purchase_order_form_all_group_orders purchase.order.form (all orders) purchase.order field Inherits purchase.purchase_order_form
purchase_order_form_all_orders purchase.order.form (all orders) purchase.order field Inherits purchase_order_form_own_orders
purchase_order_form_own_orders purchase.order.form (own orders) purchase.order field Inherits purchase.purchase_order_form
purchase_order_form_view purchase.order.form purchase.order xpath Inherits purchase.purchase_order_form
purchase_team_form purchase.team.form purchase.team form New
purchase_team_tree purchase.team.form purchase.team tree New
view_partner_property_form res.partner.property.form.inherit res.partner field Inherits account.view_partner_property_form
view_partner_tree res.partner.tree res.partner field Inherits base.view_partner_tree
view_res_partner_filter res.partner.select res.partner field Inherits base.view_res_partner_filter
Models touched (5)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • team_id Many2one → purchase.team
    auto_join=True compute='_compute_team_id' index=True readonly=False store=True string='Team' args: 'purchase.team'
Public methods (1)
  • onchange_partner_id(self)

New fields (3)
  • name Char
    required=True
  • sequence Integer
    default=10
  • user_ids Many2many → res.users
    column1='purchase_team_id' column2='res_users_id' comodel_name='res.users' relation='purchase_team_res_users_rel' string='Purchase Users'
Public methods (0)

No public methods.

New fields (2)
  • purchase_team_id Many2one → purchase.team
    comodel_name='purchase.team' index=True string='Purchase team'
  • purchase_user_id Many2one → res.users
    comodel_name='res.users' domain="[('share', '=', False)]" index=True string='Purchase representative'
Public methods (0)

No public methods.

New fields (1)
  • purchase_team_ids Many2many → purchase.team
    check_company=True column1='res_users_id' column2='purchase_team_id' comodel_name='purchase.team' copy=False readonly=True relation='purchase_team_res_users_rel' string='Purchases Teams'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/14.0/purchase_security
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSoca-travis, OCA-git-bot, flook-chaiwat
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/13.0/purchase_security
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, João Marques, oca-travis, Weblate, OCA-git-bot, oca-ci, David Alonso // Solvos
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
purchase_order_form_all_group_orders purchase.order.form (all orders) purchase.order field Inherits purchase.purchase_order_form
purchase_order_form_all_orders purchase.order.form (all orders) purchase.order field Inherits purchase_order_form_own_orders
purchase_order_form_own_orders purchase.order.form (own orders) purchase.order field Inherits purchase.purchase_order_form
purchase_order_form_view purchase.order.form purchase.order xpath Inherits purchase.purchase_order_form
purchase_team_tree purchase.team.form purchase.team tree New
Models touched (2)

New fields (1)
  • team_id Many2one → purchase.team
    compute='_compute_team_id' index=True readonly=False store=True string='Team' args: 'purchase.team'
Public methods (0)

No public methods.

New fields (3)
  • name Char
    required=True
  • sequence Integer
    default=10
  • user_ids Many2many → res.users
    string='Purchase Users' args: 'res.users'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/12.0/purchase_security
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSJoão Marques, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (0)

No models found for this module.