# -*- coding:utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models class FleetVehicle(models.Model): _inherit = 'fleet.vehicle' mobility_card = fields.Char(compute='_compute_mobility_card', store=True) @api.depends('driver_id') def _compute_mobility_card(self): for vehicle in self: employee = self.env['hr.employee'] if vehicle.driver_id: employee = employee.search([('address_home_id', '=', vehicle.driver_id.id)], limit=1) if not employee: employee = employee.search([('user_id.partner_id', '=', vehicle.driver_id.id)], limit=1) vehicle.mobility_card = employee.mobility_card class HrEmployee(models.Model): _inherit = "hr.employee" def write(self, vals): res = super().write(vals) if 'mobility_card' in vals: vehicles = self.env['fleet.vehicle'].search([('driver_id', 'in', (self.user_id.partner_id | self.sudo().address_home_id).ids)]) vehicles._compute_mobility_card() return res