19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:00 +01:00
parent a1137a1456
commit e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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')

View file

@ -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)