Multi is the default api for methods, it is not necessary to explicitly decorate methods with it, adds clutter and most people use it because they see that the rest of the code uses it. Done with `find . -type f -name '*.py' | xargs sed -i '/@api.multi/d'`
65 lines
2.7 KiB
Python
65 lines
2.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models, tools
|
|
|
|
|
|
class FleetVehicleModel(models.Model):
|
|
_name = 'fleet.vehicle.model'
|
|
_description = 'Model of a vehicle'
|
|
_order = 'name asc'
|
|
|
|
name = fields.Char('Model name', required=True)
|
|
brand_id = fields.Many2one('fleet.vehicle.model.brand', 'Manufacturer', required=True, help='Manufacturer of the vehicle')
|
|
vendors = fields.Many2many('res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id', string='Vendors')
|
|
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 = fields.Binary(related='brand_id.image', string="Logo", readonly=False)
|
|
image_medium = fields.Binary(related='brand_id.image_medium', string="Logo (medium)", readonly=False)
|
|
image_small = fields.Binary(related='brand_id.image_small', string="Logo (small)", readonly=False)
|
|
|
|
@api.depends('name', 'brand_id')
|
|
def name_get(self):
|
|
res = []
|
|
for record in self:
|
|
name = record.name
|
|
if record.brand_id.name:
|
|
name = record.brand_id.name + '/' + name
|
|
res.append((record.id, name))
|
|
return res
|
|
|
|
@api.onchange('brand_id')
|
|
def _onchange_brand(self):
|
|
if self.brand_id:
|
|
self.image_medium = self.brand_id.image
|
|
else:
|
|
self.image_medium = False
|
|
|
|
|
|
class FleetVehicleModelBrand(models.Model):
|
|
_name = 'fleet.vehicle.model.brand'
|
|
_description = 'Brand of the vehicle'
|
|
_order = 'name asc'
|
|
|
|
name = fields.Char('Make', required=True)
|
|
image = fields.Binary("Logo",
|
|
help="This field holds the image used as logo for the brand, limited to 1024x1024px.")
|
|
image_medium = fields.Binary("Medium-sized image",
|
|
help="Medium-sized logo of the brand. It is automatically "
|
|
"resized as a 128x128px image, with aspect ratio preserved. "
|
|
"Use this field in form views or some kanban views.")
|
|
image_small = fields.Binary("Small-sized image",
|
|
help="Small-sized logo of the brand. It is automatically "
|
|
"resized as a 64x64px image, with aspect ratio preserved. "
|
|
"Use this field anywhere a small image is required.")
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
for vals in vals_list:
|
|
tools.image_resize_images(vals)
|
|
return super(FleetVehicleModelBrand, self).create(vals_list)
|
|
|
|
def write(self, vals):
|
|
tools.image_resize_images(vals)
|
|
return super(FleetVehicleModelBrand, self).write(vals)
|