17 lines
672 B
Python
17 lines
672 B
Python
from odoo import models, api
|
|
|
|
class AccountMove(models.Model):
|
|
_inherit = 'account.move'
|
|
|
|
def _get_hr_expense_base_class(self):
|
|
""" Returns the hr_expense class in the MRO to jump over it. """
|
|
mro = type(self).mro()
|
|
return next((c for c in mro if c.__module__ == 'odoo.addons.hr_expense.models.account_move'), None)
|
|
|
|
def write(self, vals):
|
|
# Surgical Jumper to bypass hr_expense's account.move lock
|
|
hr_expense_class = self._get_hr_expense_base_class()
|
|
if hr_expense_class and self._context.get('skip_expense_lock'):
|
|
return super(hr_expense_class, self).write(vals)
|
|
return super().write(vals)
|