mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 15:12:04 +02:00
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
# Copyright 2021 Quartile Limited
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import fields, models
|
|
|
|
RESTRICT_DELETE_ATTACH = [
|
|
("default", "Use global configuration"),
|
|
("owner", "Owner: Only creator and admin can delete them"),
|
|
("custom", "Custom: For each model, selected groups and users can delete them"),
|
|
(
|
|
"owner_custom",
|
|
"Owner + Custom: Creator and admin can delete them + for "
|
|
"each model, selected groups and users can delete them",
|
|
),
|
|
("none", "No restriction: All users / groups can delete them"),
|
|
]
|
|
|
|
|
|
class IrModel(models.Model):
|
|
_inherit = "ir.model"
|
|
|
|
restrict_delete_attachment = fields.Selection(
|
|
selection=RESTRICT_DELETE_ATTACH,
|
|
string="Restrict Attachment Deletion",
|
|
help="When selected, the deletion of the attachments related to this model is "
|
|
"restricted to certain users.",
|
|
default="default",
|
|
)
|
|
|
|
delete_attachment_group_ids = fields.Many2many(
|
|
"res.groups",
|
|
string="Attachment Deletion Groups",
|
|
relation="delete_attachment_group_rel",
|
|
help="The users in the groups selected here can delete the attachments related "
|
|
"to this model.",
|
|
)
|
|
|
|
delete_attachment_user_ids = fields.Many2many(
|
|
"res.users",
|
|
string="Attachment Deletion Users",
|
|
relation="delete_attachment_user_rel",
|
|
help="The users selected here can delete the attachments related to this "
|
|
"model.",
|
|
)
|
|
|
|
def _onchange_restrict_delete_attachment(self):
|
|
if self.restrict_delete_attachment not in ["custom", "owner_custom"]:
|
|
self.delete_attachment_group_ids = False
|
|
self.delete_attachment_user_ids = False
|