mirror of
https://github.com/bringout/oca-ocb-hr.git
synced 2026-04-26 04:52:00 +02:00
19.0 vanilla
This commit is contained in:
parent
a1137a1456
commit
e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions
|
|
@ -1,4 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import equipment
|
||||
from . import res_users
|
||||
from . import hr_employee
|
||||
from . import hr_employee_public
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ class MaintenanceEquipment(models.Model):
|
|||
_inherit = 'maintenance.equipment'
|
||||
|
||||
employee_id = fields.Many2one('hr.employee', compute='_compute_equipment_assign',
|
||||
store=True, readonly=False, string='Assigned Employee', tracking=True)
|
||||
store=True, readonly=False, string='Assigned Employee', tracking=True, index='btree_not_null')
|
||||
department_id = fields.Many2one('hr.department', compute='_compute_equipment_assign',
|
||||
store=True, readonly=False, string='Assigned Department', tracking=True)
|
||||
equipment_assign_to = fields.Selection(
|
||||
|
|
@ -45,6 +45,7 @@ class MaintenanceEquipment(models.Model):
|
|||
def create(self, vals_list):
|
||||
equipments = super().create(vals_list)
|
||||
for equipment in equipments:
|
||||
# TDE FIXME: check if we can use suggested recipients for employee and department manager
|
||||
# subscribe employee or department manager when equipment assign to him.
|
||||
partner_ids = []
|
||||
if equipment.employee_id and equipment.employee_id.user_id:
|
||||
|
|
@ -80,7 +81,6 @@ class MaintenanceEquipment(models.Model):
|
|||
class MaintenanceRequest(models.Model):
|
||||
_inherit = 'maintenance.request'
|
||||
|
||||
@api.returns('self')
|
||||
def _default_employee_get(self):
|
||||
return self.env.user.employee_id
|
||||
|
||||
|
|
@ -100,6 +100,7 @@ class MaintenanceRequest(models.Model):
|
|||
def create(self, vals_list):
|
||||
requests = super().create(vals_list)
|
||||
for request in requests:
|
||||
# TDE FIXME: check default recipients (master)
|
||||
if request.employee_id.user_id:
|
||||
request.message_subscribe(partner_ids=[request.employee_id.user_id.partner_id.id])
|
||||
return requests
|
||||
|
|
@ -112,17 +113,14 @@ class MaintenanceRequest(models.Model):
|
|||
return super(MaintenanceRequest, self).write(vals)
|
||||
|
||||
@api.model
|
||||
def message_new(self, msg, custom_values=None):
|
||||
""" Overrides mail_thread message_new that is called by the mailgateway
|
||||
through message_process.
|
||||
This override updates the document according to the email.
|
||||
"""
|
||||
def message_new(self, msg_dict, custom_values=None):
|
||||
if custom_values is None:
|
||||
custom_values = {}
|
||||
email = tools.email_split(msg.get('from')) and tools.email_split(msg.get('from'))[0] or False
|
||||
user = self.env['res.users'].search([('login', '=', email)], limit=1)
|
||||
# TDE FIXME: check author_id, should be set (master-)
|
||||
email = tools.email_normalize(msg_dict.get('from'), strict=False)
|
||||
user = self.env['res.users'].search([('login', '=', email)], limit=1) if email else self.env['res.users']
|
||||
if user:
|
||||
employee = self.env.user.employee_id
|
||||
if employee:
|
||||
custom_values['employee_id'] = employee and employee[0].id
|
||||
return super(MaintenanceRequest, self).message_new(msg, custom_values=custom_values)
|
||||
return super().message_new(msg_dict, custom_values=custom_values)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
from odoo import api, models, fields
|
||||
|
||||
|
||||
class HrEmployee(models.Model):
|
||||
_inherit = 'hr.employee'
|
||||
|
||||
equipment_ids = fields.One2many('maintenance.equipment', 'employee_id', groups="hr.group_hr_user")
|
||||
equipment_count = fields.Integer('Equipment Count', compute='_compute_equipment_count')
|
||||
|
||||
@api.depends('equipment_ids')
|
||||
def _compute_equipment_count(self):
|
||||
for employee in self:
|
||||
employee.equipment_count = len(employee.equipment_ids)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class HrEmployeePublic(models.Model):
|
||||
_inherit = 'hr.employee.public'
|
||||
|
||||
equipment_count = fields.Integer(related='employee_id.equipment_count')
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
from odoo import api, models, fields
|
||||
|
||||
|
||||
class Users(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
equipment_ids = fields.One2many('maintenance.equipment', 'owner_user_id', string="Managed Equipments")
|
||||
equipment_count = fields.Integer(related='employee_id.equipment_count', string="Assigned Equipments")
|
||||
|
||||
@property
|
||||
def SELF_READABLE_FIELDS(self):
|
||||
return super().SELF_READABLE_FIELDS + ['equipment_count']
|
||||
|
||||
|
||||
class Employee(models.Model):
|
||||
_inherit = 'hr.employee'
|
||||
|
||||
equipment_ids = fields.One2many('maintenance.equipment', 'employee_id')
|
||||
equipment_count = fields.Integer('Equipments', compute='_compute_equipment_count')
|
||||
|
||||
@api.depends('equipment_ids')
|
||||
def _compute_equipment_count(self):
|
||||
for employee in self:
|
||||
employee.equipment_count = len(employee.equipment_ids)
|
||||
Loading…
Add table
Add a link
Reference in a new issue