TIP: You can type at any time to perform a new search.
Field Service Route
fieldservice_route · OCA/field-service
- Repository
- OCA/field-service · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Field Service
- Folder size
- 0.29 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/field-service
- Last tracking update
- 2026-08-07 09:06:25
- Authors
- Odoo Community Association (OCA), Gray Matter Logic
- Maintainers
- Odoo Community Association (OCA), Gray Matter Logic
- Committers
- Maxime Chambreuil, OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- fieldservice_availability
- Description
A Field Service route is the sorted list of orders that one worker/vehicle will perform during a day. This module allows you to manage your Field Service routes: when assigning an order to a worker and scheduling it, a route is automatically created for that worker and day.
Code Analysis ⓘ
Views touched (11)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_location_form_view_route_inherit |
fsm.location.form | fsm.location | form | Inherits fieldservice.fsm_location_form_view |
fsm_order_form_inherit_route |
fsm.order.form | fsm.order | form | Inherits fieldservice.fsm_order_form |
fsm_route_day_form_view |
Route Day | fsm.route.day | form | New |
fsm_route_day_list_view |
Route Day | fsm.route.day | list | New |
fsm_route_dayroute_calendar |
fsm.route.dayroute.calendar | fsm.route.dayroute | calendar | New |
fsm_route_dayroute_form |
fsm.route.dayroute.form | fsm.route.dayroute | form | New |
fsm_route_dayroute_graph_view |
fsm.route.graph | fsm.route.dayroute | graph | New |
fsm_route_dayroute_list |
fsm.route.dayroute.list | fsm.route.dayroute | list | New |
fsm_route_dayroute_pivot_view |
fsm.route.pivot | fsm.route.dayroute | pivot | New |
fsm_route_form |
fsm.route.form | fsm.route | form | New |
fsm_route_list |
fsm.route.list | fsm.route | list | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (6)
New fields (1)
-
fsm_route_idMany2one → fsm.routecomodel_name='fsm.route'string='Route'
-
write(self, vals)
New fields (3)
-
dayroute_idMany2one → fsm.route.dayroutecomodel_name='fsm.route.dayroute'index=Truestring='Day Route' -
fsm_route_idMany2onerelated='location_id.fsm_route_id'string='Route' -
person_idMany2one → fsm.personcomodel_name='fsm.person'compute='_compute_person_id'index=Truereadonly=Falsestore=Truestring='Assigned To'
-
create(self, vals_list)@api.model_create_multi -
prepare_dayroute_values(self, values) -
write(self, vals)
New fields (4)
-
day_idsMany2many → fsm.route.daycomodel_name='fsm.route.day'string='Days' -
fsm_person_idMany2one → fsm.personcomodel_name='fsm.person'string='Person' -
max_orderIntegerdefault=0help='Maximum number of orders per day route.'string='Maximum Orders' -
nameCharrequired=True
-
run_on(self, date):param date: date :return: True if the route runs on the date, False otherwise. -
write(self, vals)
New fields (1)
-
nameSelectionselection=[('Monday', 'Monday'), ('Tuesday', 'Tuesday'), ('Wednesday', 'Wednesday'), ('Thursday', 'Thursday'), ('Friday', 'Friday'), ('Saturday', 'Saturday'), ('Sunday', 'Sunday')]
No public methods.
New fields (18)
-
dateDaterequired=True -
date_start_plannedDatetimecompute='_compute_date_start_planned'readonly=Falsestore=Truestring='Planned Start Time' -
end_location_idMany2one → fsm.locationcomodel_name='fsm.location'string='End Location' -
last_location_idMany2one → fsm.locationcomodel_name='fsm.location'string='Last Location' -
latitudeFloat -
longitudeFloat -
max_allow_timeFloatdefault=10.0string='Maximal Allowable Time (in hours)' -
max_orderIntegerhelp='Maximum numbers of orders that can be added to this day route.'related='route_id.max_order'store=Truestring='Maximum Capacity' -
nameCharcopy=Falsedefault=<expr>required=True -
order_countIntegercompute='_compute_order_count'store=Truestring='Number of Orders' -
order_idsOne2many → fsm.ordercomodel_name='fsm.order'inverse_name='dayroute_id'string='Orders' -
order_remainingIntegercompute='_compute_order_count'store=Truestring='Available Capacity' -
person_idMany2one → fsm.personcomodel_name='fsm.person'compute='_compute_person_id'readonly=Falsestore=Truestring='Person' -
route_idMany2one → fsm.routecomodel_name='fsm.route'string='Route' -
stage_idMany2one → fsm.stagecomodel_name='fsm.stage'copy=Falsedefault=<expr>domain="[('stage_type', '=', 'route')]"index=Truestring='Stage' -
start_location_idMany2one → fsm.locationcomodel_name='fsm.location'string='Start Location' -
team_idMany2one → fsm.teamcomodel_name='fsm.team'default=<expr>string='Team' -
work_timeFloatdefault=8.0string='Time before overtime (in hours)'
-
check_capacity(self)@api.constrains('route_id', 'max_order', 'order_count') -
check_day(self)@api.constrains('date', 'route_id') -
create(self, vals_list)@api.model_create_multi
New fields (1)
-
stage_typeSelectionondelete={'route': 'cascade'}selection_add=[('route', 'Route')]
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…