summaryrefslogtreecommitdiff
path: root/addons/fleet/models/fleet_vehicle_model.py
diff options
context:
space:
mode:
authorKevin Baptiste <kba@odoo.com>2019-06-07 09:37:49 +0000
committerYannick Tivisse <yti@odoo.com>2019-11-27 11:54:51 +0000
commit82df1dfccc6b4e3031b1434c7ec1bec2bf7aeb2d (patch)
tree3d72557711c10291004502c72bdb370b13c25e2f /addons/fleet/models/fleet_vehicle_model.py
parentc5398bd4bc84a4e2bce16eb22564c87073a28c30 (diff)
[IMP] fleet: model cleanup, dashboard
Purpose ======= It is currently difficult to know exactly what is used for costs and services on the contracts. Hence it make it difficult to evolve the fleet application We should clean the models in order to have something that is clearer Specification ============= Cleanup of models: removed Fuel and Cost. Contract and Services are no longer inheriting Cost and are seperate models simplifying the use of Fleet. A contract now has included services and they are no longer generating cost. closes odoo/odoo#34090 Taskid: 1931775 Related: odoo/enterprise#4572 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/fleet/models/fleet_vehicle_model.py')
-rw-r--r--addons/fleet/models/fleet_vehicle_model.py31
1 files changed, 29 insertions, 2 deletions
diff --git a/addons/fleet/models/fleet_vehicle_model.py b/addons/fleet/models/fleet_vehicle_model.py
index ab6981c7600..53bc2759b68 100644
--- a/addons/fleet/models/fleet_vehicle_model.py
+++ b/addons/fleet/models/fleet_vehicle_model.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import api, fields, models
+from odoo import api, fields, models, tools, _
class FleetVehicleModel(models.Model):
@@ -15,6 +15,7 @@ class FleetVehicleModel(models.Model):
manager_id = fields.Many2one('res.users', 'Fleet Manager', default=lambda self: self.env.uid,
domain=lambda self: [('groups_id', 'in', self.env.ref('fleet.fleet_group_manager').id)])
image_128 = fields.Image(related='brand_id.image_128', readonly=False)
+ active = fields.Boolean(default=True)
@api.depends('name', 'brand_id')
def name_get(self):
@@ -26,11 +27,37 @@ class FleetVehicleModel(models.Model):
res.append((record.id, name))
return res
+ def write(self, vals):
+ if 'manager_id' in vals:
+ old_manager = self.manager_id.id if self.manager_id else None
+
+ self.env['fleet.vehicle'].search([('model_id', '=', self.id), ('manager_id', '=', old_manager)]).write({'manager_id': vals['manager_id']})
+
+ return super(FleetVehicleModel, self).write(vals)
+
class FleetVehicleModelBrand(models.Model):
_name = 'fleet.vehicle.model.brand'
_description = 'Brand of the vehicle'
- _order = 'name asc'
+ _order = 'model_count desc, name asc'
name = fields.Char('Make', required=True)
image_128 = fields.Image("Logo", max_width=128, max_height=128)
+ model_count = fields.Integer(compute="_compute_model_count", string="", store=True)
+
+ def _compute_model_count(self):
+ Model = self.env['fleet.vehicle.model']
+ for record in self:
+ record.model_count = Model.search_count([('brand_id', '=', record.id)])
+
+ def action_brand_model(self):
+ self.ensure_one()
+ view = {
+ 'type': 'ir.actions.act_window',
+ 'view_mode': 'tree,form',
+ 'res_model': 'fleet.vehicle.model',
+ 'name': 'Models',
+ 'context': {'search_default_brand_id': self.id, 'default_brand_id': self.id}
+ }
+
+ return view