Restrict Deletion of Attachments

attachment_delete_restrict
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/18.0/attachment_delete_restrict
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Quartile
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Quartile
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Aungkokolin1997
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provides the ability to restrict the deletion of the
attachments at different levels.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.attachment.delete.restrict res.config.settings xpath Inherits base_setup.res_config_settings_view_form
view_groups_form res.groups.form res.groups xpath Inherits base.view_groups_form
view_model_form ir.model form ir.model xpath Inherits base.view_model_form
view_users_form res.users.form res.users xpath Inherits base.view_users_form
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (3)
  • delete_attachment_group_ids Many2many → res.groups
    help='The users in the groups selected here can delete the attachments related to this model.' relation='delete_attachment_group_rel' string='Attachment Deletion Groups' args: 'res.groups'
  • delete_attachment_user_ids Many2many → res.users
    help='The users selected here can delete the attachments related to this model.' relation='delete_attachment_user_rel' string='Attachment Deletion Users' args: 'res.users'
  • restrict_delete_attachment Selection
    default='default' help='When selected, the deletion of the attachments related to this model is restricted to certain users.' selection=RESTRICT_DELETE_ATTACH string='Restrict Attachment Deletion'
Public methods (0)

No public methods.

New fields (3)
  • global_delete_attachment_group_ids Many2many → res.groups
    compute='_compute_global_delete_attachment_group_ids' compute_sudo=True help='The users in the groups selected here can delete all the attachments.' inverse='_inverse_global_delete_attachment_group_ids' readonly=False string='Attachment Deletion Groups' args: 'res.groups'
  • global_delete_attachment_user_ids Many2many → res.users
    compute='_compute_global_delete_attachment_user_ids' compute_sudo=True help='The users selected here can delete all the attachments' inverse='_inverse_global_delete_attachment_user_ids' readonly=False string='Attachment Deletion Users' args: 'res.users'
  • global_restrict_delete_attachment Selection
    config_parameter='attachment_delete_restrict.global_restrict_delete_attachment' default='none' help='Define a default value for Attachments Deletion' readonly=False required=True selection=<expr> string='Restrict Delete Attachments'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help="The users of the group can delete the attachments related to the models assigned here. Restrict Attachment Deletion must be'Custom' or 'Owner + Custom' for the model to be selected here." relation='delete_attachment_group_rel' string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help="The user can delete the attachments related to the models assigned here. Restrict Attachment Deletion must be'Custom' or 'Owner + Custom' for the model to be selected here." relation='delete_attachment_user_rel' string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/16.0/attachment_delete_restrict
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Quartile Limited
COMMITTERS
COMMITTERSYoshi Tashiro, Weblate, OCA-git-bot, oca-ci, Aungkokolin1997
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.attachment.delete.restrict res.config.settings xpath Inherits base_setup.res_config_settings_view_form
view_groups_form res.groups.form res.groups xpath Inherits base.view_groups_form
view_model_form ir.model form ir.model xpath Inherits base.view_model_form
view_users_form res.users.form res.users xpath Inherits base.view_users_form
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (3)
  • delete_attachment_group_ids Many2many → res.groups
    help='The users in the groups selected here can delete the attachments related to this model.' relation='delete_attachment_group_rel' string='Attachment Deletion Groups' args: 'res.groups'
  • delete_attachment_user_ids Many2many → res.users
    help='The users selected here can delete the attachments related to this model.' relation='delete_attachment_user_rel' string='Attachment Deletion Users' args: 'res.users'
  • restrict_delete_attachment Selection
    default='default' help='When selected, the deletion of the attachments related to this model is restricted to certain users.' selection=RESTRICT_DELETE_ATTACH string='Restrict Attachment Deletion'
Public methods (0)

No public methods.

