From 7ff979ebe9fea7400fc3025356b7297a644c213b Mon Sep 17 00:00:00 2001 From: Olivier Colson Date: Mon, 27 Aug 2018 12:47:32 +0200 Subject: [PATCH] [FIX] hr_expense: allow setting an employee on newly created expense without crashing. Before that, clicking the field in the form view triggered a traceback. --- addons/hr_expense/models/hr_expense.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index eef295cfdd7..036752a6e3f 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -31,10 +31,10 @@ class HrExpense(models.Model): @api.model def _get_employee_id_domain(self): - res = [(1, '=', 0)] + res= [('id', '=', 0)] # Nothing accepted by domain, by default if self.user_has_groups('hr_expense.group_hr_expense_manager') or self.user_has_groups('account.group_account_user'): - res = [(1, '=', 1)] + res = [] # Then, domain accepts everything elif self.user_has_groups('hr_expense.group_hr_expense_user') and self.env.user.employee_ids: employee = self.env.user.employee_ids[0] res = ['|', '|', ('department_id.manager_id.id', '=', employee.id), @@ -42,12 +42,11 @@ class HrExpense(models.Model): elif self.env.user.employee_ids: employee = self.env.user.employee_ids[0] res = [('id', '=', employee.id)] - return res name = fields.Char('Description', readonly=True, required=True, states={'draft': [('readonly', False)], 'reported': [('readonly', False)], 'refused': [('readonly', False)]}) date = fields.Date(readonly=True, states={'draft': [('readonly', False)], 'reported': [('readonly', False)], 'refused': [('readonly', False)]}, default=fields.Date.context_today, string="Date") - employee_id = fields.Many2one('hr.employee', string="Employee", required=True, readonly=True, states={'draft': [('readonly', False)], 'reported': [('readonly', False)], 'refused': [('readonly', False)]}, default=_default_employee_id, domain=lambda self: self._get_employee_id_domain) + employee_id = fields.Many2one('hr.employee', string="Employee", required=True, readonly=True, states={'draft': [('readonly', False)], 'reported': [('readonly', False)], 'refused': [('readonly', False)]}, default=_default_employee_id, domain=lambda self: self._get_employee_id_domain()) product_id = fields.Many2one('product.product', string='Product', readonly=True, states={'draft': [('readonly', False)], 'reported': [('readonly', False)], 'refused': [('readonly', False)]}, domain=[('can_be_expensed', '=', True)], required=True) product_uom_id = fields.Many2one('uom.uom', string='Unit of Measure', required=True, readonly=True, states={'draft': [('readonly', False)], 'refused': [('readonly', False)]}, default=_default_product_uom_id) unit_amount = fields.Float("Unit Price", readonly=True, required=True, states={'draft': [('readonly', False)], 'reported': [('readonly', False)], 'refused': [('readonly', False)]}, digits=dp.get_precision('Product Price'))