# -*- coding: utf-8 -*- ############################################################################## # # datenpol gmbh # Copyright (C) 2013-TODAY datenpol gmbh () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ############################################################################## from odoo import models, fields, api, _ from odoo.exceptions import ValidationError class Attachment(models.Model): _inherit = 'ir.attachment' from_designbox = fields.Boolean(string='Import von Designbox', readonly=True) customer_signed = fields.Boolean(string='Unterschrift vom Kunden', readonly=True) @api.multi def write(self, vals): for record in self: if record.from_designbox and not self.env.user.has_group('dp_custom.group_allow_delete_so_attachments'): raise ValidationError( _("Dokumente, die aus der Designbox importiert wurden, können nicht gelöscht werden.")) if record.customer_signed and not self.env.user.has_group('dp_custom.group_allow_delete_signature'): raise ValidationError( _("Unterschriften des Kunden können nicht gelöscht werden.")) return super(Attachment, self).write(vals) @api.multi def unlink(self): for record in self: if record.from_designbox and not self.env.user.has_group('dp_custom.group_allow_delete_so_attachments'): raise ValidationError( _("Dokumente, die aus der Designbox importiert wurden, können nicht gelöscht werden.")) if record.customer_signed and not self.env.user.has_group('dp_custom.group_allow_delete_signature'): raise ValidationError( _("Unterschriften des Kunden können nicht gelöscht werden.")) return super(Attachment, self).unlink()