36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, fields, _
|
|
|
|
class HrEmployee(models.Model):
|
|
_inherit = 'hr.employee'
|
|
|
|
has_work_entries = fields.Boolean(compute='_compute_has_work_entries')
|
|
|
|
def _compute_has_work_entries(self):
|
|
self.env.cr.execute("""
|
|
SELECT id, EXISTS(SELECT 1 FROM hr_work_entry WHERE employee_id = e.id limit 1)
|
|
FROM hr_employee e
|
|
WHERE id in %s
|
|
""", (tuple(self.ids), ))
|
|
|
|
result = {eid[0]: eid[1] for eid in self.env.cr.fetchall()}
|
|
|
|
for employee in self:
|
|
employee.has_work_entries = result.get(employee.id, False)
|
|
|
|
def action_open_work_entries(self, initial_date=False):
|
|
self.ensure_one()
|
|
ctx = {'default_employee_id': self.id}
|
|
if initial_date:
|
|
ctx['initial_date'] = initial_date
|
|
return {
|
|
'type': 'ir.actions.act_window',
|
|
'name': _('%s work entries', self.display_name),
|
|
'view_mode': 'calendar,tree,form',
|
|
'res_model': 'hr.work.entry',
|
|
'context': ctx,
|
|
'domain': [('employee_id', '=', self.id)],
|
|
}
|