Fleet

fleet
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources/Fleet
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Thibault Delavallée, Yannick Tivisse, Pierre Masereel, Julien Castiaux, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, Dossogne Bertrand, luvi, Renaud Thiry, Vincent Larcin, Louis Wicket (wil), Victor Piryns (pivi), Dylan Kiss (dyki), Xavier Bol (xbo), Mélanie, rmun-odoo, Yassin Abdelkarim, yagp-odoo, rame-odoo, ahta, Krzysztof Magusiak (krma), romc-odoo, saurabh, Jurgen Gjini, ibo-odoo, karygauss03, chpa-odoo, Amr Yasser (amry), SaraBriki
WEBSITE
WEBSITEhttps://www.odoo.com/app/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, costs
and many other features necessary to the management of your fleet
of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (51)
XML IDNameModelTypeStatus
fleet_costs_report_view_graph fleet.vehicle.cost.view.graph fleet.vehicle.cost.report graph New
fleet_costs_report_view_pivot fleet.vehicle.cost.view.pivot fleet.vehicle.cost.report pivot New
fleet_costs_report_view_search fleet.vehicle.cost.view.search fleet.vehicle.cost.report search New
fleet_vechicle_costs_report_view_form fleet.vehicle.cost.report.form fleet.vehicle.cost.report form New
fleet_vechicle_costs_report_view_tree fleet.vehicle.cost.report.view.list fleet.vehicle.cost.report list New
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.list fleet.vehicle.assignation.log list New
fleet_vehicle_log_contract_view_activity fleet.vehicle.log.contract.activity fleet.vehicle.log.contract activity New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_pivot fleet.vehicle.log.contract pivot New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.list fleet.vehicle.log.contract list New
fleet_vehicle_log_services_view_activity fleet.vehicle.log.services activity New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_pivot fleet.vehicle.log.services pivot New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.list fleet.vehicle.log.services list New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_search fleet.vehicle.model.brand.view.search fleet.vehicle.model.brand search New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.list fleet.vehicle.model.brand list New
fleet_vehicle_model_category_view_form fleet.vehicle.model.category.view.form fleet.vehicle.model.category form New
fleet_vehicle_model_category_view_tree fleet.vehicle.model.category.view.list fleet.vehicle.model.category list New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_kanban fleet.vehicle.model.kanban fleet.vehicle.model kanban New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.list fleet.vehicle.model list New
fleet_vehicle_odometer_report_view_graph fleet.vehicle.odometer.report.view.graph fleet.vehicle.odometer.report graph New
fleet_vehicle_odometer_report_view_search fleet.vehicle.odometer.report.view.search fleet.vehicle.odometer.report search New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.list fleet.vehicle.odometer list New
fleet_vehicle_send_mail_view_form fleet.vehicle.send.mail form New
fleet_vehicle_service_types_view_search fleet.service.type search New
fleet_vehicle_service_types_view_tree fleet.service.type.list fleet.service.type list New
fleet_vehicle_state_view_form fleet.vehicle.state.form fleet.vehicle.state form New
fleet_vehicle_state_view_tree fleet.vehicle.state.list fleet.vehicle.state list New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_tag_view_view_tree fleet.vehicle.tag.list fleet.vehicle.tag list New
fleet_vehicle_view_activity fleet.vehicle.activity fleet.vehicle activity New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_form_quick_create fleet.vehicle.form.quick.create fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_pivot fleet.vehicle pivot New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.list fleet.vehicle list New
res_config_settings_view_form res.config.settings.view.form.inherit.hr.fleet res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (16)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (63)
  • acquisition_date Date
    default=fields.Date.today help='Date of vehicle registration' required=False tracking=True args: 'Registration Date'
  • active Boolean
    default=True tracking=True args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    string='Catalog Value (VAT Incl.)' tracking=True
  • category_id Many2one → fleet.vehicle.model.category
    compute='_compute_category' readonly=False store=True args: 'fleet.vehicle.model.category', 'Category'
  • co2 Float
    aggregator=None compute='_compute_co2' help='CO2 emissions of the vehicle' readonly=False store=True tracking=True args: 'CO₂ Emissions'
  • co2_emission_unit Selection
    compute='_compute_co2_emission_unit' default='g/km' required=True store=True args: [('g/km', 'g/km'), ('g/mi', 'g/mi')]
  • co2_standard Char
    compute='_compute_co2_standard' help="Emission Standard specifies the regulatory test procedure or guideline under which a vehicle's emissions are measured." readonly=False store=True args: 'Emission Standard'
  • color Char
    compute='_compute_color' help='Color of the vehicle' readonly=False store=True
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_date_start Date
    default=fields.Date.today string='First Contract Date' tracking=True
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_state Selection
    compute='_compute_contract_reminder' required=False string='Last Contract State' args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')]
  • country_code Char
    depends=['country_id'] related='country_id.code'
  • country_id Many2one → res.country
    related='company_id.country_id' args: 'res.country'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • description Html
    args: 'Vehicle Description'
  • doors Integer
    compute='_compute_doors' help='Number of doors of the vehicle' readonly=False store=True args: 'Number of Doors'
  • driver_id Many2one → res.partner
    copy=False help='Driver address of the vehicle' tracking=True args: 'res.partner', 'Driver'
  • electric_assistance Boolean
    compute='_compute_electric_assistance' readonly=False store=True
  • frame_size Float
  • frame_type Selection
    string='Bike Frame Type' args: [('diamant', 'Diamant'), ('trapez', 'Trapez'), ('wave', 'Wave')]
  • fuel_type Selection
    compute='_compute_fuel_type' readonly=False store=True args: FUEL_TYPES, 'Fuel Type'
  • future_driver_id Many2one → res.partner
    check_company=True copy=False help='Next Driver Address of the vehicle' tracking=True args: 'res.partner', 'Future Driver'
  • history_count Integer
    compute='_compute_count_all' string='Drivers History Count'
  • horsepower Float
    compute='_compute_horsepower' readonly=False store=True
  • horsepower_tax Float
    compute='_compute_horsepower_tax' readonly=False store=True args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='model_id.image_128'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' tracking=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignment Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • manager_id Many2one → res.users
    domain=<expr> args: 'res.users', 'Fleet Manager'
  • model_id Many2one → fleet.vehicle.model
    required=True tracking=True args: 'fleet.vehicle.model', 'Model'
  • model_year Selection
    compute='_compute_model_year' help='Year of the model' readonly=False selection='_get_year_selection' store=True string='Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • net_car_value Float
    string='Purchase Value'
  • next_assignation_date Date
    help='This is the date at which the car will be available, if not set it means available instantly' args: 'Assignment Date'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' required=True args: [('kilometers', 'km'), ('miles', 'mi')], 'Odometer Unit'
  • order_date Date
    args: 'Order Date'
  • plan_to_change_bike Boolean
    tracking=True
  • plan_to_change_car Boolean
    tracking=True
  • power Float
    compute='_compute_power' help='Power in kW of the vehicle' readonly=False store=True args: 'Power'
  • power_unit Selection
    default='power' required=True args: [('power', 'kW'), ('horsepower', 'Horsepower')], 'Power Unit'
  • range_unit Selection
    compute='_compute_range_unit' default='km' readonly=False required=True store=True args: [('km', 'km'), ('mi', 'mi')]
  • residual_value Float
  • seats Integer
    compute='_compute_seats' help='Number of seats of the vehicle' readonly=False store=True args: 'Seating Capacity'
  • service_activity Selection
    compute='_compute_service_activity' args: [('none', 'None'), ('overdue', 'Overdue'), ('today', 'Today')]
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_expand_full' help='Current state of the vehicle' ondelete='set null' tracking=True args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • trailer_hook Boolean
    compute='_compute_trailer_hook' default=False help="A trailer hitch is a device attached to a vehicle's chassis for towing purposes, such as pulling trailers, boats, or other vehicles." readonly=False store=True string='Trailer Hitch'
  • transmission Selection
    compute='_compute_transmission' readonly=False store=True args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_properties Properties
    copy=True definition='model_id.vehicle_properties_definition' args: 'Properties'
  • vehicle_range Integer
    string='Range'
  • vehicle_type Selection
    related='model_id.vehicle_type'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' tracking=True args: 'Chassis Number'
  • write_off_date Date
    help="Date when the vehicle's license plate has been cancelled/removed." tracking=True args: 'Cancellation Date'
