2012-09-19 16:13:27 +00:00
from osv import osv , fields
2012-09-20 15:21:21 +00:00
class fleet_vehicle_model_type ( osv . Model ) :
2012-09-20 13:07:14 +00:00
_name = ' fleet.vehicle.type '
_description = ' Type of the vehicle '
_columns = {
' name ' : fields . char ( ' Name ' , size = 32 , required = True ) ,
}
2012-09-21 15:42:44 +00:00
#comment to delete#comment to delete
2012-09-19 16:13:27 +00:00
class fleet_vehicle_model ( osv . Model ) :
2012-09-21 09:57:15 +00:00
2012-09-21 15:42:44 +00:00
def name_get ( 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 :
name = record . modelname
if record . brand :
name = record . brand . name + ' / ' + name
res . append ( ( record . id , name ) )
return res
def _model_name_get_fnc ( self , cr , uid , ids , prop , unknow_none , context = None ) :
res = self . name_get ( cr , uid , ids , context = context )
return dict ( res )
2012-09-19 16:13:27 +00:00
_name = ' fleet.vehicle.model '
2012-09-20 15:21:21 +00:00
_description = ' Model of a vehicle '
2012-09-19 16:13:27 +00:00
_columns = {
2012-09-21 15:42:44 +00:00
' name ' : fields . function ( _model_name_get_fnc , type = " char " , string = ' Name ' , store = True ) ,
' modelname ' : fields . char ( ' Model name ' , size = 32 , required = True ) ,
' brand ' : fields . many2one ( ' fleet.vehicle.model.brand ' , ' Model brand ' , required = False , help = ' Brand of the vehicle ' ) ,
2012-09-21 14:34:15 +00:00
' vendors ' : fields . many2many ( ' res.partner ' , ' fleet_vehicle_model_vendors ' , ' model_id ' , ' partner_id ' , string = ' Vendors ' , required = False ) ,
2012-09-19 16:13:27 +00:00
}
2012-09-20 13:11:32 +00:00
class fleet_vehicle_model_brand ( osv . Model ) :
_name = ' fleet.vehicle.model.brand '
_description = ' Brand model of the vehicle '
_columns = {
' name ' : fields . char ( ' Brand Name ' , size = 32 , required = True ) ,
}
2012-09-19 16:13:27 +00:00
class fleet_vehicle ( osv . Model ) :
2012-09-24 09:07:05 +00:00
def name_get ( 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 :
if record . registration :
name = record . registration
if record . model_id :
name = record . model_id . brand . name + ' / ' + record . model_id . modelname + ' / ' + name
res . append ( ( record . id , name ) )
return res
def _vehicle_name_get_fnc ( self , cr , uid , ids , prop , unknow_none , context = None ) :
res = self . name_get ( cr , uid , ids , context = context )
return dict ( res )
2012-09-19 16:13:27 +00:00
_name = ' fleet.vehicle '
_description = ' Fleet Vehicle '
_columns = {
2012-09-24 09:07:05 +00:00
' name ' : fields . function ( _vehicle_name_get_fnc , type = " char " , string = ' Name ' , store = True ) ,
2012-09-21 11:32:28 +00:00
' registration ' : fields . char ( ' Registration ' , size = 32 , required = False , help = ' Registration number of the vehicle (ie: plate number for a car) ' ) ,
' vin_sn ' : fields . char ( ' Chassis Number ' , size = 32 , required = False , help = ' Unique number written on the vehicle motor (VIN/SN number) ' ) ,
' driver ' : fields . many2one ( ' hr.employee ' , ' Driver ' , required = False , help = ' Driver of the vehicle ' ) ,
' model_id ' : fields . many2one ( ' fleet.vehicle.model ' , ' Model ' , required = True , help = ' Model of the vehicle ' ) ,
2012-09-19 16:13:27 +00:00
' log_ids ' : fields . one2many ( ' fleet.vehicle.log ' , ' vehicle_id ' , ' Logs ' ) ,
2012-09-24 07:42:39 +00:00
' log_fuel ' : fields . one2many ( ' fleet.vehicle.log.fuel ' , ' vehicle_id ' , ' Fuel Logs ' ) ,
2012-09-21 11:32:28 +00:00
' acquisition_date ' : fields . date ( ' Acquisition date ' , required = False , help = ' Date when the vehicle has been bought ' ) ,
' acquisition_price ' : fields . integer ( ' Price ' , help = ' Price of the bought vehicle ' ) ,
' color ' : fields . char ( ' Color ' , size = 32 , help = ' Color of the vehicle ' ) ,
' status ' : fields . char ( ' Status ' , size = 32 , help = ' Status of the vehicle (in repair, active, ...) ' ) ,
' location ' : fields . char ( ' Location ' , size = 32 , help = ' Location of the vehicle (garage, ...) ' ) ,
2012-09-21 14:34:15 +00:00
' doors ' : fields . integer ( ' Number of doors ' , help = ' Number of doors of the vehicle ' ) ,
2012-09-19 16:13:27 +00:00
' next_repair_km ' : fields . integer ( ' Next Repair Km ' ) ,
2012-09-21 11:32:28 +00:00
' 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 ) ,
2012-09-21 14:34:15 +00:00
' horsepower ' : fields . integer ( ' Horsepower ' , required = False ) ,
' horsepower_tax ' : fields . float ( ' Horsepower Taxation ' ) ,
2012-09-21 11:32:28 +00:00
' power ' : fields . integer ( ' Power (kW) ' , required = False , help = ' Power in kW of the vehicle ' ) ,
' co2 ' : fields . float ( ' CO2 Emissions ' , required = False , help = ' CO2 emissions of the vehicle ' ) ,
2012-09-19 16:13:27 +00:00
}
def on_change_model ( self , cr , uid , ids , model_id , context = None ) :
# print "ids: %r" % (ids,)
# print "model_id: %r" % (model_id,)
# print "context: %r" % (context,)
# import logging
# logger = logging.getLogger('fleet.vehicle')
# logger.info('Hello')
# import ipdb
# ipdb.set_trace()
if not model_id :
return { }
model = self . pool . get ( ' fleet.vehicle.model ' ) . browse ( cr , uid , model_id , context = context )
print " model: %r " % ( model . name , )
return {
' value ' : {
' message ' : " You have selected this %s model " % ( model . name , ) ,
}
}
class fleet_vehicle_log ( osv . Model ) :
_name = ' fleet.vehicle.log '
_columns = {
' employee_id ' : fields . many2one ( ' hr.employee ' , ' Employee ' , required = True ) ,
' vehicle_id ' : fields . many2one ( ' fleet.vehicle ' , ' Vehicle ' , required = True ) ,
2012-09-24 09:14:26 +00:00
' create_date ' : fields . date ( ' Creation Date ' ) ,
2012-09-19 16:13:27 +00:00
' description ' : fields . text ( ' Description ' ) ,
2012-09-24 09:14:26 +00:00
' type ' : fields . char ( ' Type ' , size = 32 ) ,
}
2012-09-24 09:07:05 +00:00
_defaults = {
' type ' : ' Log ' ,
2012-09-19 16:13:27 +00:00
}
2012-09-21 15:10:22 +00:00
class fleet_vehicle_log_fuel ( osv . Model ) :
_inherit = ' fleet.vehicle.log '
_name = ' fleet.vehicle.log.fuel '
_columns = {
' description ' : fields . text ( ' Description ' ) ,
2012-09-24 07:42:39 +00:00
' liter ' : fields . integer ( ' Liter ' ) ,
' price_per_liter ' : fields . float ( ' Price per liter ' ) ,
2012-09-24 09:20:48 +00:00
' type ' : fields . char ( ' Type ' , size = 32 ) ,
' invoice ' : fields . many2one ( ' account.invoice ' , ' Invoice ' , required = False , help = ' Invoice of the refueling log ' ) ,
2012-09-21 15:10:22 +00:00
}
2012-09-24 09:14:26 +00:00
_defaults = { ' type ' : ' Refueling ' , }
2012-09-21 15:10:22 +00:00
class fleet_vehicle_log_insurance ( osv . Model ) :
_inherit = ' fleet.vehicle.log '
_name = ' fleet.vehicle.log.insurance '
_columns = {
' description ' : fields . text ( ' Description ' ) ,
}
class fleet_vehicle_log_services ( osv . Model ) :
_inherit = ' fleet.vehicle.log '
_name = ' fleet.vehicle.log.services '
_columns = {
' description ' : fields . text ( ' Description ' ) ,
}
2012-09-19 16:13:27 +00:00
class hr_employee ( osv . Model ) :
_inherit = ' hr.employee '
_columns = {
' vehicle_id ' : fields . many2one ( ' fleet.vehicle ' , ' Vehicle ' , required = True ) ,
' log_ids ' : fields . one2many ( ' fleet.vehicle.log ' , ' employee_id ' , ' Logs ' ) ,
}