New fields (3)
  • global_delete_attachment_group_ids Many2many → res.groups
    compute='_compute_global_delete_attachment_group_ids' compute_sudo=True help='The users in the groups selected here can delete all the attachments.' inverse='_inverse_global_delete_attachment_group_ids' readonly=False string='Attachment Deletion Groups' args: 'res.groups'
  • global_delete_attachment_user_ids Many2many → res.users
    compute='_compute_global_delete_attachment_user_ids' compute_sudo=True help='The users selected here can delete all the attachments' inverse='_inverse_global_delete_attachment_user_ids' readonly=False string='Attachment Deletion Users' args: 'res.users'
  • global_restrict_delete_attachment Selection
    config_parameter='attachment_delete_restrict.global_restrict_delete_attachment' default='none' help='Define a default value for Attachments Deletion' readonly=False required=True selection=<expr> string='Restrict Delete Attachments'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help="The users of the group can delete the attachments related to the models assigned here. Restrict Attachment Deletion must be'Custom' or 'Owner + Custom' for the model to be selected here." relation='delete_attachment_group_rel' string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help="The user can delete the attachments related to the models assigned here. Restrict Attachment Deletion must be'Custom' or 'Owner + Custom' for the model to be selected here." relation='delete_attachment_user_rel' string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/14.0/attachment_delete_restrict
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Quartile Limited
COMMITTERS
COMMITTERSOCA Transbot, Sébastien BEAU, Weblate, OCA-git-bot, oca-ci, Kevin.roche, Kev-Roche, Jon
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.attachment.delete.restrict res.config.settings xpath Inherits base_setup.res_config_settings_view_form
view_groups_form res.groups.form res.groups xpath Inherits base.view_groups_form
view_model_form ir.model form ir.model xpath Inherits base.view_model_form
view_users_form res.users.form res.users xpath Inherits base.view_users_form
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (3)
  • delete_attachment_group_ids Many2many → res.groups
    help='The users in the groups selected here can delete the attachments related to this model.' relation='delete_attachment_group_rel' string='Attachment Deletion Groups' args: 'res.groups'
  • delete_attachment_user_ids Many2many → res.users
    help='The users selected here can delete the attachments related to this model.' relation='delete_attachment_user_rel' string='Attachment Deletion Users' args: 'res.users'
  • restrict_delete_attachment Selection
    default='default' help='When selected, the deletion of the attachments related to this model is restricted to certain users.' selection=RESTRICT_DELETE_ATTACH string='Restrict Attachment Deletion'
Public methods (0)

No public methods.

New fields (3)
  • global_delete_attachment_group_ids Many2many → res.groups
    compute='_compute_global_delete_attachment_group_ids' compute_sudo=True help='The users in the groups selected here can delete all the attachments.' inverse='_inverse_global_delete_attachment_group_ids' readonly=False string='Attachment Deletion Groups' args: 'res.groups'
  • global_delete_attachment_user_ids Many2many → res.users
    compute='_compute_global_delete_attachment_user_ids' compute_sudo=True help='The users selected here can delete all the attachments' inverse='_inverse_global_delete_attachment_user_ids' readonly=False string='Attachment Deletion Users' args: 'res.users'
  • global_restrict_delete_attachment Selection
    config_parameter='attachment_delete_restrict.global_restrict_delete_attachment' default='none' help='Define a default value for Attachments Deletion' readonly=False required=True selection=<expr> string='Restrict Delete Attachments'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help="The users of the group can delete the attachments related to the models assigned here. In general settings, 'Restrict Delete Attachment' must be set as 'custom' to activate this setting." string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help="The user can delete the attachments related to the models assigned here. In general settings, 'Restrict Delete Attachment' must be set as 'custom' to activate this setting." string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/12.0/attachment_delete_restrict
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Quartile Limited
COMMITTERS
COMMITTERSYoshi Tashiro, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_groups_form res.groups.form res.groups xpath Inherits base.view_groups_form
view_model_form ir.model form ir.model xpath Inherits base.view_model_form
view_users_form res.users.form res.users xpath Inherits base.view_users_form
Models touched (4)

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)
    @api.multi

New fields (3)
  • delete_attachment_group_ids Many2many → res.groups
    help='The users in the groups selected here can delete the attachments related to this model.' string='Attachment Deletion Groups' args: 'res.groups'
  • delete_attachment_user_ids Many2many → res.users
    help='The users selected here can delete the attachments related to this model.' string='Attachment Deletion Users' args: 'res.users'
  • restrict_delete_attachment Boolean
    help='When selected, the deletion of the attachments related to this model is restricted to certain users.' string='Restrict Attachment Deletion'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help='The users of the group can delete the attachments related to the models assigned here.' string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

New fields (1)
  • delete_attachment_model_ids Many2many → ir.model
    help='The user can delete the attachments related to the models assigned here.' string='Attachment Deletion Models' args: 'ir.model'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/server-tools
PULL REQUEST
PULL REQUEST[17.0][MIG] attachment_delete_restrict: Migration to 17.0 (#3347)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/server-tools
PULL REQUEST
PULL REQUEST[19.0][MIG] attachment_delete_restrict: Migration to 19.0 (#3398)