Public methods (9)
  • act_show_log_cost(self)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • action_accept_driver_change(self)
  • action_open_odometer_report(self)
  • action_send_email(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_driver_history(self, vals)
  • open_assignation_logs(self)
  • return_action_to_open(self)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    index=True required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • cost Float
    readonly=True args: 'Cost'
  • cost_type Selection
    readonly=True selection=[('contract', 'Contract'), ('service', 'Service')] string='Cost Type'
  • date_start Date
    readonly=True args: 'Date'
  • driver_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Driver'
  • fuel_type Char
    readonly=True args: 'Fuel'
  • name Char
    readonly=True args: 'Vehicle Name'
  • vehicle_id Many2one → fleet.vehicle
    readonly=True args: 'fleet.vehicle', 'Vehicle'
  • vehicle_type Selection
    readonly=True args: [('car', 'Car'), ('bike', 'Bike')]
Public methods (1)
  • init(self)

New fields (22)
  • active Boolean
    default=True
  • amount Monetary
    tracking=True args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • cost_frequency Selection
    default='monthly' required=True tracking=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Monetary
    tracking=True args: 'Recurring Cost'
  • cost_subtype_id Many2one → fleet.service.type
    domain=[('category', '=', 'contract')] help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    help='Date when the cost has been executed'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' tracking=True args: 'Contract Expiration Date'
  • expires_today Boolean
    compute='_compute_days_left'
  • has_open_contract Boolean
    compute='_compute_has_open_contract'
  • ins_ref Char
    copy=False size=64 args: 'Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Char
    compute='_compute_contract_name' readonly=False store=True string='Name'
  • notes Html
    copy=False args: 'Terms and Conditions'
  • purchaser_id Many2one
    related='vehicle_id.driver_id' string='Driver'
  • service_ids Many2many → fleet.service.type
    string='Included Services' args: 'fleet.service.type'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' tracking=True args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' tracking=True args: [('futur', 'New'), ('open', 'Running'), ('expired', 'Expired'), ('closed', 'Cancelled')], 'Status'
  • user_id Many2one → res.users
    comodel_name='res.users' default=<expr> index=True string='Responsible'
  • vehicle_id Many2one → fleet.vehicle
    check_company=True index=True required=True tracking=True args: 'fleet.vehicle', 'Vehicle'
Public methods (8)
  • action_close(self)
  • action_draft(self)
  • action_expire(self)
  • action_open(self)
  • compute_next_year_date(self, strdate)
  • run_scheduler(self)
  • scheduler_manage_contract_expiration(self)
    @api.model
  • write(self, vals)

New fields (19)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • brand_id Many2one → fleet.vehicle.model.brand
    related='vehicle_id.model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    default=fields.Date.context_today help='Date when the cost has been executed'
  • description Char
    args: 'Description'
  • inv_ref Char
    args: 'Vendor Reference'
  • manager_id Many2one → res.users
    related='vehicle_id.manager_id' store=True args: 'res.users', 'Fleet Manager'
  • model_id Many2one → fleet.vehicle.model
    related='vehicle_id.model_id' store=True args: 'fleet.vehicle.model', 'Model'
  • notes Text
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • purchaser_id Many2one → res.partner
    compute='_compute_purchaser_id' readonly=False store=True string='Driver' args: 'res.partner'
  • service_type_id Many2one → fleet.service.type
    default=<expr> required=True args: 'fleet.service.type', 'Service Type'
  • state Selection
    default='new' group_expand=True string='Stage' tracking=True args: [('new', 'New'), ('running', 'Running'), ('done', 'Done'), ('cancelled', 'Cancelled')]
  • vehicle_id Many2one → fleet.vehicle
    index=True required=True args: 'fleet.vehicle', 'Vehicle'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (27)
  • active Boolean
    default=True
  • brand_id Many2one → fleet.vehicle.model.brand
    index='btree_not_null' required=True tracking=True args: 'fleet.vehicle.model.brand', 'Manufacturer'
  • category_id Many2one → fleet.vehicle.model.category
    tracking=True args: 'fleet.vehicle.model.category', 'Category'
  • co2_emission_unit Selection
    compute='_compute_co2_emission_unit' required=True args: [('g/km', 'g/km'), ('g/mi', 'g/mi')]
  • co2_standard Char
    help="Emission Standard specifies the regulatory test procedure or guideline under which a vehicle's emissions are measured." string='Emission Standard' tracking=True
  • color Char
    tracking=True
  • default_co2 Float
    tracking=True args: 'CO₂ Emissions'
  • default_fuel_type Selection
    default='electric' tracking=True args: FUEL_TYPES, 'Fuel Type'
  • doors Integer
    help='Specifies the total number of doors, including the truck and hatch doors, if applicable.' string='Number of Doors' tracking=True
  • drive_type Selection
    args: [('fwd', 'Front-Wheel Drive (FWD)'), ('awd', 'All-Wheel Drive (AWD)'), ('rwd', 'Rear-Wheel Drive (RWD)'), ('4wd', 'Four-Wheel Drive (4WD)')]
  • electric_assistance Boolean
    default=False tracking=True
  • horsepower Float
    tracking=True
  • horsepower_tax Float
    tracking=True args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='brand_id.image_128'
  • model_year Selection
    selection='_get_year_selection' tracking=True
  • name Char
    required=True tracking=True args: 'Model name'
  • power Float
    tracking=True args: 'Power'
  • power_unit Selection
    default='power' required=True args: [('power', 'kW'), ('horsepower', 'Horsepower (hp)')], 'Power Unit'
  • range_unit Selection
    default='km' required=True args: [('km', 'km'), ('mi', 'mi')]
  • seats Integer
    string='Seating Capacity' tracking=True
  • trailer_hook Boolean
    default=False help="A trailer hitch is a device attached to a vehicle's chassis for towing purposes, such as pulling trailers, boats, or other vehicles." string='Trailer Hitch' tracking=True
  • transmission Selection
    tracking=True args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_count Integer
    compute='_compute_vehicle_count' search='_search_vehicle_count'
  • vehicle_properties_definition PropertiesDefinition
    args: 'Vehicle Properties'
  • vehicle_range Integer
    string='Range'
  • vehicle_type Selection
    default='car' required=True tracking=True args: [('car', 'Car'), ('bike', 'Bike')]
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (1)
  • action_model_vehicle(self)

New fields (5)
  • active Boolean
    default=True
  • image_128 Image
    max_height=128 max_width=128 args: 'Logo'
  • model_count Integer
    compute='_compute_model_count' store=True string=''
  • model_ids One2many → fleet.vehicle.model
    args: 'fleet.vehicle.model', 'brand_id'
  • name Char
    required=True args: 'Name'
Public methods (2)
  • action_brand_model(self)
  • action_open_brand_form(self)

New fields (2)
  • name Char
    required=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one → res.partner
    compute='_compute_driver_id' readonly=False store=True string='Driver' args: 'res.partner'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    aggregator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (7)
  • category_id Many2one
    related='vehicle_id.category_id'
  • fuel_type Selection
    related='vehicle_id.fuel_type'
  • mileage_delta Float
    readonly=True args: 'Mileage Delta'
  • model_id Many2one
    related='vehicle_id.model_id'
  • odometer_value Float
    readonly=True args: 'Odometer Value'
  • recorded_date Date
    readonly=True args: 'Date'
  • vehicle_id Many2one → fleet.vehicle
    readonly=True args: 'fleet.vehicle', 'Vehicle'
Public methods (1)
  • init(self)

New fields (4)
  • attachment_ids Many2many → ir.attachment
    bypass_search_access=True string='Attachments' args: 'ir.attachment', 'fleet_vehicle_mail_compose_message_ir_attachments_rel', 'wizard_id', 'attachment_id'
  • author_id Many2one → res.partner
    default=<expr> required=True args: 'res.partner', 'Author'
  • template_id Many2one
    domain=<expr>
  • vehicle_ids Many2many → fleet.vehicle
    required=True string='Vehicles' args: 'fleet.vehicle'
Public methods (2)
  • action_save_as_template(self)
  • action_send(self)

New fields (3)
  • fold Boolean
    string='Folded in Kanban'
  • name Char
    required=True translate=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color'
  • name Char
    required=True translate=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • delay_alert_contract Integer
    config_parameter='hr_fleet.delay_alert_contract' default=30 string='Delay alert contract outdated'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources/Fleet
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, Géry Debongnie, Aaron Bohy, Yannick Tivisse, Odoo Online, Pierre Masereel, Jorge Pinna Puissant, Prakash Prajapati, Tiffany Chang (tic), Gorash, sofiagvaladze, Vincent Larcin, bve-odoo, Louis Wicket (wil), nda, Mahamadasif Ansari, Pierre-Yves Dufays, Dylan Kiss (dyki), Brieuc-brd, omra-odoo, Mélanie, Maryam Kia, Flotchet, jugj-odoo, Nathaniel (naja), adsh-odoo, Louis (wil), mano-odoo, Yassin Abdelkarim, Krzysztof Magusiak (krma)
WEBSITE
WEBSITEhttps://www.odoo.com/app/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, costs
and many other features necessary to the management of your fleet
of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (49)
XML IDNameModelTypeStatus
fleet_costs_report_view_graph fleet.vehicle.cost.view.graph fleet.vehicle.cost.report graph New
fleet_costs_report_view_pivot fleet.vehicle.cost.view.pivot fleet.vehicle.cost.report pivot New
fleet_costs_report_view_search fleet.vehicle.cost.view.search fleet.vehicle.cost.report search New
fleet_vechicle_costs_report_view_form fleet.vehicle.cost.report.form fleet.vehicle.cost.report form New
fleet_vechicle_costs_report_view_tree fleet.vehicle.cost.report.view.list fleet.vehicle.cost.report list New
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.list fleet.vehicle.assignation.log list New
fleet_vehicle_log_contract_view_activity fleet.vehicle.log.contract.activity fleet.vehicle.log.contract activity New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_pivot fleet.vehicle.log.contract pivot New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.list fleet.vehicle.log.contract list New
fleet_vehicle_log_services_view_activity fleet.vehicle.log.services activity New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_pivot fleet.vehicle.log.services pivot New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.list fleet.vehicle.log.services list New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_search fleet.vehicle.model.brand.view.search fleet.vehicle.model.brand search New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.list fleet.vehicle.model.brand list New
fleet_vehicle_model_category_view_form fleet.vehicle.model.category.view.form fleet.vehicle.model.category form New
fleet_vehicle_model_category_view_tree fleet.vehicle.model.category.view.list fleet.vehicle.model.category list New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_kanban fleet.vehicle.model.kanban fleet.vehicle.model kanban New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.list fleet.vehicle.model list New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.list fleet.vehicle.odometer list New
fleet_vehicle_send_mail_view_form fleet.vehicle.send.mail form New
fleet_vehicle_service_types_view_search fleet.service.type search New
fleet_vehicle_service_types_view_tree fleet.service.type.list fleet.service.type list New
fleet_vehicle_state_view_form fleet.vehicle.state.form fleet.vehicle.state form New
fleet_vehicle_state_view_tree fleet.vehicle.state.list fleet.vehicle.state list New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_tag_view_view_tree fleet.vehicle.tag.list fleet.vehicle.tag list New
fleet_vehicle_view_activity fleet.vehicle.activity fleet.vehicle activity New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_pivot fleet.vehicle pivot New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.list fleet.vehicle list New
res_config_settings_view_form res.config.settings.view.form.inherit.hr.fleet res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (16)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (61)
  • acquisition_date Date
    default=fields.Date.today help='Date of vehicle registration' required=False tracking=True args: 'Registration Date'
  • active Boolean
    default=True tracking=True args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    string='Catalog Value (VAT Incl.)' tracking=True
  • category_id Many2one → fleet.vehicle.model.category
    compute='_compute_model_fields' readonly=False store=True args: 'fleet.vehicle.model.category', 'Category'
  • co2 Float
    aggregator=None compute='_compute_model_fields' help='CO2 emissions of the vehicle' readonly=False store=True tracking=True args: 'CO2 Emissions'
  • co2_standard Char
    compute='_compute_model_fields' readonly=False store=True args: 'CO2 Standard'
  • color Char
    compute='_compute_model_fields' help='Color of the vehicle' readonly=False store=True
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_state Selection
    compute='_compute_contract_reminder' required=False string='Last Contract State' args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')]
  • country_code Char
    depends=['country_id'] related='country_id.code'
  • country_id Many2one → res.country
    related='company_id.country_id' args: 'res.country'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • description Html
    args: 'Vehicle Description'
  • doors Integer
    compute='_compute_model_fields' help='Number of doors of the vehicle' readonly=False store=True args: 'Doors Number'
  • driver_id Many2one → res.partner
    copy=False help='Driver address of the vehicle' tracking=True args: 'res.partner', 'Driver'
  • electric_assistance Boolean
    compute='_compute_model_fields' readonly=False store=True
  • first_contract_date Date
    default=fields.Date.today string='First Contract Date' tracking=True
  • frame_size Float
  • frame_type Selection
    string='Bike Frame Type' args: [('diamant', 'Diamant'), ('trapez', 'Trapez'), ('wave', 'Wave')]
  • fuel_type Selection
    compute='_compute_model_fields' readonly=False store=True args: FUEL_TYPES, 'Fuel Type'
  • future_driver_id Many2one → res.partner
    check_company=True copy=False help='Next Driver Address of the vehicle' tracking=True args: 'res.partner', 'Future Driver'
  • history_count Integer
    compute='_compute_count_all' string='Drivers History Count'
  • horsepower Integer
    compute='_compute_model_fields' readonly=False store=True
  • horsepower_tax Float
    compute='_compute_model_fields' readonly=False store=True args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='model_id.image_128'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' tracking=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignment Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • manager_id Many2one → res.users
    domain=<expr> args: 'res.users', 'Fleet Manager'
  • model_id Many2one → fleet.vehicle.model
    required=True tracking=True args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    compute='_compute_model_fields' help='Year of the model' readonly=False store=True args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • net_car_value Float
    string='Purchase Value'
  • next_assignation_date Date
    help='This is the date at which the car will be available, if not set it means available instantly' args: 'Assignment Date'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' required=True args: [('kilometers', 'km'), ('miles', 'mi')], 'Odometer Unit'
  • order_date Date
    args: 'Order Date'
  • plan_to_change_bike Boolean
    readonly=False related='driver_id.plan_to_change_bike' store=True
  • plan_to_change_car Boolean
    readonly=False related='driver_id.plan_to_change_car' store=True
  • power Integer
    compute='_compute_model_fields' help='Power in kW of the vehicle' readonly=False store=True args: 'Power'
  • power_unit Selection
    default='power' required=True args: [('power', 'kW'), ('horsepower', 'Horsepower')], 'Power Unit'
  • residual_value Float
  • seats Integer
    compute='_compute_model_fields' help='Number of seats of the vehicle' readonly=False store=True args: 'Seats Number'
  • service_activity Selection
    compute='_compute_service_activity' args: [('none', 'None'), ('overdue', 'Overdue'), ('today', 'Today')]
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_expand_full' help='Current state of the vehicle' ondelete='set null' tracking=True args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • trailer_hook Boolean
    compute='_compute_model_fields' default=False readonly=False store=True string='Trailer Hitch'
  • transmission Selection
    compute='_compute_model_fields' readonly=False store=True args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_properties Properties
    copy=True definition='model_id.vehicle_properties_definition' args: 'Properties'
  • vehicle_range Integer
    string='Range'
  • vehicle_type Selection
    related='model_id.vehicle_type'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' tracking=True args: 'Chassis Number'
  • write_off_date Date
    help="Date when the vehicle's license plate has been cancelled/removed." tracking=True args: 'Cancellation Date'
Public methods (8)
  • act_show_log_cost(self)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • action_accept_driver_change(self)
  • action_send_email(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_driver_history(self, vals)
  • open_assignation_logs(self)
  • return_action_to_open(self)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • cost Float
    readonly=True args: 'Cost'
  • cost_type Selection
    readonly=True selection=[('contract', 'Contract'), ('service', 'Service')] string='Cost Type'
  • date_start Date
    readonly=True args: 'Date'
  • driver_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Driver'
  • fuel_type Char
    readonly=True args: 'Fuel'
  • name Char
    readonly=True args: 'Vehicle Name'
  • vehicle_id Many2one → fleet.vehicle
    readonly=True args: 'fleet.vehicle', 'Vehicle'
  • vehicle_type Selection
    readonly=True args: [('car', 'Car'), ('bike', 'Bike')]
Public methods (1)
  • init(self)

New fields (22)
  • active Boolean
    default=True
  • amount Monetary
    tracking=True args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • cost_frequency Selection
    default='monthly' required=True tracking=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Monetary
    tracking=True args: 'Recurring Cost'
  • cost_subtype_id Many2one → fleet.service.type
    domain=[('category', '=', 'contract')] help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    help='Date when the cost has been executed'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' tracking=True args: 'Contract Expiration Date'
  • expires_today Boolean
    compute='_compute_days_left'
  • has_open_contract Boolean
    compute='_compute_has_open_contract'
  • ins_ref Char
    copy=False size=64 args: 'Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Char
    compute='_compute_contract_name' readonly=False store=True string='Name'
  • notes Html
    copy=False args: 'Terms and Conditions'
  • purchaser_id Many2one
    related='vehicle_id.driver_id' string='Driver'
  • service_ids Many2many → fleet.service.type
    string='Included Services' args: 'fleet.service.type'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' tracking=True args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' tracking=True args: [('futur', 'New'), ('open', 'Running'), ('expired', 'Expired'), ('closed', 'Cancelled')], 'Status'
  • user_id Many2one → res.users
    comodel_name='res.users' default=<expr> index=True string='Responsible'
  • vehicle_id Many2one → fleet.vehicle
    check_company=True required=True tracking=True args: 'fleet.vehicle', 'Vehicle'
Public methods (8)
  • action_close(self)
  • action_draft(self)
  • action_expire(self)
  • action_open(self)
  • compute_next_year_date(self, strdate)
  • run_scheduler(self)
  • scheduler_manage_contract_expiration(self)
    @api.model
  • write(self, vals)

New fields (17)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    default=fields.Date.context_today help='Date when the cost has been executed'
  • description Char
    args: 'Description'
  • inv_ref Char
    args: 'Vendor Reference'
  • manager_id Many2one → res.users
    related='vehicle_id.manager_id' store=True args: 'res.users', 'Fleet Manager'
  • notes Text
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • purchaser_id Many2one → res.partner
    compute='_compute_purchaser_id' readonly=False store=True string='Driver' args: 'res.partner'
  • service_type_id Many2one → fleet.service.type
    default=<expr> required=True args: 'fleet.service.type', 'Service Type'
  • state Selection
    default='new' group_expand=True string='Stage' tracking=True args: [('new', 'New'), ('running', 'Running'), ('done', 'Done'), ('cancelled', 'Cancelled')]
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (24)
  • active Boolean
    default=True
  • brand_id Many2one → fleet.vehicle.model.brand
    required=True tracking=True args: 'fleet.vehicle.model.brand', 'Manufacturer'
  • category_id Many2one → fleet.vehicle.model.category
    tracking=True args: 'fleet.vehicle.model.category', 'Category'
  • co2_standard Char
    tracking=True
  • color Char
    tracking=True
  • default_co2 Float
    tracking=True args: 'CO2 Emissions'
  • default_fuel_type Selection
    default='electric' tracking=True args: FUEL_TYPES, 'Fuel Type'
  • doors Integer
    string='Doors Number' tracking=True
  • electric_assistance Boolean
    default=False tracking=True
  • horsepower Integer
    tracking=True
  • horsepower_tax Float
    tracking=True args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='brand_id.image_128'
  • model_year Integer
    tracking=True
  • name Char
    required=True tracking=True args: 'Model name'
  • power Integer
    tracking=True args: 'Power'
  • power_unit Selection
    default='power' required=True args: [('power', 'kW'), ('horsepower', 'Horsepower')], 'Power Unit'
  • seats Integer
    string='Seats Number' tracking=True
  • trailer_hook Boolean
    default=False string='Trailer Hitch' tracking=True
  • transmission Selection
    tracking=True args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_count Integer
    compute='_compute_vehicle_count' search='_search_vehicle_count'
  • vehicle_properties_definition PropertiesDefinition
    args: 'Vehicle Properties'
  • vehicle_range Integer
    string='Range'
  • vehicle_type Selection
    default='car' required=True tracking=True args: [('car', 'Car'), ('bike', 'Bike')]
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (1)
  • action_model_vehicle(self)

New fields (5)
  • active Boolean
    default=True
  • image_128 Image
    max_height=128 max_width=128 args: 'Logo'
  • model_count Integer
    compute='_compute_model_count' store=True string=''
  • model_ids One2many → fleet.vehicle.model
    args: 'fleet.vehicle.model', 'brand_id'
  • name Char
    required=True args: 'Name'
Public methods (1)
  • action_brand_model(self)

New fields (2)
  • name Char
    required=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    readonly=False related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    aggregator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (4)
  • attachment_ids Many2many → ir.attachment
    string='Attachments' args: 'ir.attachment', 'fleet_vehicle_mail_compose_message_ir_attachments_rel', 'wizard_id', 'attachment_id'
  • author_id Many2one → res.partner
    default=<expr> required=True args: 'res.partner', 'Author'
  • template_id Many2one
    domain=<expr>
  • vehicle_ids Many2many → fleet.vehicle
    required=True string='Vehicles' args: 'fleet.vehicle'
Public methods (2)
  • action_save_as_template(self)
  • action_send(self)

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color'
  • name Char
    required=True translate=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • delay_alert_contract Integer
    config_parameter='hr_fleet.delay_alert_contract' default=30 string='Delay alert contract outdated'
Public methods (0)

No public methods.

New fields (2)
  • plan_to_change_bike Boolean
    default=False args: 'Plan To Change Bike'
  • plan_to_change_car Boolean
    default=False tracking=True args: 'Plan To Change Car'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources/Fleet
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, qdp-odoo, Yannick Tivisse, Odoo Online, Jorge Pinna Puissant, Alexandre Kühn, Victor Feyens, Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, abd-msyukyu-odoo, Kevin Baptiste, sofiagvaladze, niyasraphy, bve-odoo, Thomas Lefebvre (thle), Louis Wicket (wil), nda, Pierre-Yves Dufays, Jurgen (jugj), Dylan Kiss (dyki), Bruno Boi, FrancoisGe, prye-odoo, Adrien Schoffeniels, stcc-odoo, Brieuc-brd, Leonardo Pavan Rocha, shag-odoo, stefanorigano (SRI), dasz, Nathaniel (naja), Julien Carion (juca), adsh-odoo, Louis (wil), Yassin Abdelkarim, ampa-odoo, Elisabeth Dickinson, Pierre Pulinckx (pipu), rupa-odoo
WEBSITE
WEBSITEhttps://www.odoo.com/app/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, costs
and many other features necessary to the management of your fleet
of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (47)
XML IDNameModelTypeStatus
fleet_costs_report_view_graph fleet.vehicle.cost.view.graph fleet.vehicle.cost.report graph New
fleet_costs_report_view_pivot fleet.vehicle.cost.view.pivot fleet.vehicle.cost.report pivot New
fleet_costs_report_view_search fleet.vehicle.cost.view.search fleet.vehicle.cost.report search New
fleet_vechicle_costs_report_view_form fleet.vehicle.cost.report.form fleet.vehicle.cost.report form New
fleet_vechicle_costs_report_view_tree fleet.vehicle.cost.report.view.tree fleet.vehicle.cost.report tree New
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.tree fleet.vehicle.assignation.log tree New
fleet_vehicle_log_contract_view_activity fleet.vehicle.log.contract.activity fleet.vehicle.log.contract activity New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_pivot fleet.vehicle.log.contract pivot New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_services_view_activity fleet.vehicle.log.services activity New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_pivot fleet.vehicle.log.services pivot New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_search fleet.vehicle.model.brand.view.search fleet.vehicle.model.brand search New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_category_view_form fleet.vehicle.model.category.view.form fleet.vehicle.model.category form New
fleet_vehicle_model_category_view_tree fleet.vehicle.model.category.view.tree fleet.vehicle.model.category tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_kanban fleet.vehicle.model.kanban fleet.vehicle.model kanban New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_search fleet.service.type search New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_tag_view_view_tree fleet.vehicle.tag.tree fleet.vehicle.tag tree New
fleet_vehicle_view_activity fleet.vehicle.activity fleet.vehicle activity New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_pivot fleet.vehicle pivot New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
res_config_settings_view_form res.config.settings.view.form.inherit.hr.fleet res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (15)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (61)
  • acquisition_date Date
    default=fields.Date.today help='Date of vehicle registration' required=False args: 'Registration Date'
  • active Boolean
    default=True tracking=True args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    string='Catalog Value (VAT Incl.)'
  • category_id Many2one → fleet.vehicle.model.category
    compute='_compute_model_fields' readonly=False store=True args: 'fleet.vehicle.model.category', 'Category'
  • co2 Float
    compute='_compute_model_fields' group_operator=None help='CO2 emissions of the vehicle' readonly=False store=True tracking=True args: 'CO2 Emissions'
  • co2_standard Char
    compute='_compute_model_fields' readonly=False store=True args: 'CO2 Standard'
  • color Char
    compute='_compute_model_fields' help='Color of the vehicle' readonly=False store=True
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' string='Total of contracts due or overdue minus one'
  • contract_state Selection
    compute='_compute_contract_reminder' required=False string='Last Contract State' args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')]
  • country_code Char
    depends=['country_id'] related='country_id.code'
  • country_id Many2one → res.country
    related='company_id.country_id' args: 'res.country'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • description Html
    args: 'Vehicle Description'
  • doors Integer
    compute='_compute_model_fields' help='Number of doors of the vehicle' readonly=False store=True args: 'Doors Number'
  • driver_id Many2one → res.partner
    copy=False help='Driver address of the vehicle' tracking=True args: 'res.partner', 'Driver'
  • electric_assistance Boolean
    compute='_compute_model_fields' readonly=False store=True
  • first_contract_date Date
    default=fields.Date.today string='First Contract Date'
  • frame_size Float
  • frame_type Selection
    string='Bike Frame Type' args: [('diamant', 'Diamant'), ('trapez', 'Trapez'), ('wave', 'Wave')]
  • fuel_type Selection
    compute='_compute_model_fields' readonly=False store=True args: FUEL_TYPES, 'Fuel Type'
  • future_driver_id Many2one → res.partner
    check_company=True copy=False help='Next Driver Address of the vehicle' tracking=True args: 'res.partner', 'Future Driver'
  • history_count Integer
    compute='_compute_count_all' string='Drivers History Count'
  • horsepower Integer
    compute='_compute_model_fields' readonly=False store=True
  • horsepower_tax Float
    compute='_compute_model_fields' readonly=False store=True args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='model_id.image_128'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' tracking=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignment Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • manager_id Many2one → res.users
    domain=<expr> args: 'res.users', 'Fleet Manager'
  • model_id Many2one → fleet.vehicle.model
    required=True tracking=True args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    compute='_compute_model_fields' help='Year of the model' readonly=False store=True args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • net_car_value Float
    string='Purchase Value'
  • next_assignation_date Date
    help='This is the date at which the car will be available, if not set it means available instantly' args: 'Assignment Date'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' required=True args: [('kilometers', 'km'), ('miles', 'mi')], 'Odometer Unit'
  • order_date Date
    args: 'Order Date'
  • plan_to_change_bike Boolean
    readonly=False related='driver_id.plan_to_change_bike' store=True
  • plan_to_change_car Boolean
    readonly=False related='driver_id.plan_to_change_car' store=True
  • power Integer
    compute='_compute_model_fields' help='Power in kW of the vehicle' readonly=False store=True args: 'Power'
  • residual_value Float
  • seats Integer
    compute='_compute_model_fields' help='Number of seats of the vehicle' readonly=False store=True args: 'Seats Number'
  • service_activity Selection
    compute='_compute_service_activity' args: [('none', 'None'), ('overdue', 'Overdue'), ('today', 'Today')]
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_stage_ids' help='Current state of the vehicle' ondelete='set null' tracking=True args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • trailer_hook Boolean
    compute='_compute_model_fields' default=False readonly=False store=True string='Trailer Hitch'
  • transmission Selection
    compute='_compute_model_fields' readonly=False store=True args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_properties Properties
    copy=True definition='model_id.vehicle_properties_definition' args: 'Properties'
  • vehicle_type Selection
    related='model_id.vehicle_type'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
  • write_off_date Date
    help="Date when the vehicle's license plate has been cancelled/removed." tracking=True args: 'Cancellation Date'
Public methods (7)
  • act_show_log_cost(self)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • action_accept_driver_change(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_driver_history(self, vals)
  • open_assignation_logs(self)
  • return_action_to_open(self)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • cost Float
    readonly=True args: 'Cost'
  • cost_type Selection
    readonly=True selection=[('contract', 'Contract'), ('service', 'Service')] string='Cost Type'
  • date_start Date
    readonly=True args: 'Date'
  • driver_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Driver'
  • fuel_type Char
    readonly=True args: 'Fuel'
  • name Char
    readonly=True args: 'Vehicle Name'
  • vehicle_id Many2one → fleet.vehicle
    readonly=True args: 'fleet.vehicle', 'Vehicle'
  • vehicle_type Selection
    readonly=True args: [('car', 'Car'), ('bike', 'Bike')]
Public methods (1)
  • init(self)

New fields (21)
  • active Boolean
    default=True
  • amount Monetary
    tracking=True args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • cost_frequency Selection
    default='monthly' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Monetary
    tracking=True args: 'Recurring Cost'
  • cost_subtype_id Many2one → fleet.service.type
    domain=[('category', '=', 'contract')] help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    help='Date when the cost has been executed'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • expires_today Boolean
    compute='_compute_days_left'
  • ins_ref Char
    copy=False size=64 args: 'Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Char
    compute='_compute_contract_name' readonly=False store=True string='Name'
  • notes Html
    copy=False args: 'Terms and Conditions'
  • purchaser_id Many2one
    related='vehicle_id.driver_id' string='Driver'
  • service_ids Many2many → fleet.service.type
    string='Included Services' args: 'fleet.service.type'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' readonly=True tracking=True args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')], 'Status'
  • user_id Many2one → res.users
    default=<expr> index=True args: 'res.users', 'Responsible'
  • vehicle_id Many2one → fleet.vehicle
    check_company=True required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (8)
  • action_close(self)
  • action_draft(self)
  • action_expire(self)
  • action_open(self)
  • compute_next_year_date(self, strdate)
  • run_scheduler(self)
  • scheduler_manage_contract_expiration(self)
    @api.model
  • write(self, vals)

New fields (17)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    default=fields.Date.context_today help='Date when the cost has been executed'
  • description Char
    args: 'Description'
  • inv_ref Char
    args: 'Vendor Reference'
  • manager_id Many2one → res.users
    related='vehicle_id.manager_id' store=True args: 'res.users', 'Fleet Manager'
  • notes Text
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • purchaser_id Many2one → res.partner
    compute='_compute_purchaser_id' readonly=False store=True string='Driver' args: 'res.partner'
  • service_type_id Many2one → fleet.service.type
    default=<expr> required=True args: 'fleet.service.type', 'Service Type'
  • state Selection
    default='new' group_expand='_expand_states' string='Stage' tracking=True args: [('new', 'New'), ('running', 'Running'), ('done', 'Done'), ('cancelled', 'Cancelled')]
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (22)
  • active Boolean
    default=True
  • brand_id Many2one → fleet.vehicle.model.brand
    required=True args: 'fleet.vehicle.model.brand', 'Manufacturer'
  • category_id Many2one → fleet.vehicle.model.category
    args: 'fleet.vehicle.model.category', 'Category'
  • co2_standard Char
  • color Char
  • default_co2 Float
    args: 'CO2 Emissions'
  • default_fuel_type Selection
    default='electric' args: FUEL_TYPES, 'Fuel Type'
  • doors Integer
    string='Doors Number'
  • electric_assistance Boolean
    default=False
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='brand_id.image_128'
  • model_year Integer
  • name Char
    required=True args: 'Model name'
  • power Integer
    args: 'Power'
  • seats Integer
    string='Seats Number'
  • trailer_hook Boolean
    default=False string='Trailer Hitch'
  • transmission Selection
    args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_count Integer
    compute='_compute_vehicle_count' search='_search_vehicle_count'
  • vehicle_properties_definition PropertiesDefinition
    args: 'Vehicle Properties'
  • vehicle_type Selection
    default='car' required=True args: [('car', 'Car'), ('bike', 'Bike')]
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (1)
  • action_model_vehicle(self)

New fields (5)
  • active Boolean
    default=True
  • image_128 Image
    max_height=128 max_width=128 args: 'Logo'
  • model_count Integer
    compute='_compute_model_count' store=True string=''
  • model_ids One2many → fleet.vehicle.model
    args: 'fleet.vehicle.model', 'brand_id'
  • name Char
    required=True args: 'Name'
Public methods (1)
  • action_brand_model(self)

New fields (2)
  • name Char
    required=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    readonly=False related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color'
  • name Char
    required=True translate=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • delay_alert_contract Integer
    config_parameter='hr_fleet.delay_alert_contract' default=30 string='Delay alert contract outdated'
Public methods (0)

No public methods.

New fields (2)
  • plan_to_change_bike Boolean
    default=False args: 'Plan To Change Bike'
  • plan_to_change_car Boolean
    default=False tracking=True args: 'Plan To Change Car'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources/Fleet
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Géry Debongnie, Yannick Tivisse, Romain Derie, Romeo Fragomeli, Victor Feyens, Tiffany Chang (tic), Kevin Baptiste, Philippe Wauthy, sofiagvaladze, Florian Damhaut, Yolann Sabaux, Dossogne Bertrand, bve-odoo, Thomas Lefebvre (thle), Louis Wicket (wil), nda, Jurgen (jugj), Bruno Boi, Michael (mcm), stcc-odoo, Brieuc-brd, Leonardo Pavan Rocha, Youssef Bashandy, Martin Trigaux (mat), Yassin Abdelkarim, ampa-odoo
WEBSITE
WEBSITEhttps://www.odoo.com/app/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, costs
and many other features necessary to the management of your fleet
of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (46)
XML IDNameModelTypeStatus
fleet_costs_report_view_graph fleet.vehicle.cost.view.graph fleet.vehicle.cost.report graph New
fleet_costs_report_view_pivot fleet.vehicle.cost.view.pivot fleet.vehicle.cost.report pivot New
fleet_costs_report_view_search fleet.vehicle.cost.view.search fleet.vehicle.cost.report search New
fleet_vechicle_costs_report_view_tree fleet.vehicle.cost.report.view.tree fleet.vehicle.cost.report tree New
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.tree fleet.vehicle.assignation.log tree New
fleet_vehicle_log_contract_view_activity fleet.vehicle.log.contract.activity fleet.vehicle.log.contract activity New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_pivot fleet.vehicle.log.contract pivot New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_services_view_activity fleet.vehicle.log.services activity New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_pivot fleet.vehicle.log.services pivot New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_search fleet.vehicle.model.brand.view.search fleet.vehicle.model.brand search New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_category_view_form fleet.vehicle.model.category.view.form fleet.vehicle.model.category form New
fleet_vehicle_model_category_view_tree fleet.vehicle.model.category.view.tree fleet.vehicle.model.category tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_kanban fleet.vehicle.model.kanban fleet.vehicle.model kanban New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_search fleet.service.type search New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_tag_view_view_tree fleet.vehicle.tag.tree fleet.vehicle.tag tree New
fleet_vehicle_view_activity fleet.vehicle.activity fleet.vehicle activity New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_pivot fleet.vehicle pivot New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
res_config_settings_view_form res.config.settings.view.form.inherit.hr.fleet res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (14)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (59)
  • acquisition_date Date
    default=fields.Date.today help='Date of vehicle registration' required=False args: 'Registration Date'
  • active Boolean
    default=True tracking=True args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    string='Catalog Value (VAT Incl.)'
  • category_id Many2one → fleet.vehicle.model.category
    compute='_compute_model_fields' readonly=False store=True args: 'fleet.vehicle.model.category', 'Category'
  • co2 Float
    compute='_compute_model_fields' help='CO2 emissions of the vehicle' readonly=False store=True tracking=True args: 'CO2 Emissions'
  • co2_standard Char
    compute='_compute_model_fields' readonly=False store=True args: 'CO2 Standard'
  • color Char
    compute='_compute_model_fields' help='Color of the vehicle' readonly=False store=True
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' string='Total of contracts due or overdue minus one'
  • contract_state Selection
    compute='_compute_contract_reminder' required=False string='Last Contract State' args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')]
  • country_code Char
    depends=['country_id'] related='country_id.code'
  • country_id Many2one → res.country
    related='company_id.country_id' args: 'res.country'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • description Html
    args: 'Vehicle Description'
  • doors Integer
    compute='_compute_model_fields' help='Number of doors of the vehicle' readonly=False store=True args: 'Doors Number'
  • driver_id Many2one → res.partner
    copy=False help='Driver address of the vehicle' tracking=True args: 'res.partner', 'Driver'
  • electric_assistance Boolean
    compute='_compute_model_fields' readonly=False store=True
  • first_contract_date Date
    default=fields.Date.today string='First Contract Date'
  • frame_size Float
  • frame_type Selection
    string='Bike Frame Type' args: [('diamant', 'Diamant'), ('trapez', 'Trapez'), ('wave', 'Wave')]
  • fuel_type Selection
    compute='_compute_model_fields' readonly=False store=True args: FUEL_TYPES, 'Fuel Type'
  • future_driver_id Many2one → res.partner
    copy=False domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" help='Next Driver Address of the vehicle' tracking=True args: 'res.partner', 'Future Driver'
  • history_count Integer
    compute='_compute_count_all' string='Drivers History Count'
  • horsepower Integer
    compute='_compute_model_fields' readonly=False store=True
  • horsepower_tax Float
    compute='_compute_model_fields' readonly=False store=True args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='model_id.image_128'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' tracking=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignment Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • manager_id Many2one → res.users
    domain=<expr> args: 'res.users', 'Fleet Manager'
  • model_id Many2one → fleet.vehicle.model
    required=True tracking=True args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    compute='_compute_model_fields' help='Year of the model' readonly=False store=True args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • net_car_value Float
    string='Purchase Value'
  • next_assignation_date Date
    help='This is the date at which the car will be available, if not set it means available instantly' args: 'Assignment Date'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' required=True args: [('kilometers', 'km'), ('miles', 'mi')], 'Odometer Unit'
  • plan_to_change_bike Boolean
    readonly=False related='driver_id.plan_to_change_bike' store=True
  • plan_to_change_car Boolean
    readonly=False related='driver_id.plan_to_change_car' store=True
  • power Integer
    compute='_compute_model_fields' help='Power in kW of the vehicle' readonly=False store=True args: 'Power'
  • residual_value Float
  • seats Integer
    compute='_compute_model_fields' help='Number of seats of the vehicle' readonly=False store=True args: 'Seats Number'
  • service_activity Selection
    compute='_compute_service_activity' args: [('none', 'None'), ('overdue', 'Overdue'), ('today', 'Today')]
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_stage_ids' help='Current state of the vehicle' ondelete='set null' tracking=True args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • trailer_hook Boolean
    compute='_compute_model_fields' default=False readonly=False store=True string='Trailer Hitch'
  • transmission Selection
    compute='_compute_model_fields' readonly=False store=True args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_type Selection
    related='model_id.vehicle_type'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
  • write_off_date Date
    help="Date when the vehicle's license plate has been cancelled/removed." tracking=True args: 'Cancellation Date'
Public methods (8)
  • act_show_log_cost(self)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • action_accept_driver_change(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_driver_history(self, vals)
  • open_assignation_logs(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
  • return_action_to_open(self)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • cost Float
    readonly=True args: 'Cost'
  • cost_type Selection
    readonly=True selection=[('contract', 'Contract'), ('service', 'Service')] string='Cost Type'
  • date_start Date
    readonly=True args: 'Date'
  • driver_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Driver'
  • fuel_type Char
    readonly=True args: 'Fuel'
  • name Char
    readonly=True args: 'Vehicle Name'
  • vehicle_id Many2one → fleet.vehicle
    readonly=True args: 'fleet.vehicle', 'Vehicle'
  • vehicle_type Selection
    readonly=True args: [('car', 'Car'), ('bike', 'Bike')]
Public methods (1)
  • init(self)

New fields (21)
  • active Boolean
    default=True
  • amount Monetary
    tracking=True args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • cost_frequency Selection
    default='monthly' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Monetary
    tracking=True args: 'Recurring Cost'
  • cost_subtype_id Many2one → fleet.service.type
    domain=[('category', '=', 'contract')] help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    help='Date when the cost has been executed'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • expires_today Boolean
    compute='_compute_days_left'
  • ins_ref Char
    copy=False size=64 args: 'Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Char
    compute='_compute_contract_name' readonly=False store=True string='Name'
  • notes Html
    copy=False args: 'Terms and Conditions'
  • purchaser_id Many2one
    related='vehicle_id.driver_id' string='Driver'
  • service_ids Many2many → fleet.service.type
    string='Included Services' args: 'fleet.service.type'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' readonly=True tracking=True args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')], 'Status'
  • user_id Many2one → res.users
    default=<expr> index=True args: 'res.users', 'Responsible'
  • vehicle_id Many2one → fleet.vehicle
    check_company=True required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (8)
  • action_close(self)
  • action_draft(self)
  • action_expire(self)
  • action_open(self)
  • compute_next_year_date(self, strdate)
  • run_scheduler(self)
  • scheduler_manage_contract_expiration(self)
    @api.model
  • write(self, vals)

New fields (17)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    default=fields.Date.context_today help='Date when the cost has been executed'
  • description Char
    args: 'Description'
  • inv_ref Char
    args: 'Vendor Reference'
  • manager_id Many2one → res.users
    related='vehicle_id.manager_id' store=True args: 'res.users', 'Fleet Manager'
  • notes Text
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • purchaser_id Many2one → res.partner
    compute='_compute_purchaser_id' readonly=False store=True string='Driver' args: 'res.partner'
  • service_type_id Many2one → fleet.service.type
    default=<expr> required=True args: 'fleet.service.type', 'Service Type'
  • state Selection
    default='new' group_expand='_expand_states' string='Stage' args: [('new', 'New'), ('running', 'Running'), ('done', 'Done'), ('cancelled', 'Cancelled')]
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (21)
  • active Boolean
    default=True
  • brand_id Many2one → fleet.vehicle.model.brand
    required=True args: 'fleet.vehicle.model.brand', 'Manufacturer'
  • category_id Many2one → fleet.vehicle.model.category
    args: 'fleet.vehicle.model.category', 'Category'
  • co2_standard Char
  • color Char
  • default_co2 Float
    args: 'CO2 Emissions'
  • default_fuel_type Selection
    default='electric' args: FUEL_TYPES, 'Fuel Type'
  • doors Integer
    string='Doors Number'
  • electric_assistance Boolean
    default=False
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='brand_id.image_128'
  • model_year Integer
  • name Char
    required=True args: 'Model name'
  • power Integer
    args: 'Power'
  • seats Integer
    string='Seats Number'
  • trailer_hook Boolean
    default=False string='Trailer Hitch'
  • transmission Selection
    args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_count Integer
    compute='_compute_vehicle_count'
  • vehicle_type Selection
    default='car' required=True args: [('car', 'Car'), ('bike', 'Bike')]
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (2)
  • action_model_vehicle(self)
  • name_get(self)

New fields (4)
  • image_128 Image
    max_height=128 max_width=128 args: 'Logo'
  • model_count Integer
    compute='_compute_model_count' store=True string=''
  • model_ids One2many → fleet.vehicle.model
    args: 'fleet.vehicle.model', 'brand_id'
  • name Char
    required=True args: 'Name'
Public methods (1)
  • action_brand_model(self)

New fields (2)
  • name Char
    required=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    readonly=False related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color'
  • name Char
    required=True translate=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (1)
  • delay_alert_contract Integer
    config_parameter='hr_fleet.delay_alert_contract' default=30 string='Delay alert contract outdated'
Public methods (0)

No public methods.

New fields (2)
  • plan_to_change_bike Boolean
    default=False args: 'Plan To Change Bike'
  • plan_to_change_car Boolean
    default=False args: 'Plan To Change Car'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources/Fleet
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Goffin Simon, Nicolas Lempereur, GitHub, Barad Mahendra, Yannick Tivisse, wan, Xavier-Do, Julien Mougenot, Adrien Widart, Prakash Prajapati, Kamesh Patel, nie, IEL, Mathieu Duckerts-Antoine, William Braeckman, Kevin Baptiste, Florian Damhaut, Yolann Sabaux, Michael Mattiello (mcm), dht-odoo, niyasraphy, bve-odoo, Urvi Soni, nda, Munaf Khan, Jurgen (jugj), Kairis, Leonardo Pavan Rocha, sahista pathan
WEBSITE
WEBSITEhttps://www.odoo.com/app/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:26
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, costs
and many other features necessary to the management of your fleet
of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (44)
XML IDNameModelTypeStatus
fleet_costs_report_view_graph fleet.vehicle.cost.view.graph fleet.vehicle.cost.report graph New
fleet_costs_report_view_pivot fleet.vehicle.cost.view.pivot fleet.vehicle.cost.report pivot New
fleet_costs_report_view_search fleet.vehicle.cost.view.search fleet.vehicle.cost.report search New
fleet_vechicle_costs_report_view_tree fleet.vehicle.cost.report.view.tree fleet.vehicle.cost.report tree New
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.tree fleet.vehicle.assignation.log tree New
fleet_vehicle_log_contract_view_activity fleet.vehicle.log.contract.activity fleet.vehicle.log.contract activity New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_pivot fleet.vehicle.log.contract pivot New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_pivot fleet.vehicle.log.services pivot New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_search fleet.vehicle.model.brand.view.search fleet.vehicle.model.brand search New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_category_view_form fleet.vehicle.model.category.view.form fleet.vehicle.model.category form New
fleet_vehicle_model_category_view_tree fleet.vehicle.model.category.view.tree fleet.vehicle.model.category tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_kanban fleet.vehicle.model.kanban fleet.vehicle.model kanban New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_tag_view_view_tree fleet.vehicle.tag.tree fleet.vehicle.tag tree New
fleet_vehicle_view_activity fleet.vehicle.activity fleet.vehicle activity New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_pivot fleet.vehicle pivot New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
res_config_settings_view_form res.config.settings.view.form.inherit.hr.fleet res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (14)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (56)
  • acquisition_date Date
    default=fields.Date.today help='Date when the vehicle has been immatriculated' required=False args: 'Immatriculation Date'
  • active Boolean
    default=True tracking=True args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    help='Value of the bought vehicle' string='Catalog Value (VAT Incl.)'
  • co2 Float
    compute='_compute_model_fields' help='CO2 emissions of the vehicle' readonly=False store=True args: 'CO2 Emissions'
  • co2_standard Char
    compute='_compute_model_fields' readonly=False store=True args: 'CO2 Standard'
  • color Char
    compute='_compute_model_fields' help='Color of the vehicle' readonly=False store=True
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' string='Total of contracts due or overdue minus one'
  • contract_state Selection
    compute='_compute_contract_reminder' required=False string='Last Contract State' args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')]
  • country_code Char
    related='country_id.code'
  • country_id Many2one → res.country
    related='company_id.country_id' args: 'res.country'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • description Html
    help='Add a note about this vehicle' args: 'Vehicle Description'
  • doors Integer
    compute='_compute_model_fields' help='Number of doors of the vehicle' readonly=False store=True args: 'Doors Number'
  • driver_id Many2one → res.partner
    copy=False help='Driver address of the vehicle' tracking=True args: 'res.partner', 'Driver'
  • electric_assistance Boolean
    compute='_compute_model_fields' readonly=False store=True
  • first_contract_date Date
    default=fields.Date.today string='First Contract Date'
  • frame_size Float
  • frame_type Selection
    help='Frame type of the bike' args: [('diamant', 'Diamant'), ('trapez', 'Trapez'), ('wave', 'Wave')]
  • fuel_type Selection
    compute='_compute_model_fields' help='Fuel Used by the vehicle' readonly=False store=True args: FUEL_TYPES, 'Fuel Type'
  • future_driver_id Many2one → res.partner
    copy=False domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" help='Next Driver Address of the vehicle' tracking=True args: 'res.partner', 'Future Driver'
  • history_count Integer
    compute='_compute_count_all' string='Drivers History Count'
  • horsepower Integer
    compute='_compute_model_fields' readonly=False store=True
  • horsepower_tax Float
    compute='_compute_model_fields' readonly=False store=True args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='model_id.image_128'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' tracking=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignment Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • manager_id Many2one → res.users
    domain=<expr> args: 'res.users', 'Fleet Manager'
  • model_id Many2one → fleet.vehicle.model
    help='Model of the vehicle' required=True tracking=True args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    compute='_compute_model_fields' help='Year of the model' readonly=False store=True args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • net_car_value Float
    help='Purchase value of the vehicle' string='Purchase Value'
  • next_assignation_date Date
    help='This is the date at which the car will be available, if not set it means available instantly' args: 'Assignment Date'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' help='Unit of the odometer ' required=True args: [('kilometers', 'km'), ('miles', 'mi')], 'Odometer Unit'
  • plan_to_change_bike Boolean
    readonly=False related='driver_id.plan_to_change_bike' store=True
  • plan_to_change_car Boolean
    readonly=False related='driver_id.plan_to_change_car' store=True
  • power Integer
    compute='_compute_model_fields' help='Power in kW of the vehicle' readonly=False store=True args: 'Power'
  • residual_value Float
  • seats Integer
    compute='_compute_model_fields' help='Number of seats of the vehicle' readonly=False store=True args: 'Seats Number'
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_stage_ids' help='Current state of the vehicle' ondelete='set null' tracking=True args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • trailer_hook Boolean
    compute='_compute_model_fields' default=False readonly=False store=True string='Trailer Hitch'
  • transmission Selection
    compute='_compute_model_fields' help='Transmission Used by the vehicle' readonly=False store=True args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_type Selection
    related='model_id.vehicle_type'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
Public methods (8)
  • act_show_log_cost(self)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • action_accept_driver_change(self)
  • create(self, vals)
    @api.model
  • create_driver_history(self, vals)
  • open_assignation_logs(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
  • return_action_to_open(self)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • cost Float
    readonly=True args: 'Cost'
  • cost_type Selection
    readonly=True selection=[('contract', 'Contract'), ('service', 'Service')] string='Cost Type'
  • date_start Date
    readonly=True args: 'Date'
  • driver_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Driver'
  • fuel_type Char
    readonly=True args: 'Fuel'
  • name Char
    readonly=True args: 'Vehicle Name'
  • vehicle_id Many2one → fleet.vehicle
    readonly=True args: 'fleet.vehicle', 'Vehicle'
  • vehicle_type Selection
    readonly=True args: [('car', 'Car'), ('bike', 'Bike')]
Public methods (1)
  • init(self)

New fields (20)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • cost_frequency Selection
    default='monthly' help='Frequency of the recuring cost' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Monetary
    args: 'Recurring Cost'
  • cost_subtype_id Many2one → fleet.service.type
    domain=[('category', '=', 'contract')] help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    help='Date when the cost has been executed'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • ins_ref Char
    copy=False size=64 args: 'Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Char
    compute='_compute_contract_name' store=True string='Name'
  • notes Html
    copy=False help='Write here all supplementary information relative to this contract' args: 'Terms and Conditions'
  • purchaser_id Many2one
    related='vehicle_id.driver_id' string='Driver'
  • service_ids Many2many → fleet.service.type
    string='Included Services' args: 'fleet.service.type'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' readonly=True tracking=True args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')], 'Status'
  • user_id Many2one → res.users
    default=<expr> index=True args: 'res.users', 'Responsible'
  • vehicle_id Many2one → fleet.vehicle
    check_company=True help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (8)
  • action_close(self)
  • action_draft(self)
  • action_expire(self)
  • action_open(self)
  • compute_next_year_date(self, strdate)
  • run_scheduler(self)
  • scheduler_manage_contract_expiration(self)
    @api.model
  • write(self, vals)

