diff --git a/addons/hr_fleet/__manifest__.py b/addons/hr_fleet/__manifest__.py index 7cfaaeddaa2..2fef238cda9 100644 --- a/addons/hr_fleet/__manifest__.py +++ b/addons/hr_fleet/__manifest__.py @@ -13,6 +13,7 @@ 'views/fleet_vehicle_views.xml', 'views/fleet_vehicle_cost_views.xml', 'wizard/hr_departure_wizard_views.xml', + 'data/hr_fleet_data.xml', ], 'demo': [ 'data/hr_fleet_demo.xml', diff --git a/addons/hr_fleet/data/hr_fleet_data.xml b/addons/hr_fleet/data/hr_fleet_data.xml new file mode 100644 index 00000000000..f92424aa153 --- /dev/null +++ b/addons/hr_fleet/data/hr_fleet_data.xml @@ -0,0 +1,17 @@ + + + + + Fleet Training + fleet_manager + + + + + Take Back Fleet + fleet_manager + + + + + diff --git a/addons/hr_fleet/models/__init__.py b/addons/hr_fleet/models/__init__.py index 69700e79eb1..93d6b757f88 100644 --- a/addons/hr_fleet/models/__init__.py +++ b/addons/hr_fleet/models/__init__.py @@ -8,3 +8,4 @@ from . import fleet_vehicle from . import fleet_vehicle_log_contract from . import fleet_vehicle_log_services from . import fleet_vehicle_odometer +from . import hr_plan_activity_type diff --git a/addons/hr_fleet/models/hr_plan_activity_type.py b/addons/hr_fleet/models/hr_plan_activity_type.py new file mode 100644 index 00000000000..9f528c9f6b9 --- /dev/null +++ b/addons/hr_fleet/models/hr_plan_activity_type.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, _ + + +class HrPlanActivityType(models.Model): + _inherit = 'hr.plan.activity.type' + + responsible = fields.Selection(selection_add=[('fleet_manager', "Fleet Manager"), ('employee',)], ondelete={'fleet_manager': 'set default'}) + + def get_responsible_id(self, employee): + if self.responsible == 'fleet_manager': + employee_id = self.env['hr.employee'].browse(employee._origin.id) + vehicle = employee_id.car_ids[:1] + warning = False + if not vehicle: + warning = _('Employee %s is not linked to a vehicle.', employee_id.name) + if vehicle and not vehicle.manager_id: + warning = _("Employee's vehicle %s is not linked to a fleet manager.", employee_id.name) + return { + 'responsible': vehicle.manager_id, + 'warning': warning, + } + return super().get_responsible_id(employee)