With this commit, all instances of errors being raised inside `BaseModel.unlink` overrides are moved into methods decorated with `api.ondelete` which is safer.
17 lines
586 B
Python
17 lines
586 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class AccountAnalyticLine(models.Model):
|
|
_inherit = 'account.analytic.line'
|
|
|
|
holiday_id = fields.Many2one("hr.leave", string='Leave Request')
|
|
|
|
@api.ondelete(at_uninstall=False)
|
|
def _unlink_except_linked_leave(self):
|
|
if any(line.holiday_id for line in self):
|
|
raise UserError(_('You cannot delete timesheet lines attached to a leaves. Please cancel the leaves instead.'))
|