New fields (16)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    default=fields.Date.context_today help='Date when the cost has been executed'
  • description Char
    args: 'Description'
  • inv_ref Char
    args: 'Vendor Reference'
  • notes Text
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • purchaser_id Many2one → res.partner
    compute='_compute_purchaser_id' readonly=False store=True string='Driver' args: 'res.partner'
  • service_type_id Many2one → fleet.service.type
    default=<expr> required=True args: 'fleet.service.type', 'Service Type'
  • state Selection
    default='new' group_expand='_expand_states' string='Stage' args: [('new', 'New'), ('running', 'Running'), ('done', 'Done'), ('cancelled', 'Cancelled')]
  • vehicle_id Many2one → fleet.vehicle
    help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (21)
  • active Boolean
    default=True
  • brand_id Many2one → fleet.vehicle.model.brand
    help='Manufacturer of the vehicle' required=True args: 'fleet.vehicle.model.brand', 'Manufacturer'
  • category_id Many2one → fleet.vehicle.model.category
    args: 'fleet.vehicle.model.category', 'Category'
  • co2_standard Char
  • color Char
  • default_co2 Float
    args: 'CO2 Emissions'
  • default_fuel_type Selection
    default='electric' args: FUEL_TYPES, 'Fuel Type'
  • doors Integer
    string='Doors Number'
  • electric_assistance Boolean
    default=False
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='brand_id.image_128'
  • model_year Integer
  • name Char
    required=True args: 'Model name'
  • power Integer
    args: 'Power'
  • seats Integer
    string='Seats Number'
  • trailer_hook Boolean
    default=False string='Trailer Hitch'
  • transmission Selection
    help='Transmission Used by the vehicle' args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_count Integer
    compute='_compute_vehicle_count'
  • vehicle_type Selection
    default='car' required=True args: [('car', 'Car'), ('bike', 'Bike')]
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (2)
  • action_model_vehicle(self)
  • name_get(self)
    @api.depends('name', 'brand_id')

