From 64af74c6f00a774bd86583344436b6859f7c213a Mon Sep 17 00:00:00 2001
From: "Denis Ledoux dle@openerp.com" <>
Date: Fri, 28 Sep 2012 12:22:11 +0200
Subject: [PATCH] Odometer field function for vehicle
bzr revid: dle@openerp.com-20120928102211-3els60kev6sv0ah4
---
addons/fleet/fleet.py | 23 +++++++++++++++++++++++
addons/fleet/fleet_view.xml | 37 ++++++++++++++++++++++++-------------
2 files changed, 47 insertions(+), 13 deletions(-)
diff --git a/addons/fleet/fleet.py b/addons/fleet/fleet.py
index cbeab5d0d31..9a2cede971d 100644
--- a/addons/fleet/fleet.py
+++ b/addons/fleet/fleet.py
@@ -120,6 +120,25 @@ class fleet_vehicle(osv.Model):
res['domain']=[('vehicle_id','=', ids[0])]
return res
+ def get_odometer(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ if not ids:
+ return []
+ reads = self.browse(cr, uid, ids, context=context)
+ res = []
+ for record in reads:
+ odometers = self.pool.get('fleet.vehicle.odometer').search(cr,uid,[('vehicle_id','=',record.id)], order='date desc')
+ if len(odometers) > 0:
+ res.append((record.id,self.pool.get('fleet.vehicle.odometer').browse(cr, uid, odometers[0], context=context).value))
+ else :
+ res.append((record.id,0))
+ return res
+
+ def _vehicle_odometer_get_fnc(self, cr, uid, ids, prop, unknow_none, context=None):
+ res = self.get_odometer(cr, uid, ids, context=context)
+ return dict(res)
+
_name = 'fleet.vehicle'
_description = 'Fleet Vehicle'
@@ -142,6 +161,8 @@ class fleet_vehicle(osv.Model):
'doors' : fields.integer('Doors Number', help='Number of doors of the vehicle'),
'tag_ids' :fields.many2many('fleet.vehicle.tag','vehicle_vehicle_tag_rel','vehicle_tag_id','tag_id','Tags'),
+ 'odometer' : fields.function(_vehicle_odometer_get_fnc, type="float", string='Odometer', store=False),
+
'transmission' : fields.selection([('manual', 'Manual'),('automatic','Automatic')], 'Transmission', help='Transmission Used by the vehicle',required=False),
'fuel_type' : fields.selection([('gasoline', 'Gasoline'),('diesel','Diesel'),('electric','Electric'),('hybrid','Hybrid')], 'Fuel Type', help='Fuel Used by the vehicle',required=False),
'horsepower' : fields.integer('Horsepower',required=False),
@@ -206,6 +227,8 @@ class fleet_vehicle_odometer(osv.Model):
_name='fleet.vehicle.odometer'
_description='Odometer log for a vehicle'
+ _order='date desc'
+
def name_get(self, cr, uid, ids, context=None):
if context is None:
context = {}
diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml
index 81bb44105d3..7a48fc979b0 100644
--- a/addons/fleet/fleet_view.xml
+++ b/addons/fleet/fleet_view.xml
@@ -95,26 +95,36 @@
-
-