diff --git a/addons/fleet/__openerp__.py b/addons/fleet/__openerp__.py index 3a40e7dfc0a..f1e0d1a8580 100644 --- a/addons/fleet/__openerp__.py +++ b/addons/fleet/__openerp__.py @@ -52,7 +52,7 @@ Main Features 'fleet_data.xml', 'fleet_board_view.xml', ], - 'update_xml' : ['security/ir.model.access.csv'], + 'update_xml' : ['security/fleet_security.xml','security/ir.model.access.csv'], 'demo': ['fleet_cars.xml','fleet_demo.xml'], diff --git a/addons/fleet/fleet.py b/addons/fleet/fleet.py index e74ac4839f4..db999d41d12 100644 --- a/addons/fleet/fleet.py +++ b/addons/fleet/fleet.py @@ -66,8 +66,8 @@ class fleet_vehicle_cost(osv.Model): res = {} for record in self.browse(cr, uid, ids, context=context): name = record.vehicle_id.name - if record.cost_subtype.name: - name += ' / '+ record.cost_subtype.name + if record.cost_subtype_id.name: + name += ' / '+ record.cost_subtype_id.name if record.date: name += ' / '+ record.date res[record.id] = name @@ -76,7 +76,7 @@ class fleet_vehicle_cost(osv.Model): _columns = { 'name': fields.function(_cost_name_get_fnc, type="char", string='Name', store=True), 'vehicle_id': fields.many2one('fleet.vehicle', 'Vehicle', required=True, help='Vehicle concerned by this log'), - 'cost_subtype': fields.many2one('fleet.service.type', 'Type', help='Cost type purchased with this cost'), + 'cost_subtype_id': fields.many2one('fleet.service.type', 'Type', help='Cost type purchased with this cost'), 'amount': fields.float('Total Price'), 'cost_type': fields.selection([('contract', 'Contract'), ('services','Services'), ('fuel','Fuel'), ('other','Other')], 'Category of the cost', help='For internal purpose only', required=True), 'parent_id': fields.many2one('fleet.vehicle.cost', 'Parent', help='Parent cost to this current cost'), @@ -104,7 +104,7 @@ class fleet_vehicle_cost(osv.Model): if 'contract_id' in data and data['contract_id']: contract = self.pool.get('fleet.vehicle.log.contract').browse(cr, uid, data['contract_id'], context=context) data['vehicle_id'] = contract.vehicle_id.id - data['cost_subtype'] = contract.cost_subtype.id + data['cost_subtype_id'] = contract.cost_subtype_id.id data['cost_type'] = contract.cost_type if 'odometer' in data and not data['odometer']: #if received value for odometer is 0, then remove it from the data as it would result to the creation of a @@ -135,8 +135,8 @@ class fleet_vehicle_model(osv.Model): res = {} for record in self.browse(cr, uid, ids, context=context): name = record.modelname - if record.brand.name: - name = record.brand.name + ' / ' + name + if record.brand_id.name: + name = record.brand_id.name + ' / ' + name res[record.id] = name return res @@ -157,11 +157,11 @@ class fleet_vehicle_model(osv.Model): _columns = { '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=True, help='Brand of the vehicle'), + 'brand_id': fields.many2one('fleet.vehicle.model.brand', 'Model Brand', required=True, help='Brand of the vehicle'), 'vendors': fields.many2many('res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id', string='Vendors'), - 'image': fields.related('brand', 'image', type="binary", string="Logo"), - 'image_medium': fields.related('brand', 'image_medium', type="binary", string="Logo"), - 'image_small': fields.related('brand', 'image_small', type="binary", string="Logo"), + 'image': fields.related('brand_id', 'image', type="binary", string="Logo"), + 'image_medium': fields.related('brand_id', 'image_medium', type="binary", string="Logo"), + 'image_small': fields.related('brand_id', 'image_small', type="binary", string="Logo"), } @@ -210,7 +210,7 @@ class fleet_vehicle(osv.Model): def _vehicle_name_get_fnc(self, cr, uid, ids, prop, unknow_none, context=None): res = {} for record in self.browse(cr, uid, ids, context=context): - res[record.id] = record.model_id.brand.name + '/' + record.model_id.modelname + ' / ' + record.license_plate + res[record.id] = record.model_id.brand_id.name + '/' + record.model_id.modelname + ' / ' + record.license_plate return res def return_action_to_open(self, cr, uid, ids, context=None): @@ -308,7 +308,7 @@ class fleet_vehicle(osv.Model): ids = self.pool.get('fleet.vehicle.log.contract').search(cr,uid,[('vehicle_id', '=', record.id), ('state', 'in', ('open', 'toclose'))], limit=1, order='expiration_date asc') if len(ids) > 0: #we display only the name of the oldest overdue/due soon contract - name=(self.pool.get('fleet.vehicle.log.contract').browse(cr, uid, ids[0], context=context).cost_subtype.name) + name=(self.pool.get('fleet.vehicle.log.contract').browse(cr, uid, ids[0], context=context).cost_subtype_id.name) res[record.id] = { 'contract_renewal_overdue': overdue, @@ -333,14 +333,14 @@ class fleet_vehicle(osv.Model): 'company_id': fields.many2one('res.company', 'Company'), 'license_plate': fields.char('License Plate', size=32, required=True, help='License plate number of the vehicle (ie: plate number for a car)'), 'vin_sn': fields.char('Chassis Number', size=32, help='Unique number written on the vehicle motor (VIN/SN number)'), - 'driver': fields.many2one('res.partner', 'Driver', help='Driver of the vehicle'), - 'model_id': fields.many2one('fleet.vehicle.model', 'Model', required=True, help='Model of the vehicle'), - 'log_fuel': fields.one2many('fleet.vehicle.log.fuel', 'vehicle_id', 'Fuel Logs'), + 'driver_id': fields.many2one('res.partner', 'Driver', _idhelp='Driver of the vehicle'), + 'model_id': fields.many2one('fleet.vehicle.model', 'Model', requ_idired=True, help='Model of the vehicle'), + 'log_fuel': fields.one2many('fleet.vehicle.log.f_iduel', 'vehicle_id', 'Fuel Logs'), 'log_services': fields.one2many('fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'), 'log_contracts': fields.one2many('fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'), 'acquisition_date': fields.date('Acquisition Date', required=False, help='Date when the vehicle has been bought'), 'color': fields.char('Color', size=32, help='Color of the vehicle'), - 'state': fields.many2one('fleet.vehicle.state', 'State', help='Current state of the vehicle', ondelete="set null"), + 'state_id': fields.many2one('fleet.vehicle.state', 'State', help='Current state of the vehicle', ondelete="set null"), 'location': fields.char('Location', size=128, help='Location of the vehicle (garage, ...)'), 'seats': fields.integer('Seats Number', help='Number of seats of the vehicle'), 'doors': fields.integer('Doors Number', help='Number of doors of the vehicle'), @@ -366,7 +366,7 @@ class fleet_vehicle(osv.Model): _defaults = { 'doors': 5, 'odometer_unit': 'kilometers', - 'state': _get_default_state, + 'state_id': _get_default_state, } def copy(self, cr, uid, id, default=None, context=None): @@ -408,13 +408,13 @@ class fleet_vehicle(osv.Model): value = self.pool.get('fleet.vehicle.model').browse(cr,uid,vals['model_id'],context=context).name oldmodel = vehicle.model_id.name or _('None') changes.append(_("Model: from '%s' to '%s'") %(oldmodel, value)) - if 'driver' in vals and vehicle.driver.id != vals['driver']: - value = self.pool.get('res.partner').browse(cr,uid,vals['driver'],context=context).name - olddriver = (vehicle.driver.name) or _('None') + if 'driver_id' in vals and vehicle.driver_id.id != vals['driver_id']: + value = self.pool.get('res.partner').browse(cr,uid,vals['driver_id'],context=context).name + olddriver = (vehicle.driver_id.name) or _('None') changes.append(_("Driver: from '%s' to '%s'") %(olddriver, value)) - if 'state' in vals and vehicle.state.id != vals['state']: - value = self.pool.get('fleet.vehicle.state').browse(cr,uid,vals['state'],context=context).name - oldstate = vehicle.state.name or _('None') + if 'state_id' in vals and vehicle.state_id.id != vals['state_id']: + value = self.pool.get('fleet.vehicle.state').browse(cr,uid,vals['state_id'],context=context).name + oldstate = vehicle.state_id.name or _('None') changes.append(_("State: from '%s' to '%s'") %(oldstate, value)) if 'license_plate' in vals and vehicle.license_plate != vals['license_plate']: old_license_plate = vehicle.license_plate or _('None') @@ -548,7 +548,7 @@ class fleet_vehicle_log_fuel(osv.Model): _defaults = { 'purchaser_id': lambda self, cr, uid, ctx: uid, 'date': fields.date.context_today, - 'cost_subtype': _get_default_service_type, + 'cost_subtype_id': _get_default_service_type, 'cost_type': 'fuel', } @@ -585,7 +585,7 @@ class fleet_vehicle_log_services(osv.Model): _defaults = { 'purchaser_id': lambda self, cr, uid, ctx: uid, 'date': fields.date.context_today, - 'cost_subtype': _get_default_service_type, + 'cost_subtype_id': _get_default_service_type, 'cost_type': 'services' } @@ -630,7 +630,7 @@ class fleet_vehicle_log_contract(osv.Model): 'amount': contract.cost_generated, 'date': startdate.strftime(tools.DEFAULT_SERVER_DATE_FORMAT), 'vehicle_id': contract.vehicle_id.id, - 'cost_subtype': contract.cost_subtype.id, + 'cost_subtype_id': contract.cost_subtype_id.id, 'contract_id': contract.id, 'auto_generated': True } @@ -664,8 +664,8 @@ class fleet_vehicle_log_contract(osv.Model): res = {} for record in self.browse(cr, uid, ids, context=context): name = record.vehicle_id.name - if record.cost_subtype.name: - name += ' / '+ record.cost_subtype.name + if record.cost_subtype_id.name: + name += ' / '+ record.cost_subtype_id.name if record.date: name += ' / '+ record.date res[record.id] = name @@ -789,7 +789,7 @@ class fleet_vehicle_log_contract(osv.Model): 'state':'open', 'expiration_date': lambda self, cr, uid, ctx: self.compute_next_year_date(fields.date.context_today(self, cr, uid, context=ctx)), 'cost_frequency': 'no', - 'cost_subtype': _get_default_contract_type, + 'cost_subtype_id': _get_default_contract_type, 'cost_type': 'contract', } diff --git a/addons/fleet/fleet_board_view.xml b/addons/fleet/fleet_board_view.xml index 760fc1cf583..41093d2c283 100644 --- a/addons/fleet/fleet_board_view.xml +++ b/addons/fleet/fleet_board_view.xml @@ -135,17 +135,20 @@ + sequence="50" + groups="group_fleet_user"/> - + + sequence="1" + groups="group_fleet_manager"/> + sequence="2" + groups="group_fleet_manager"/> diff --git a/addons/fleet/fleet_demo.xml b/addons/fleet/fleet_demo.xml index 4760e336dd1..d70943f4beb 100644 --- a/addons/fleet/fleet_demo.xml +++ b/addons/fleet/fleet_demo.xml @@ -3,227 +3,227 @@ Corsa - + Astra - + Agila - + Combo Tour - + Meriva - + AstraGTC - + Zafira - + Zafira Tourer - + Insignia - + Mokka - + Antara - + Ampera - + A1 - + A3 - + A4 - + A5 - + A6 - + A7 - + A8 - + Q3 - + Q5 - + Q7 - + TT - + Serie 1 - + Serie 3 - + Serie 5 - + Serie 6 - + Serie 7 - + Serie X - + Serie Z4 - + Serie M - + Serie Hybrid - + Class A - + Class B - + Class C - + Class CL - + Class CLS - + Class E - + Class M - + Class GL - + Class GLK - + Class R - + Class S - + Class SLK - + SLS - + @@ -253,7 +253,7 @@ Black Grand-Rosiere 5 - + kilometers @@ -268,7 +268,7 @@ Red Grand-Rosiere 5 - + kilometers @@ -283,7 +283,7 @@ Titanium Grey Grand-Rosiere 3 - + kilometers @@ -298,7 +298,7 @@ White Grand-Rosiere 3 - + kilometers @@ -313,7 +313,7 @@ Brown Grand-Rosiere 5 - + kilometers @@ -862,7 +862,7 @@ 650 - + 2012-09-02 4586 @@ -873,7 +873,7 @@ 50 - + 2012-09-02 @@ -881,7 +881,7 @@ 25 - + 2012-09-02 @@ -889,7 +889,7 @@ 100 - + 2012-09-02 @@ -897,7 +897,7 @@ 350 - + 2012-11-02 4814 @@ -908,7 +908,7 @@ 100 - + 2012-11-02 @@ -916,7 +916,7 @@ 150 - + 2012-11-02 @@ -924,7 +924,7 @@ 100 - + 2012-11-02 @@ -932,7 +932,7 @@ 513 - + 2012-10-15 124 @@ -943,7 +943,7 @@ 412 - + 2012-10-08 20984 @@ -954,7 +954,7 @@ 275 - + 2012-09-25 241 @@ -965,7 +965,7 @@ 302 - + 2012-09-15 22513 @@ -978,7 +978,7 @@ 0 20 daily - + @@ -990,7 +990,7 @@ 50 - + 2012-01-01 @@ -998,7 +998,7 @@ 25 - + 2012-01-01 @@ -1006,7 +1006,7 @@ 100 - + 2012-01-01 @@ -1016,7 +1016,7 @@ 0 150 weekly - + @@ -1028,7 +1028,7 @@ 50 - + 2012-01-01 @@ -1036,7 +1036,7 @@ 25 - + 2012-01-01 @@ -1044,7 +1044,7 @@ 100 - + 2012-01-01 @@ -1054,7 +1054,7 @@ 0 400 monthly - + @@ -1066,7 +1066,7 @@ 50 - + 2012-01-01 @@ -1074,7 +1074,7 @@ 25 - + 2012-01-01 @@ -1082,7 +1082,7 @@ 100 - + 2012-01-01 @@ -1092,7 +1092,7 @@ 0 4000 yearly - + @@ -1104,7 +1104,7 @@ 50 - + 2012-01-01 @@ -1112,7 +1112,7 @@ 25 - + 2012-01-01 @@ -1120,7 +1120,7 @@ 100 - + 2012-01-01 @@ -1130,7 +1130,7 @@ 17000 0 no - + @@ -1142,7 +1142,7 @@ 50 - + 2012-01-01 @@ -1150,7 +1150,7 @@ 25 - + 2012-01-01 @@ -1158,7 +1158,7 @@ 100 - + 2012-01-01 diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml index 416ca191a6e..1810cc5a938 100644 --- a/addons/fleet/fleet_view.xml +++ b/addons/fleet/fleet_view.xml @@ -10,7 +10,7 @@ - + @@ -30,7 +30,7 @@ fleet.vehicle.model - + @@ -135,7 +135,7 @@ - States of Vehicle + Vehicle Status fleet.vehicle.state form tree,form @@ -149,11 +149,11 @@ - - + + - + fleet.vehicle.form @@ -161,7 +161,7 @@
- +
@@ -179,14 +179,14 @@
- + @@ -231,10 +231,10 @@ - + - + @@ -250,11 +250,10 @@ - + - - + @@ -268,9 +267,9 @@ - + - + @@ -310,7 +309,7 @@
  • - +
  • @@ -347,8 +346,8 @@ - - + + @@ -358,17 +357,17 @@
    -
    - +