New fields (4)
  • image_128 Image
    max_height=128 max_width=128 args: 'Logo'
  • model_count Integer
    compute='_compute_model_count' store=True string=''
  • model_ids One2many → fleet.vehicle.model
    args: 'fleet.vehicle.model', 'brand_id'
  • name Char
    required=True args: 'Make'
Public methods (1)
  • action_brand_model(self)

New fields (2)
  • name Char
    required=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    readonly=False related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    help='Used to order the note stages'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color Index'
  • name Char
    required=True translate=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (1)
  • delay_alert_contract Integer
    config_parameter='hr_fleet.delay_alert_contract' default=30 string='Delay alert contract outdated'
Public methods (0)

No public methods.

New fields (2)
  • plan_to_change_bike Boolean
    default=False args: 'Plan To Change Bike'
  • plan_to_change_car Boolean
    default=False args: 'Plan To Change Car'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources/Fleet
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Thibault Francois, Aaron Bohy, GitHub, Barad Mahendra, Yannick Tivisse, jev-odoo, Xavier-Do, Victor Feyens, Paul Morelle, Sébastien Theys, Nasreddin (bon), fw-bot, Lucas Lefèvre, Adrien Widart, nie, IEL, Mathieu Duckerts-Antoine, jbm-odoo, Kevin Baptiste, prro-odoo, Florian Damhaut, Urvi Soni, nda
WEBSITE
WEBSITEhttps://www.odoo.com/page/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, costs
and many other features necessary to the management of your fleet
of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (37)
XML IDNameModelTypeStatus
fleet_costs_report_view_graph fleet.vehicle.cost.view.graph fleet.vehicle.cost.report graph New
fleet_costs_report_view_pivot fleet.vehicle.cost.view.pivot fleet.vehicle.cost.report pivot New
fleet_costs_report_view_search fleet.vehicle.cost.view.search fleet.vehicle.cost.report search New
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.tree fleet.vehicle.assignation.log tree New
fleet_vehicle_log_contract_view_activity fleet.vehicle.log.contract.activity fleet.vehicle.log.contract activity New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_kanban fleet.vehicle.model.kanban fleet.vehicle.model kanban New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_tag_view_view_tree fleet.vehicle.tag.tree fleet.vehicle.tag tree New
fleet_vehicle_view_activity fleet.vehicle.activity fleet.vehicle activity New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
res_config_settings_view_form res.config.settings.view.form.inherit.hr.fleet res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (13)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (47)
  • acquisition_date Date
    default=fields.Date.today help='Date when the vehicle has been immatriculated' required=False args: 'Immatriculation Date'
  • active Boolean
    default=True tracking=True args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    help='Value of the bought vehicle' string='Catalog Value (VAT Incl.)'
  • co2 Float
    help='CO2 emissions of the vehicle' args: 'CO2 Emissions'
  • color Char
    help='Color of the vehicle'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' string='Total of contracts due or overdue minus one'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • description Text
    args: 'Vehicle Description'
  • doors Integer
    default=5 help='Number of doors of the vehicle' args: 'Doors Number'
  • driver_id Many2one → res.partner
    copy=False help='Driver of the vehicle' tracking=True args: 'res.partner', 'Driver'
  • first_contract_date Date
    default=fields.Date.today string='First Contract Date'
  • fuel_type Selection
    help='Fuel Used by the vehicle' args: [('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('lpg', 'LPG'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type'
  • future_driver_id Many2one → res.partner
    copy=False domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" help='Next Driver of the vehicle' tracking=True args: 'res.partner', 'Future Driver'
  • history_count Integer
    compute='_compute_count_all' string='Drivers History Count'
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image_128 Image
    readonly=True related='model_id.image_128'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' tracking=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignment Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • manager_id Many2one → res.users
    compute='_compute_manager_id' domain=<expr> readonly=False store=True args: 'res.users'
  • model_id Many2one → fleet.vehicle.model
    help='Model of the vehicle' required=True tracking=True args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    help='Year of the model' args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • net_car_value Float
    help='Purchase value of the vehicle' string='Purchase Value'
  • next_assignation_date Date
    help='This is the date at which the car will be available, if not set it means available instantly' args: 'Assignment Date'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' help='Unit of the odometer ' required=True args: [('kilometers', 'km'), ('miles', 'mi')], 'Odometer Unit'
  • plan_to_change_car Boolean
    readonly=False related='driver_id.plan_to_change_car' store=True
  • power Integer
    help='Power in kW of the vehicle' args: 'Power'
  • residual_value Float
  • seats Integer
    help='Number of seats of the vehicle' args: 'Seats Number'
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_stage_ids' help='Current state of the vehicle' ondelete='set null' tracking=True args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • transmission Selection
    help='Transmission Used by the vehicle' args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vehicle_type Selection
    related='model_id.vehicle_type'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
Public methods (8)
  • act_show_log_cost(self)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • action_accept_driver_change(self)
  • create(self, vals)
    @api.model
  • create_driver_history(self, driver_id)
  • open_assignation_logs(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
  • return_action_to_open(self)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (8)
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • cost Float
    readonly=True args: 'Cost'
  • cost_type Selection
    readonly=True selection=[('contract', 'Contract'), ('service', 'Service')] string='Cost Type'
  • date_start Date
    readonly=True args: 'Date'
  • driver_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Driver'
  • fuel_type Char
    readonly=True args: 'Fuel'
  • name Char
    readonly=True args: 'Vehicle Name'
  • vehicle_id Many2one → fleet.vehicle
    readonly=True args: 'fleet.vehicle', 'Vehicle'
Public methods (1)
  • init(self)

New fields (20)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • cost_frequency Selection
    default='monthly' help='Frequency of the recuring cost' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Monetary
    args: 'Recurring Cost'
  • cost_subtype_id Many2one → fleet.service.type
    domain=[('category', '=', 'contract')] help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    help='Date when the cost has been executed'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • ins_ref Char
    copy=False size=64 args: 'Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Char
    compute='_compute_contract_name' store=True string='Name'
  • notes Text
    copy=False help='Write here all supplementary information relative to this contract' args: 'Terms and Conditions'
  • purchaser_id Many2one
    related='vehicle_id.driver_id' string='Current Driver'
  • service_ids Many2many → fleet.service.type
    string='Included Services' args: 'fleet.service.type'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' readonly=True tracking=True args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('closed', 'Closed')], 'Status'
  • user_id Many2one → res.users
    default=<expr> index=True args: 'res.users', 'Responsible'
  • vehicle_id Many2one → fleet.vehicle
    help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (7)
  • compute_next_year_date(self, strdate)
  • contract_close(self)
  • contract_draft(self)
  • contract_open(self)
  • run_scheduler(self)
  • scheduler_manage_contract_expiration(self)
    @api.model
  • write(self, vals)

New fields (16)
  • active Boolean
    default=True
  • amount Monetary
    args: 'Cost'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    default=fields.Date.context_today help='Date when the cost has been executed'
  • description Char
    args: 'Description'
  • inv_ref Char
    args: 'Vendor Reference'
  • notes Text
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • purchaser_id Many2one → res.partner
    compute='_compute_purchaser_id' readonly=False store=True string='Driver' args: 'res.partner'
  • service_type_id Many2one → fleet.service.type
    default=<expr> required=True args: 'fleet.service.type', 'Service Type'
  • state Selection
    default='todo' string='Stage' args: [('todo', 'To Do'), ('running', 'Running'), ('done', 'Done'), ('cancelled', 'Cancelled')]
  • vehicle_id Many2one → fleet.vehicle
    help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (7)
  • active Boolean
    default=True
  • brand_id Many2one → fleet.vehicle.model.brand
    help='Manufacturer of the vehicle' required=True args: 'fleet.vehicle.model.brand', 'Manufacturer'
  • image_128 Image
    readonly=True related='brand_id.image_128'
  • manager_id Many2one → res.users
    default=<expr> domain=<expr> args: 'res.users', 'Fleet Manager'
  • name Char
    required=True args: 'Model name'
  • vehicle_type Selection
    default='car' required=True args: [('car', 'Car'), ('bike', 'Bike')]
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (2)
  • name_get(self)
    @api.depends('name', 'brand_id')
  • write(self, vals)

New fields (4)
  • image_128 Image
    max_height=128 max_width=128 args: 'Logo'
  • model_count Integer
    compute='_compute_model_count' store=True string=''
  • model_ids One2many → fleet.vehicle.model
    args: 'fleet.vehicle.model', 'brand_id'
  • name Char
    required=True args: 'Make'
Public methods (1)
  • action_brand_model(self)

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    readonly=False related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    help='Used to order the note stages'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color Index'
  • name Char
    required=True translate=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (2)
  • delay_alert_contract Integer
    config_parameter='hr_fleet.delay_alert_contract' default=30 string='Delay alert contract outdated'
  • module_fleet_account Boolean
    string='Analytic Accounting Fleet'
Public methods (0)

No public methods.

New fields (1)
  • plan_to_change_car Boolean
    default=False args: 'Plan To Change Car'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources/Fleet
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier ALT, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Barad Mahendra, Yannick Tivisse, Martin Geubelle, Adrien Dieudonne, RomainLibert, Alexandre Kühn, jev-odoo, Adrian Torres, Xavier-Do, Sébastien Theys, Nasreddin (bon), alt-odoo, Lucas Lefèvre, Touati Djamel (otd), nie, IEL, prro-odoo
WEBSITE
WEBSITEhttps://www.odoo.com/page/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, fuel log
entries, costs and many other features necessary to the management 
of your fleet of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, fuel log entry, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (48)
XML IDNameModelTypeStatus
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.tree fleet.vehicle.assignation.log tree New
fleet_vehicle_cost_indicative_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_indicative_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_view_kanban fleet.vehicle.cost.kanban fleet.vehicle.cost kanban New
fleet_vehicle_cost_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_tree fleet.vehicle.cost.tree fleet.vehicle.cost tree New
fleet_vehicle_costs_view_form fleet.vehicle.cost.form fleet.vehicle.cost form New
fleet_vehicle_costs_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_costs_view_search fleet.vehicle.cost.search fleet.vehicle.cost search New
fleet_vehicle_log_contract_view_activity fleet.vehicle.log.contract.activity fleet.vehicle.log.contract activity New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_fuel_view_form fleet.vehicle.log.fuel.form fleet.vehicle.log.fuel form New
fleet_vehicle_log_fuel_view_graph fleet.vehicle.log.fuel.graph fleet.vehicle.log.fuel graph New
fleet_vehicle_log_fuel_view_kanban fleet.vehicle.log.fuel.kanban fleet.vehicle.log.fuel kanban New
fleet_vehicle_log_fuel_view_search fleet.vehicle.log.fuel.search fleet.vehicle.log.fuel search New
fleet_vehicle_log_fuel_view_tree fleet.vehicle.log.fuel.tree fleet.vehicle.log.fuel tree New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_kanban fleet.vehicle.model.kanban fleet.vehicle.model kanban New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_tag_view_view_tree fleet.vehicle.tag.tree fleet.vehicle.tag tree New
fleet_vehicle_view_activity fleet.vehicle.activity fleet.vehicle activity New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
res_config_settings_view_form res.config.settings.view.form.inherit.hr.fleet res.config.settings xpath Inherits base.res_config_settings_view_form
Models touched (14)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (48)
  • acquisition_date Date
    default=fields.Date.today help='Date when the vehicle has been immatriculated' required=False args: 'Immatriculation Date'
  • active Boolean
    default=True tracking=True args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    help='Value of the bought vehicle' string='Catalog Value (VAT Incl.)'
  • co2 Float
    help='CO2 emissions of the vehicle' args: 'CO2 Emissions'
  • color Char
    help='Color of the vehicle'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' multi='contract_info' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' multi='contract_info' string='Total of contracts due or overdue minus one'
  • cost_count Integer
    compute='_compute_count_all' string='Costs'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • doors Integer
    default=5 help='Number of doors of the vehicle' args: 'Doors Number'
  • driver_id Many2one → res.partner
    copy=False help='Driver of the vehicle' tracking=True args: 'res.partner', 'Driver'
  • first_contract_date Date
    default=fields.Date.today string='First Contract Date'
  • fuel_logs_count Integer
    compute='_compute_count_all' string='Fuel Log Count'
  • fuel_type Selection
    help='Fuel Used by the vehicle' args: [('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('lpg', 'LPG'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type'
  • future_driver_id Many2one → res.partner
    copy=False domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" help='Next Driver of the vehicle' tracking=True args: 'res.partner', 'Future Driver'
  • history_count Integer
    compute='_compute_count_all' string='Drivers History Count'
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image_128 Image
    readonly=False related='model_id.image_128'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' tracking=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignation Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_fuel One2many → fleet.vehicle.log.fuel
    args: 'fleet.vehicle.log.fuel', 'vehicle_id', 'Fuel Logs'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • manager_id Many2one → res.users
    related='model_id.manager_id' args: 'res.users'
  • model_id Many2one → fleet.vehicle.model
    help='Model of the vehicle' required=True tracking=True args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    help='Year of the model' args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • net_car_value Float
    help='Purchase Value of the car' string='Purchase Value'
  • next_assignation_date Date
    help='This is the date at which the car will be available, if not set it means available instantly' args: 'Assignation Date'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' help='Unit of the odometer ' required=True args: [('kilometers', 'Kilometers'), ('miles', 'Miles')], 'Odometer Unit'
  • plan_to_change_car Boolean
    readonly=False related='driver_id.plan_to_change_car' store=True
  • power Integer
    help='Power in kW of the vehicle' args: 'Power'
  • residual_value Float
  • seats Integer
    help='Number of seats of the vehicle' args: 'Seats Number'
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_stage_ids' help='Current state of the vehicle' ondelete='set null' tracking=True args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • transmission Selection
    help='Transmission Used by the vehicle' args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
Public methods (7)
  • act_show_log_cost(self)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • action_accept_driver_change(self)
  • create(self, vals)
    @api.model
  • create_driver_history(self, driver_id)
  • open_assignation_logs(self)
  • return_action_to_open(self)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (16)
  • amount Float
    args: 'Total Price'
  • auto_generated Boolean
    readonly=True args: 'Automatically Generated'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company', 'Company'
  • contract_id Many2one → fleet.vehicle.log.contract
    help='Contract attached to this cost' args: 'fleet.vehicle.log.contract', 'Contract'
  • cost_ids One2many → fleet.vehicle.cost
    copy=True args: 'fleet.vehicle.cost', 'parent_id', 'Included Services'
  • cost_subtype_id Many2one → fleet.service.type
    help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • cost_type Selection
    default='other' help='For internal purpose only' required=True args: [('contract', 'Contract'), ('services', 'Services'), ('fuel', 'Fuel'), ('other', 'Other')], 'Category of the cost'
  • currency_id Many2one → res.currency
    related='company_id.currency_id' args: 'res.currency'
  • date Date
    help='Date when the cost has been executed'
  • description Char
    args: 'Cost Description'
  • name Char
    readonly=False related='vehicle_id.name' store=True string='Name'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • parent_id Many2one → fleet.vehicle.cost
    help='Parent cost to this current cost' args: 'fleet.vehicle.cost', 'Parent'
  • vehicle_id Many2one → fleet.vehicle
    help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)

New fields (18)
  • active Boolean
    default=True
  • cost_amount Float
    readonly=False related='cost_id.amount' store=True string='Amount'
  • cost_frequency Selection
    default='no' help='Frequency of the recuring cost' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Float
    help='Costs paid at regular intervals, depending on the cost frequency. If the cost frequency is set to unique, the cost will be logged at the start date' tracking=True args: 'Recurring Cost Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • generated_cost_ids One2many → fleet.vehicle.cost
    args: 'fleet.vehicle.cost', 'contract_id', 'Generated Costs'
  • ins_ref Char
    copy=False size=64 args: 'Contract Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Text
    compute='_compute_contract_name' store=True
  • notes Text
    copy=False help='Write here all supplementary information relative to this contract' args: 'Terms and Conditions'
  • odometer Float
    help='Odometer measure of the vehicle at the moment of the contract creation' string='Creation Contract Odometer'
  • purchaser_id Many2one → res.partner
    default=<expr> help='Person to which the contract is signed for' args: 'res.partner', 'Driver'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' readonly=True tracking=True args: [('futur', 'Incoming'), ('open', 'In Progress'), ('diesoon', 'Expiring Soon'), ('expired', 'Expired'), ('closed', 'Closed')], 'Status'
  • sum_cost Float
    compute='_compute_sum_cost' string='Indicative Costs Total'
  • user_id Many2one → res.users
    default=<expr> index=True args: 'res.users', 'Responsible'
Public methods (11)
  • act_renew_contract(self)
  • compute_next_year_date(self, strdate)
  • contract_close(self)
  • contract_open(self)
  • create(self, vals)
    @api.model
  • default_get(self, default_fields)
    @api.model
  • run_scheduler(self)
  • scheduler_manage_auto_costs(self)
    @api.model
  • scheduler_manage_contract_expiration(self)
    @api.model
  • unlink(self)
  • write(self, vals)

New fields (8)
  • cost_amount Float
    readonly=False related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    size=64 args: 'Invoice Reference'
  • liter Float
  • notes Text
  • price_per_liter Float
  • purchaser_id Many2one → res.partner
    args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (6)
  • cost_amount Float
    readonly=False related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    args: 'Invoice Reference'
  • notes Text
  • purchaser_id Many2one → res.partner
    args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (5)
  • brand_id Many2one → fleet.vehicle.model.brand
    help='Manufacturer of the vehicle' required=True args: 'fleet.vehicle.model.brand', 'Manufacturer'
  • image_128 Image
    readonly=False related='brand_id.image_128'
  • manager_id Many2one → res.users
    default=<expr> domain=<expr> args: 'res.users', 'Fleet Manager'
  • name Char
    required=True args: 'Model name'
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (1)
  • name_get(self)
    @api.depends('name', 'brand_id')

New fields (2)
  • image_128 Image
    max_height=128 max_width=128 args: 'Logo'
  • name Char
    required=True args: 'Make'
Public methods (0)

No public methods.

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    readonly=False related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    help='Used to order the note stages'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color Index'
  • name Char
    required=True translate=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (1)
  • delay_alert_contract Integer
    config_parameter='hr_fleet.delay_alert_contract' default=30 string='Delay alert contract outdated'
Public methods (0)

No public methods.

New fields (1)
  • plan_to_change_car Boolean
    default=False args: 'Plan To Change Car'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Géry Debongnie, Aaron Bohy, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Martin Geubelle, Nicolas Seinlet, len-odoo, Adrian Torres, Xavier-Do, jerome hanke (jhk), alt-odoo, Kinjal Mehta
WEBSITE
WEBSITEhttps://www.odoo.com/page/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, fuel log
entries, costs and many other features necessary to the management 
of your fleet of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, fuel log entry, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (43)
XML IDNameModelTypeStatus
fleet_vehicle_assignation_log_view_list fleet.vehicle.assignation.log.view.tree fleet.vehicle.assignation.log tree New
fleet_vehicle_cost_indicative_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_indicative_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_view_kanban fleet.vehicle.cost.kanban fleet.vehicle.cost kanban New
fleet_vehicle_cost_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_tree fleet.vehicle.cost.tree fleet.vehicle.cost tree New
fleet_vehicle_costs_view_form fleet.vehicle.cost.form fleet.vehicle.cost form New
fleet_vehicle_costs_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_costs_view_search fleet.vehicle.cost.search fleet.vehicle.cost search New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_fuel_view_form fleet.vehicle.log.fuel.form fleet.vehicle.log.fuel form New
fleet_vehicle_log_fuel_view_graph fleet.vehicle.log.fuel.graph fleet.vehicle.log.fuel graph New
fleet_vehicle_log_fuel_view_kanban fleet.vehicle.log.fuel.kanban fleet.vehicle.log.fuel kanban New
fleet_vehicle_log_fuel_view_search fleet.vehicle.log.fuel.search fleet.vehicle.log.fuel search New
fleet_vehicle_log_fuel_view_tree fleet.vehicle.log.fuel.tree fleet.vehicle.log.fuel tree New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
Models touched (12)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (43)
  • acquisition_date Date
    default=fields.Date.today help='Date when the vehicle has been immatriculated' required=False args: 'Immatriculation Date'
  • active Boolean
    default=True track_visibility='onchange' args: 'Active'
  • brand_id Many2one → fleet.vehicle.model.brand
    readonly=False related='model_id.brand_id' store=True args: 'fleet.vehicle.model.brand', 'Brand'
  • car_value Float
    help='Value of the bought vehicle' string='Catalog Value (VAT Incl.)'
  • co2 Float
    help='CO2 emissions of the vehicle' args: 'CO2 Emissions'
  • color Char
    help='Color of the vehicle'
  • company_id Many2one → res.company
    args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contract Count'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' multi='contract_info' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' multi='contract_info' string='Total of contracts due or overdue minus one'
  • cost_count Integer
    compute='_compute_count_all' string='Costs'
  • doors Integer
    default=5 help='Number of doors of the vehicle' args: 'Doors Number'
  • driver_id Many2one → res.partner
    auto_join=True copy=False help='Driver of the vehicle' track_visibility='onchange' args: 'res.partner', 'Driver'
  • first_contract_date Date
    default=fields.Date.today string='First Contract Date'
  • fuel_logs_count Integer
    compute='_compute_count_all' string='Fuel Log Count'
  • fuel_type Selection
    help='Fuel Used by the vehicle' args: [('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('lpg', 'LPG'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type'
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image Binary
    readonly=False related='model_id.image' string='Logo'
  • image_medium Binary
    readonly=False related='model_id.image_medium' string='Logo (medium)'
  • image_small Binary
    readonly=False related='model_id.image_small' string='Logo (small)'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' track_visibility='onchange'
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_drivers One2many → fleet.vehicle.assignation.log
    string='Assignation Logs' args: 'fleet.vehicle.assignation.log', 'vehicle_id'
  • log_fuel One2many → fleet.vehicle.log.fuel
    args: 'fleet.vehicle.log.fuel', 'vehicle_id', 'Fuel Logs'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • model_id Many2one → fleet.vehicle.model
    help='Model of the vehicle' required=True track_visibility='onchange' args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    help='Year of the model' args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' help='Unit of the odometer ' required=True args: [('kilometers', 'Kilometers'), ('miles', 'Miles')], 'Odometer Unit'
  • power Integer
    help='Power in kW of the vehicle' args: 'Power'
  • residual_value Float
  • seats Integer
    help='Number of seats of the vehicle' args: 'Seats Number'
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state group_expand='_read_group_stage_ids' help='Current state of the vehicle' ondelete='set null' track_visibility='onchange' args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • transmission Selection
    help='Transmission Used by the vehicle' args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
Public methods (6)
  • act_show_log_cost(self)
    @api.multi
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • create(self, vals)
    @api.model
  • create_driver_history(self, driver_id)
  • open_assignation_logs(self)
  • return_action_to_open(self)
    @api.multi
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)
    @api.multi

New fields (4)
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • driver_id Many2one → res.partner
    required=True string='Driver' args: 'res.partner'
  • vehicle_id Many2one → fleet.vehicle
    required=True string='Vehicle' args: 'fleet.vehicle'
Public methods (0)

No public methods.

New fields (14)
  • amount Float
    args: 'Total Price'
  • auto_generated Boolean
    readonly=True args: 'Automatically Generated'
  • contract_id Many2one → fleet.vehicle.log.contract
    help='Contract attached to this cost' args: 'fleet.vehicle.log.contract', 'Contract'
  • cost_ids One2many → fleet.vehicle.cost
    copy=True args: 'fleet.vehicle.cost', 'parent_id', 'Included Services'
  • cost_subtype_id Many2one → fleet.service.type
    help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • cost_type Selection
    default='other' help='For internal purpose only' required=True args: [('contract', 'Contract'), ('services', 'Services'), ('fuel', 'Fuel'), ('other', 'Other')], 'Category of the cost'
  • date Date
    help='Date when the cost has been executed'
  • description Char
    args: 'Cost Description'
  • name Char
    readonly=False related='vehicle_id.name' store=True string='Name'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • parent_id Many2one → fleet.vehicle.cost
    help='Parent cost to this current cost' args: 'fleet.vehicle.cost', 'Parent'
  • vehicle_id Many2one → fleet.vehicle
    help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
    @api.multi

New fields (18)
  • active Boolean
    default=True
  • cost_amount Float
    readonly=False related='cost_id.amount' store=True string='Amount'
  • cost_frequency Selection
    default='no' help='Frequency of the recuring cost' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Float
    help='Costs paid at regular intervals, depending on the cost frequency. If the cost frequency is set to unique, the cost will be logged at the start date' track_visibility='onchange' args: 'Recurring Cost Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • generated_cost_ids One2many → fleet.vehicle.cost
    args: 'fleet.vehicle.cost', 'contract_id', 'Generated Costs'
  • ins_ref Char
    copy=False size=64 args: 'Contract Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Text
    compute='_compute_contract_name' store=True
  • notes Text
    copy=False help='Write here all supplementary information relative to this contract' args: 'Terms and Conditions'
  • odometer Float
    help='Odometer measure of the vehicle at the moment of the contract creation' string='Odometer at creation'
  • purchaser_id Many2one → res.partner
    default=<expr> help='Person to which the contract is signed for' args: 'res.partner', 'Driver'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' readonly=True track_visibility='onchange' args: [('futur', 'Incoming'), ('open', 'In Progress'), ('diesoon', 'Expiring Soon'), ('expired', 'Expired'), ('closed', 'Closed')], 'Status'
  • sum_cost Float
    compute='_compute_sum_cost' string='Indicative Costs Total'
  • user_id Many2one → res.users
    default=<expr> index=True args: 'res.users', 'Responsible'
Public methods (11)
  • act_renew_contract(self)
    @api.multi
  • compute_next_year_date(self, strdate)
  • contract_close(self)
    @api.multi
  • contract_open(self)
    @api.multi
  • create(self, vals)
    @api.model_create_multi
  • default_get(self, default_fields)
    @api.model
  • run_scheduler(self)
  • scheduler_manage_auto_costs(self)
    @api.model
  • scheduler_manage_contract_expiration(self)
    @api.model
  • unlink(self)
    @api.multi
  • write(self, vals)
    @api.multi

New fields (8)
  • cost_amount Float
    readonly=False related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    size=64 args: 'Invoice Reference'
  • liter Float
  • notes Text
  • price_per_liter Float
  • purchaser_id Many2one → res.partner
    domain="['|',('customer','=',True),('employee','=',True)]" args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    domain="[('supplier','=',True)]" args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (6)
  • cost_amount Float
    readonly=False related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    args: 'Invoice Reference'
  • notes Text
  • purchaser_id Many2one → res.partner
    domain="['|',('customer','=',True),('employee','=',True)]" args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    domain="[('supplier','=',True)]" args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (6)
  • brand_id Many2one → fleet.vehicle.model.brand
    help='Make of the vehicle' required=True args: 'fleet.vehicle.model.brand', 'Make'
  • image Binary
    readonly=False related='brand_id.image' string='Logo'
  • image_medium Binary
    readonly=False related='brand_id.image_medium' string='Logo (medium)'
  • image_small Binary
    readonly=False related='brand_id.image_small' string='Logo (small)'
  • name Char
    required=True args: 'Model name'
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (1)
  • name_get(self)
    @api.multi@api.depends('name', 'brand_id')

New fields (4)
  • image Binary
    attachment=True help='This field holds the image used as logo for the brand, limited to 1024x1024px.' args: 'Logo'
  • image_medium Binary
    attachment=True 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.' args: 'Medium-sized image'
  • image_small Binary
    attachment=True 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.' args: 'Small-sized image'
  • name Char
    required=True args: 'Make'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
    @api.multi

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    readonly=False related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    help='Used to order the note stages'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Aaron Bohy, GitHub, Yannick Tivisse, qsm-odoo, Martin Geubelle, Odoo Online, Adrien Dieudonne, Christophe Monniez
WEBSITE
WEBSITEhttps://www.odoo.com/page/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, fuel log
entries, costs and many other features necessary to the management 
of your fleet of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, fuel log entry, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (42)
XML IDNameModelTypeStatus
fleet_vehicle_cost_indicative_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_indicative_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_view_kanban fleet.vehicle.cost.kanban fleet.vehicle.cost kanban New
fleet_vehicle_cost_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_tree fleet.vehicle.cost.tree fleet.vehicle.cost tree New
fleet_vehicle_costs_view_form fleet.vehicle.cost.form fleet.vehicle.cost form New
fleet_vehicle_costs_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_costs_view_search fleet.vehicle.cost.search fleet.vehicle.cost search New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_kanban fleet.vehicle.log.contract.kanban fleet.vehicle.log.contract kanban New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_fuel_view_form fleet.vehicle.log.fuel.form fleet.vehicle.log.fuel form New
fleet_vehicle_log_fuel_view_graph fleet.vehicle.log.fuel.graph fleet.vehicle.log.fuel graph New
fleet_vehicle_log_fuel_view_kanban fleet.vehicle.log.fuel.kanban fleet.vehicle.log.fuel kanban New
fleet_vehicle_log_fuel_view_search fleet.vehicle.log.fuel.search fleet.vehicle.log.fuel search New
fleet_vehicle_log_fuel_view_tree fleet.vehicle.log.fuel.tree fleet.vehicle.log.fuel tree New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_kanban fleet.vehicle.log.services.kanban fleet.vehicle.log.services kanban New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_kanban fleet.vehicle.odometer.kanban fleet.vehicle.odometer kanban New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
Models touched (11)

New fields (2)
  • category Selection
    help='Choose whether the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (40)
  • acquisition_date Date
    help='Date when the vehicle has been immatriculated' required=False args: 'Immatriculation Date'
  • active Boolean
    default=True track_visibility='onchange' args: 'Active'
  • car_value Float
    help='Value of the bought vehicle' string='Catalog Value (VAT Incl.)'
  • co2 Float
    help='CO2 emissions of the vehicle' args: 'CO2 Emissions'
  • color Char
    help='Color of the vehicle'
  • company_id Many2one → res.company
    args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contracts'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' multi='contract_info' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' multi='contract_info' string='Total of contracts due or overdue minus one'
  • cost_count Integer
    compute='_compute_count_all' string='Costs'
  • doors Integer
    default=5 help='Number of doors of the vehicle' args: 'Doors Number'
  • driver_id Many2one → res.partner
    copy=False help='Driver of the vehicle' track_visibility='onchange' args: 'res.partner', 'Driver'
  • fuel_logs_count Integer
    compute='_compute_count_all' string='Fuel Logs'
  • fuel_type Selection
    help='Fuel Used by the vehicle' args: [('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('lpg', 'LPG'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type'
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image Binary
    related='model_id.image' string='Logo'
  • image_medium Binary
    related='model_id.image_medium' string='Logo (medium)'
  • image_small Binary
    related='model_id.image_small' string='Logo (small)'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' required=True track_visibility='onchange'
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_fuel One2many → fleet.vehicle.log.fuel
    args: 'fleet.vehicle.log.fuel', 'vehicle_id', 'Fuel Logs'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • model_id Many2one → fleet.vehicle.model
    help='Model of the vehicle' required=True args: 'fleet.vehicle.model', 'Model'
  • model_year Char
    help='Year of the model' args: 'Model Year'
  • name Char
    compute='_compute_vehicle_name' store=True
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' help='Unit of the odometer ' required=True args: [('kilometers', 'Kilometers'), ('miles', 'Miles')], 'Odometer Unit'
  • power Integer
    help='Power in kW of the vehicle' args: 'Power'
  • residual_value Float
  • seats Integer
    help='Number of seats of the vehicle' args: 'Seats Number'
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state help='Current state of the vehicle' ondelete='set null' args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • transmission Selection
    help='Transmission Used by the vehicle' args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
Public methods (4)
  • act_show_log_cost(self)
    @api.multi
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • create(self, data)
    @api.model
  • return_action_to_open(self)
    @api.multi
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)
    @api.multi
    This function write an entry in the openchatter whenever we change important information on the vehicle like the model, the drive, the state of the vehicle or its license plate

New fields (14)
  • amount Float
    args: 'Total Price'
  • auto_generated Boolean
    readonly=True args: 'Automatically Generated'
  • contract_id Many2one → fleet.vehicle.log.contract
    help='Contract attached to this cost' args: 'fleet.vehicle.log.contract', 'Contract'
  • cost_ids One2many → fleet.vehicle.cost
    copy=True args: 'fleet.vehicle.cost', 'parent_id', 'Included Services'
  • cost_subtype_id Many2one → fleet.service.type
    help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • cost_type Selection
    default='other' help='For internal purpose only' required=True args: [('contract', 'Contract'), ('services', 'Services'), ('fuel', 'Fuel'), ('other', 'Other')], 'Category of the cost'
  • date Date
    help='Date when the cost has been executed'
  • description Char
    args: 'Cost Description'
  • name Char
    related='vehicle_id.name' store=True string='Name'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • parent_id Many2one → fleet.vehicle.cost
    help='Parent cost to this current cost' args: 'fleet.vehicle.cost', 'Parent'
  • vehicle_id Many2one → fleet.vehicle
    help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (1)
  • create(self, data)
    @api.model

New fields (17)
  • active Boolean
    default=True
  • cost_amount Float
    related='cost_id.amount' store=True string='Amount'
  • cost_frequency Selection
    default='no' help='Frequency of the recuring cost' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Float
    help='Costs paid at regular intervals, depending on the cost frequency. If the cost frequency is set to unique, the cost will be logged at the start date' args: 'Recurring Cost Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • generated_cost_ids One2many → fleet.vehicle.cost
    args: 'fleet.vehicle.cost', 'contract_id', 'Generated Costs'
  • ins_ref Char
    copy=False size=64 args: 'Contract Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Text
    compute='_compute_contract_name' store=True
  • notes Text
    copy=False help='Write here all supplementary information relative to this contract' args: 'Terms and Conditions'
  • odometer Float
    help='Odometer measure of the vehicle at the moment of the contract creation' string='Odometer at creation'
  • purchaser_id Many2one → res.partner
    default=<expr> help='Person to which the contract is signed for' args: 'res.partner', 'Contractor'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose whether the contract is still valid or not' readonly=True track_visibility='onchange' args: [('futur', 'Incoming'), ('open', 'In Progress'), ('expired', 'Expired'), ('diesoon', 'Expiring Soon'), ('closed', 'Closed')], 'Status'
  • sum_cost Float
    compute='_compute_sum_cost' string='Indicative Costs Total'
Public methods (8)
  • act_renew_contract(self)
    @api.multi
  • compute_next_year_date(self, strdate)
  • contract_close(self)
    @api.multi
  • contract_open(self)
    @api.multi
  • default_get(self, default_fields)
    @api.model
  • run_scheduler(self)
    @api.model
  • scheduler_manage_auto_costs(self)
    @api.model
  • scheduler_manage_contract_expiration(self)
    @api.model

New fields (8)
  • cost_amount Float
    related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    size=64 args: 'Invoice Reference'
  • liter Float
  • notes Text
  • price_per_liter Float
  • purchaser_id Many2one → res.partner
    domain="['|',('customer','=',True),('employee','=',True)]" args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    domain="[('supplier','=',True)]" args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (6)
  • cost_amount Float
    related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    args: 'Invoice Reference'
  • notes Text
  • purchaser_id Many2one → res.partner
    domain="['|',('customer','=',True),('employee','=',True)]" args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    domain="[('supplier','=',True)]" args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (6)
  • brand_id Many2one → fleet.vehicle.model.brand
    help='Make of the vehicle' required=True args: 'fleet.vehicle.model.brand', 'Make'
  • image Binary
    related='brand_id.image' string='Logo'
  • image_medium Binary
    related='brand_id.image_medium' string='Logo (medium)'
  • image_small Binary
    related='brand_id.image_small' string='Logo (small)'
  • name Char
    required=True args: 'Model name'
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (1)
  • name_get(self)
    @api.multi@api.depends('name', 'brand_id')

New fields (4)
  • image Binary
    attachment=True help='This field holds the image used as logo for the brand, limited to 1024x1024px.' args: 'Logo'
  • image_medium Binary
    attachment=True 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.' args: 'Medium-sized image'
  • image_small Binary
    attachment=True 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.' args: 'Small-sized image'
  • name Char
    required=True args: 'Make'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (6)
  • date Date
    default=fields.Date.context_today
  • driver_id Many2one
    related='vehicle_id.driver_id' string='Driver'
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True
  • sequence Integer
    help='Used to order the note stages'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=10 args: 'Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, Julien Legros, qdp-odoo, Jeremy Kersten, Yannick Tivisse, qsm-odoo, RomainLibert
WEBSITE
WEBSITEhttps://www.odoo.com/page/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, fuel log
entries, costs and many other features necessary to the management 
of your fleet of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, fuel log entry, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (37)
XML IDNameModelTypeStatus
fleet_vehicle_cost_indicative_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_indicative_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_cost_view_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_cost_view_tree fleet.vehicle.cost.tree fleet.vehicle.cost tree New
fleet_vehicle_costs_view_form fleet.vehicle.cost.form fleet.vehicle.cost form New
fleet_vehicle_costs_view_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_costs_view_search fleet.vehicle.cost.search fleet.vehicle.cost search New
fleet_vehicle_log_contract_view_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_view_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_view_search fleet.vehicle.log.contract.search fleet.vehicle.log.contract search New
fleet_vehicle_log_contract_view_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_fuel_view_form fleet.vehicle.log.fuel.form fleet.vehicle.log.fuel form New
fleet_vehicle_log_fuel_view_graph fleet.vehicle.log.fuel.graph fleet.vehicle.log.fuel graph New
fleet_vehicle_log_fuel_view_search fleet.vehicle.log.fuel.search fleet.vehicle.log.fuel search New
fleet_vehicle_log_fuel_view_tree fleet.vehicle.log.fuel.tree fleet.vehicle.log.fuel tree New
fleet_vehicle_log_services_view_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_view_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_view_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_view_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_view_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_view_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_view_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_view_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_view_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_view_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_view_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_view_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_view_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_view_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_service_types_view_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_view_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tag_view_view_form fleet.vehicle.tag.form fleet.vehicle.tag form New
fleet_vehicle_view_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_view_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_view_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_view_tree fleet.vehicle.tree fleet.vehicle tree New
Models touched (11)

New fields (2)
  • category Selection
    help='Choose wheter the service refer to contracts, vehicle services or both' required=True args: [('contract', 'Contract'), ('service', 'Service'), ('both', 'Both')], 'Category'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (38)
  • acquisition_date Date
    help='Date when the vehicle has been bought' required=False args: 'Acquisition Date'
  • active Boolean
    default=True
  • car_value Float
    help='Value of the bought vehicle'
  • co2 Float
    help='CO2 emissions of the vehicle' args: 'CO2 Emissions'
  • color Char
    help='Color of the vehicle'
  • company_id Many2one → res.company
    args: 'res.company', 'Company'
  • contract_count Integer
    compute='_compute_count_all' string='Contracts'
  • contract_renewal_due_soon Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_contract_renewal_due_soon' string='Has Contracts to renew'
  • contract_renewal_name Text
    compute='_compute_contract_reminder' multi='contract_info' string='Name of contract to renew soon'
  • contract_renewal_overdue Boolean
    compute='_compute_contract_reminder' multi='contract_info' search='_search_get_overdue_contract_reminder' string='Has Contracts Overdue'
  • contract_renewal_total Text
    compute='_compute_contract_reminder' multi='contract_info' string='Total of contracts due or overdue minus one'
  • cost_count Integer
    compute='_compute_count_all' string='Costs'
  • doors Integer
    default=5 help='Number of doors of the vehicle' args: 'Doors Number'
  • driver_id Many2one → res.partner
    help='Driver of the vehicle' args: 'res.partner', 'Driver'
  • fuel_logs_count Integer
    compute='_compute_count_all' string='Fuel Logs'
  • fuel_type Selection
    help='Fuel Used by the vehicle' args: [('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type'
  • horsepower Integer
  • horsepower_tax Float
    args: 'Horsepower Taxation'
  • image Binary
    related='model_id.image' string='Logo'
  • image_medium Binary
    related='model_id.image_medium' string='Logo (medium)'
  • image_small Binary
    related='model_id.image_small' string='Logo (small)'
  • license_plate Char
    help='License plate number of the vehicle (i = plate number for a car)' required=True
  • location Char
    help='Location of the vehicle (garage, ...)'
  • log_contracts One2many → fleet.vehicle.log.contract
    args: 'fleet.vehicle.log.contract', 'vehicle_id', 'Contracts'
  • log_fuel One2many → fleet.vehicle.log.fuel
    args: 'fleet.vehicle.log.fuel', 'vehicle_id', 'Fuel Logs'
  • log_services One2many → fleet.vehicle.log.services
    args: 'fleet.vehicle.log.services', 'vehicle_id', 'Services Logs'
  • model_id Many2one → fleet.vehicle.model
    help='Model of the vehicle' required=True args: 'fleet.vehicle.model', 'Model'
  • name Char
    compute='_compute_vehicle_name' store=True
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Last Odometer'
  • odometer_count Integer
    compute='_compute_count_all' string='Odometer'
  • odometer_unit Selection
    default='kilometers' help='Unit of the odometer ' required=True args: [('kilometers', 'Kilometers'), ('miles', 'Miles')], 'Odometer Unit'
  • power Integer
    help='Power in kW of the vehicle' args: 'Power'
  • seats Integer
    help='Number of seats of the vehicle' args: 'Seats Number'
  • service_count Integer
    compute='_compute_count_all' string='Services'
  • state_id Many2one → fleet.vehicle.state
    default=_get_default_state help='Current state of the vehicle' ondelete='set null' args: 'fleet.vehicle.state', 'State'
  • tag_ids Many2many → fleet.vehicle.tag
    copy=False args: 'fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id', 'tag_id', 'Tags'
  • transmission Selection
    help='Transmission Used by the vehicle' args: [('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission'
  • vin_sn Char
    copy=False help='Unique number written on the vehicle motor (VIN/SN number)' args: 'Chassis Number'
Public methods (4)
  • act_show_log_cost(self)
    @api.multi
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • create(self, data)
    @api.model
  • return_action_to_open(self)
    @api.multi
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, vals)
    @api.multi
    This function write an entry in the openchatter whenever we change important information on the vehicle like the model, the drive, the state of the vehicle or its license plate

New fields (13)
  • amount Float
    args: 'Total Price'
  • auto_generated Boolean
    readonly=True args: 'Automatically Generated'
  • contract_id Many2one → fleet.vehicle.log.contract
    help='Contract attached to this cost' args: 'fleet.vehicle.log.contract', 'Contract'
  • cost_ids One2many → fleet.vehicle.cost
    args: 'fleet.vehicle.cost', 'parent_id', 'Included Services'
  • cost_subtype_id Many2one → fleet.service.type
    help='Cost type purchased with this cost' args: 'fleet.service.type', 'Type'
  • cost_type Selection
    default='other' help='For internal purpose only' required=True args: [('contract', 'Contract'), ('services', 'Services'), ('fuel', 'Fuel'), ('other', 'Other')], 'Category of the cost'
  • date Date
    help='Date when the cost has been executed'
  • name Char
    related='vehicle_id.name' store=True string='Name'
  • odometer Float
    compute='_get_odometer' help='Odometer measure of the vehicle at the moment of this log' inverse='_set_odometer' string='Odometer Value'
  • odometer_id Many2one → fleet.vehicle.odometer
    help='Odometer measure of the vehicle at the moment of this log' args: 'fleet.vehicle.odometer', 'Odometer'
  • odometer_unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • parent_id Many2one → fleet.vehicle.cost
    help='Parent cost to this current cost' args: 'fleet.vehicle.cost', 'Parent'
  • vehicle_id Many2one → fleet.vehicle
    help='Vehicle concerned by this log' required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (1)
  • create(self, data)
    @api.model

New fields (16)
  • active Boolean
    default=True
  • cost_amount Float
    related='cost_id.amount' store=True string='Amount'
  • cost_frequency Selection
    default='no' help='Frequency of the recuring cost' required=True args: [('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly')], 'Recurring Cost Frequency'
  • cost_generated Float
    help='Costs paid at regular intervals, depending on the cost frequency.If the cost frequency is set to unique, the cost will be logged at the start date' args: 'Recurring Cost Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • days_left Integer
    compute='_compute_days_left' string='Warning Date'
  • expiration_date Date
    default=<expr> help='Date when the coverage of the contract expirates (by default, one year after begin date)' args: 'Contract Expiration Date'
  • generated_cost_ids One2many → fleet.vehicle.cost
    args: 'fleet.vehicle.cost', 'contract_id', 'Generated Costs'
  • ins_ref Char
    copy=False size=64 args: 'Contract Reference'
  • insurer_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • name Text
    compute='_compute_contract_name' store=True
  • notes Text
    copy=False help='Write here all supplementary information relative to this contract' args: 'Terms and Conditions'
  • purchaser_id Many2one → res.partner
    default=<expr> help='Person to which the contract is signed for' args: 'res.partner', 'Contractor'
  • start_date Date
    default=fields.Date.context_today help='Date when the coverage of the contract begins' args: 'Contract Start Date'
  • state Selection
    copy=False default='open' help='Choose wheter the contract is still valid or not' readonly=True args: [('open', 'In Progress'), ('toclose', 'To Close'), ('closed', 'Terminated')], 'Status'
  • sum_cost Float
    compute='_compute_sum_cost' string='Indicative Costs Total'
Public methods (8)
  • act_renew_contract(self)
    @api.multi
  • compute_next_year_date(self, strdate)
  • contract_close(self)
    @api.multi
  • contract_open(self)
    @api.multi
  • default_get(self, default_fields)
    @api.model
  • run_scheduler(self)
    @api.model
  • scheduler_manage_auto_costs(self)
    @api.model
  • scheduler_manage_contract_expiration(self)
    @api.model

New fields (8)
  • cost_amount Float
    related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    size=64 args: 'Invoice Reference'
  • liter Float
  • notes Text
  • price_per_liter Float
  • purchaser_id Many2one → res.partner
    domain="['|',('customer','=',True),('employee','=',True)]" args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    domain="[('supplier','=',True)]" args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (6)
  • cost_amount Float
    related='cost_id.amount' store=True string='Amount'
  • cost_id Many2one → fleet.vehicle.cost
    ondelete='cascade' required=True args: 'fleet.vehicle.cost', 'Cost'
  • inv_ref Char
    args: 'Invoice Reference'
  • notes Text
  • purchaser_id Many2one → res.partner
    domain="['|',('customer','=',True),('employee','=',True)]" args: 'res.partner', 'Purchaser'
  • vendor_id Many2one → res.partner
    domain="[('supplier','=',True)]" args: 'res.partner', 'Vendor'
Public methods (1)
  • default_get(self, default_fields)
    @api.model

New fields (6)
  • brand_id Many2one → fleet.vehicle.model.brand
    help='Make of the vehicle' required=True args: 'fleet.vehicle.model.brand', 'Make'
  • image Binary
    related='brand_id.image' string='Logo'
  • image_medium Binary
    related='brand_id.image_medium' string='Logo (medium)'
  • image_small Binary
    related='brand_id.image_small' string='Logo (small)'
  • name Char
    required=True args: 'Model name'
  • vendors Many2many → res.partner
    string='Vendors' args: 'res.partner', 'fleet_vehicle_model_vendors', 'model_id', 'partner_id'
Public methods (1)
  • name_get(self)
    @api.multi@api.depends('name', 'brand_id')

New fields (4)
  • image Binary
    attachment=True help='This field holds the image used as logo for the brand, limited to 1024x1024px.' args: 'Logo'
  • image_medium Binary
    attachment=True 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.' args: 'Medium-sized image'
  • image_small Binary
    attachment=True 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.' args: 'Small-sized image'
  • name Char
    required=True args: 'Make'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (5)
  • date Date
    default=fields.Date.context_today
  • name Char
    compute='_compute_vehicle_log_name' store=True
  • unit Selection
    readonly=True related='vehicle_id.odometer_unit' string='Unit'
  • value Float
    group_operator='max' args: 'Odometer Value'
  • vehicle_id Many2one → fleet.vehicle
    required=True args: 'fleet.vehicle', 'Vehicle'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True
  • sequence Integer
    help='Used to order the note stages'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Richard Mathot, Géry Debongnie, Yogesh Parekh, Yannick Tivisse, qsm-odoo, Martin Geubelle
WEBSITE
WEBSITEhttps://www.odoo.com/page/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, fuel log
entries, costs and many other features necessary to the management 
of your fleet of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, fuel log entry, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (35)
XML IDNameModelTypeStatus
fleet_vehicle_cost_tree fleet.vehicle.cost.tree fleet.vehicle.cost tree New
fleet_vehicle_costs_form fleet.vehicle.cost.form fleet.vehicle.cost form New
fleet_vehicle_costs_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_costs_search fleet.vehicle.cost.search fleet.vehicle.cost search New
fleet_vehicle_effective_costs_report fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_effective_costs_report_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_indicative_costs_report fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_indicative_costs_report_pivot fleet.vehicle.cost.pivot fleet.vehicle.cost pivot New
fleet_vehicle_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_log_contract_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_fuel_form fleet.vehicle.log.fuel.form fleet.vehicle.log.fuel form New
fleet_vehicle_log_fuel_graph fleet.vehicle.log.fuel.graph fleet.vehicle.log.fuel graph New
fleet_vehicle_log_fuel_search fleet.vehicle.log.fuel.search fleet.vehicle.log.fuel search New
fleet_vehicle_log_fuel_tree fleet.vehicle.log.fuel.tree fleet.vehicle.log.fuel tree New
fleet_vehicle_log_services_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_service_types_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tree fleet.vehicle.tree fleet.vehicle tree New
Models touched (12)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • act_show_log_cost(self, cr, uid, ids, context=None)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • create(self, cr, uid, data, context=None)
  • on_change_model(self, cr, uid, ids, model_id, context=None)
  • return_action_to_open(self, cr, uid, ids, context=None)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, cr, uid, ids, vals, context=None)
    This function write an entry in the openchatter whenever we change important information on the vehicle like the model, the drive, the state of the vehicle or its license plate

New fields (0)

No new fields.

Public methods (1)
  • create(self, cr, uid, data, context=None)

New fields (0)

No new fields.

Public methods (11)
  • act_renew_contract(self, cr, uid, ids, context=None)
  • compute_next_year_date(self, strdate)
  • contract_close(self, cr, uid, ids, context=None)
  • contract_open(self, cr, uid, ids, context=None)
  • get_days_left(self, cr, uid, ids, prop, unknow_none, context=None)
    return a dict with as value for each contract an integer if contract is in an open state and is overdue, return 0 if contract is in a closed state, return -1 otherwise return the number of days before the contract expires
  • on_change_indic_cost(self, cr, uid, ids, cost_ids, context=None)
  • on_change_start_date(self, cr, uid, ids, strdate, enddate, context=None)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)
  • run_scheduler(self, cr, uid, context=None)
  • scheduler_manage_auto_costs(self, cr, uid, context=None)
  • scheduler_manage_contract_expiration(self, cr, uid, context=None)

New fields (0)

No new fields.

Public methods (4)
  • on_change_amount(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_price_per_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (1)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (2)
  • name_get(self, cr, uid, ids, context=None)
  • on_change_brand(self, cr, uid, ids, model_id, context=None)

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals)
    @openerp.api.model
  • write(self, vals)
    @openerp.api.multi

New fields (0)

No new fields.

Public methods (1)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/8.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYManaging vehicles and contracts
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP S.A.
MAINTAINERS
MAINTAINERSOpenERP S.A.
COMMITTERS
COMMITTERSRandhir Mayatra (OpenERP), Stephane Wirtel, Odoo Translation Bot, Turkesh Patel (Open ERP), ajay javiya (OpenERP), Martin Trigaux, Ajay Chauhan (OpenERP), Foram Katharotiya (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, Christophe Simonis, Xavier Morel, Cedric Snauwaert, Simon Lejeune, Amit Bhavsar (Open ERP), Raphaël Valyi, Richard Mathot, Géry Debongnie, Aaron Bohy, Richard Mathot (OpenERP), ged-odoo, Gery Debongnie, Randhir Mayatra rma-openerp, Yogesh Parekh (OpenERP)
WEBSITE
WEBSITEhttps://www.odoo.com/page/fleet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:45:38
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - board
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, Odoo helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, fuel log
entries, costs and many other features necessary to the management 
of your fleet of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, fuel log entry, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (33)
XML IDNameModelTypeStatus
fleet_vehicle_cost_tree fleet.vehicle.cost.tree fleet.vehicle.cost tree New
fleet_vehicle_costs_form fleet.vehicle.cost.form fleet.vehicle.cost form New
fleet_vehicle_costs_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_costs_search fleet.vehicle.cost.search fleet.vehicle.cost search New
fleet_vehicle_effective_costs_report fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_indicative_costs_report fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_log_contract_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_fuel_form fleet.vehicle.log.fuel.form fleet.vehicle.log.fuel form New
fleet_vehicle_log_fuel_graph fleet.vehicle.log.fuel.graph fleet.vehicle.log.fuel graph New
fleet_vehicle_log_fuel_search fleet.vehicle.log.fuel.search fleet.vehicle.log.fuel search New
fleet_vehicle_log_fuel_tree fleet.vehicle.log.fuel.tree fleet.vehicle.log.fuel tree New
fleet_vehicle_log_services_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_search fleet.vehicle.log.services.search fleet.vehicle.log.services search New
fleet_vehicle_log_services_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_service_types_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tree fleet.vehicle.tree fleet.vehicle tree New
Models touched (12)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • act_show_log_cost(self, cr, uid, ids, context=None)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • create(self, cr, uid, data, context=None)
  • on_change_model(self, cr, uid, ids, model_id, context=None)
  • return_action_to_open(self, cr, uid, ids, context=None)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, cr, uid, ids, vals, context=None)
    This function write an entry in the openchatter whenever we change important information on the vehicle like the model, the drive, the state of the vehicle or its license plate

New fields (0)

No new fields.

Public methods (1)
  • create(self, cr, uid, data, context=None)

New fields (0)

No new fields.

Public methods (11)
  • act_renew_contract(self, cr, uid, ids, context=None)
  • compute_next_year_date(self, strdate)
  • contract_close(self, cr, uid, ids, context=None)
  • contract_open(self, cr, uid, ids, context=None)
  • get_days_left(self, cr, uid, ids, prop, unknow_none, context=None)
    return a dict with as value for each contract an integer if contract is in an open state and is overdue, return 0 if contract is in a closed state, return -1 otherwise return the number of days before the contract expires
  • on_change_indic_cost(self, cr, uid, ids, cost_ids, context=None)
  • on_change_start_date(self, cr, uid, ids, strdate, enddate, context=None)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)
  • run_scheduler(self, cr, uid, context=None)
  • scheduler_manage_auto_costs(self, cr, uid, context=None)
  • scheduler_manage_contract_expiration(self, cr, uid, context=None)

New fields (0)

No new fields.

Public methods (4)
  • on_change_amount(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_price_per_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (1)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (1)
  • on_change_brand(self, cr, uid, ids, model_id, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/7.0/fleet
VERSION
VERSION 0.1
CATEGORY
CATEGORYManaging vehicles and contracts
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP S.A.
MAINTAINERS
MAINTAINERSOpenERP S.A.
COMMITTERS
COMMITTERSCecile Tonglet, Randhir Mayatra (OpenERP), Odoo Translation Bot, Martin Trigaux, Ajay Chauhan (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Tejas Tank, Vo Minh Thu, Arnaud Pineux, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Fabien Meghazi, Christophe Simonis, Denis Ledoux dle@openerp.com, Cedric Snauwaert, Serpent Consulting Services, Ravish (Open ERP)
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:43:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - board
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Vehicle, leasing, insurances, cost
==================================
With this module, OpenERP helps you managing all your vehicles, the
contracts associated to those vehicle as well as services, fuel log
entries, costs and many other features necessary to the management 
of your fleet of vehicle(s)

Main Features
-------------
* Add vehicles to your fleet
* Manage contracts for vehicles
* Reminder when a contract reach its expiration date
* Add services, fuel log entry, odometer values for all vehicles
* Show all costs associated to a vehicle or to a type of service
* Analysis graph for costs

Code Analysis

Views touched (31)
XML IDNameModelTypeStatus
board_fleet_form board.fleet.form board.board form New
fleet_vehicle_costs_form fleet.vehicle.cost.form fleet.vehicle.cost form New
fleet_vehicle_costs_graph fleet.vehicle.cost.graph fleet.vehicle.cost graph New
fleet_vehicle_costs_search fleet.vehicle.cost.search fleet.vehicle.cost search New
fleet_vehicle_costs_tree fleet.vehicle.cost.tree fleet.vehicle.cost tree New
fleet_vehicle_form fleet.vehicle.form fleet.vehicle form New
fleet_vehicle_kanban fleet.vehicle.kanban fleet.vehicle kanban New
fleet_vehicle_log_contract_form fleet.vehicle.log_contract.form fleet.vehicle.log.contract form New
fleet_vehicle_log_contract_graph fleet.vehicle.log.contract.graph fleet.vehicle.log.contract graph New
fleet_vehicle_log_contract_tree fleet.vehicle.log.contract.tree fleet.vehicle.log.contract tree New
fleet_vehicle_log_fuel_form fleet.vehicle.log.fuel.form fleet.vehicle.log.fuel form New
fleet_vehicle_log_fuel_graph fleet.vehicle.log.fuel.graph fleet.vehicle.log.fuel graph New
fleet_vehicle_log_fuel_search fleet.vehicle.log.fuel.search fleet.vehicle.log.fuel search New
fleet_vehicle_log_fuel_tree fleet.vehicle.log.fuel.tree fleet.vehicle.log.fuel tree New
fleet_vehicle_log_services_form fleet.vehicle.log.services.form fleet.vehicle.log.services form New
fleet_vehicle_log_services_graph fleet.vehicle.log.services.graph fleet.vehicle.log.services graph New
fleet_vehicle_log_services_tree fleet.vehicle.log.services.tree fleet.vehicle.log.services tree New
fleet_vehicle_model_brand_form fleet.vehicle.model.brand.form fleet.vehicle.model.brand form New
fleet_vehicle_model_brand_kanban fleet.vehicle.model.brandkanban fleet.vehicle.model.brand kanban New
fleet_vehicle_model_brand_tree fleet.vehicle.model.brand.tree fleet.vehicle.model.brand tree New
fleet_vehicle_model_form fleet.vehicle.model.form fleet.vehicle.model form New
fleet_vehicle_model_search fleet.vehicle.model.search fleet.vehicle.model search New
fleet_vehicle_model_tree fleet.vehicle.model.tree fleet.vehicle.model tree New
fleet_vehicle_odometer_form fleet.vehicle.odometer.form fleet.vehicle.odometer form New
fleet_vehicle_odometer_graph fleet.vehicle.odometer.graph fleet.vehicle.odometer graph New
fleet_vehicle_odometer_search fleet.vehicle.odometer.search fleet.vehicle.odometer search New
fleet_vehicle_odometer_tree fleet.vehicle.odometer.tree fleet.vehicle.odometer tree New
fleet_vehicle_search fleet.vehicle.search fleet.vehicle search New
fleet_vehicle_service_types_tree fleet.service.type.tree fleet.service.type tree New
fleet_vehicle_state_tree fleet.vehicle.state.tree fleet.vehicle.state tree New
fleet_vehicle_tree fleet.vehicle.tree fleet.vehicle tree New
Models touched (12)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (6)
  • act_show_log_cost(self, cr, uid, ids, context=None)
    This opens log view to view and add new log for this vehicle, groupby default to only show effective costs @return: the costs log view
  • copy(self, cr, uid, id, default=None, context=None)
  • create(self, cr, uid, data, context=None)
  • on_change_model(self, cr, uid, ids, model_id, context=None)
  • return_action_to_open(self, cr, uid, ids, context=None)
    This opens the xml view specified in xml_id for the current vehicle
  • write(self, cr, uid, ids, vals, context=None)
    This function write an entry in the openchatter whenever we change important information on the vehicle like the model, the drive, the state of the vehicle or its license plate

New fields (0)

No new fields.

Public methods (1)
  • create(self, cr, uid, data, context=None)

New fields (0)

No new fields.

Public methods (12)
  • act_renew_contract(self, cr, uid, ids, context=None)
  • compute_next_year_date(self, strdate)
  • contract_close(self, cr, uid, ids, context=None)
  • contract_open(self, cr, uid, ids, context=None)
  • copy(self, cr, uid, id, default=None, context=None)
  • get_days_left(self, cr, uid, ids, prop, unknow_none, context=None)
    return a dict with as value for each contract an integer if contract is in an open state and is overdue, return 0 if contract is in a closed state, return -1 otherwise return the number of days before the contract expires
  • on_change_indic_cost(self, cr, uid, ids, cost_ids, context=None)
  • on_change_start_date(self, cr, uid, ids, strdate, enddate, context=None)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)
  • run_scheduler(self, cr, uid, context=None)
  • scheduler_manage_auto_costs(self, cr, uid, context=None)
  • scheduler_manage_contract_expiration(self, cr, uid, context=None)

New fields (0)

No new fields.

Public methods (4)
  • on_change_amount(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_price_per_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (1)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (1)
  • on_change_brand(self, cr, uid, ids, model_id, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.