TIP: You can type at any time to perform a new search.
Field Service Recurring Work Orders
fieldservice_recurring · OCA/field-service
- Repository
- OCA/field-service · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Field Service
- Folder size
- 0.47 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), Brian McMaster, Gray Matter Logic
- Maintainers
- Odoo Community Association (OCA), Brian McMaster, Gray Matter Logic
- Committers
- Maxime Chambreuil, Weblate, OCA-git-bot, oca-ci, Hoa - Truong Thi Kim
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- fieldservice_sale_recurring
- Description
This module allows you to manage your recurring field service work orders Recurring settings are configured via the FSM Frequency model. Multiple FSM Frequency can be combined on a FSM Frequency Rule Set which enables highly configurable recurring rules calculated using the dateutil rrule python library.
Code Analysis ⓘ
Views touched (11)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_list_view |
fsm.frequency.list | fsm.frequency | list | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_list_view |
fsm.frequency.set.list | fsm.frequency.set | list | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | New |
fsm_recurring_list_view |
fsm.recurring.list | fsm.recurring | list | New |
fsm_recurring_search_view |
fsm.recurring.search | fsm.recurring | search | New |
fsm_recurring_template_form_view |
fsm.recurring.template.form | fsm.recurring.template | form | New |
fsm_recurring_template_list_view |
fsm.recurring.template.list | fsm.recurring.template | list | New |
view_fsm_order_form |
fsm.order | form | Inherits fieldservice.fsm_order_form | |
view_team_kanban_recurring |
fsm.team | kanban | Inherits fieldservice.view_team_kanban |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (6)
New fields (31)
-
activeBooleandefault=True -
aprBooleanargs: 'April' -
augBooleanargs: 'August' -
company_idMany2one → res.companyargs: 'res.company', 'Company' -
decBooleanargs: 'December' -
febBooleanargs: 'February' -
frBooleanargs: 'Friday' -
intervalIntegerdefault=1help='The number of intervals between events'required=Truestring='Repeat Every'tracking=True -
interval_typeSelectionrequired=Truetracking=True args: FREQUENCY_SELECT -
is_exclusiveBooleanhelp='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'string='Exclusive Rule?' -
janBooleanargs: 'January' -
julBooleanargs: 'July' -
junBooleanargs: 'June' -
marBooleanargs: 'March' -
mayBoolean -
moBooleanargs: 'Monday' -
month_dayIntegerstring='Day of Month'tracking=True -
nameCharrequired=True -
novBooleanargs: 'November' -
octBooleanargs: 'October' -
saBooleanargs: 'Saturday' -
sepBooleanargs: 'September' -
set_posIntegerhelp="Specify an occurrence number, positive or negative,\n corresponding to the nth occurrence of the rule inside\n the frequency period. For example, -1 if combined with a\n 'Monthly' frequency, and a weekday of (MO, TU, WE, TH, FR),\n will result in the last work day of every month."string='By Position' -
suBooleanargs: 'Sunday' -
thBooleanargs: 'Thursday' -
tuBooleanargs: 'Tuesday' -
use_bymonthBooleanstring='Use Months' -
use_bymonthdayBooleanhelp='When selected you will be able to specify which calendar day\n of the month the event occurs on'string='Use Day of Month' -
use_byweekdayBooleanhelp='When selected you will be able to choose which days of the\n week the scheduler will include (or exclude if Exclusive rule)'string='Use Days of Week' -
use_setposBooleanstring='Use Position' -
weBooleanargs: 'Wednesday'
No public methods.
New fields (6)
-
activeBooleandefault=True -
buffer_earlyIntegerhelp='The allowed number of days before the computed schedule date\n that an event can be done'string='Early Buffer'tracking=True -
buffer_lateIntegerhelp='The allowed number of days after the computed schedule date\n that an event can be done'string='Late Buffer'tracking=True -
fsm_frequency_idsMany2many → fsm.frequencystring='Frequency Rules'tracking=True args: 'fsm.frequency' -
nameCharrequired=True -
schedule_daysIntegerdefault='30'help='The number of days from today that the scheduler will generate\n orders for this rule'string='Days Ahead to Schedule'tracking=True
No public methods.
New fields (1)
-
fsm_recurring_idMany2one → fsm.recurringreadonly=True args: 'fsm.recurring', 'Recurring Order'
-
action_view_fsm_recurring(self) -
create(self, vals_list)@api.model_create_multi
New fields (17)
-
company_idMany2one → res.companydefault=<expr>required=True args: 'res.company', 'Company' -
descriptionText -
end_dateDatetimehelp='Recurring orders will not be made after this date' -
equipment_idsMany2many → fsm.equipmentargs: 'fsm.equipment' -
fsm_frequency_set_idMany2one → fsm.frequency.setargs: 'fsm.frequency.set', 'Frequency Set' -
fsm_order_countIntegercompute='_compute_order_count' args: 'Orders Count' -
fsm_order_idsOne2many → fsm.ordercopy=Falsestring='Orders' args: 'fsm.order', 'fsm_recurring_id' -
fsm_order_template_idMany2one → fsm.templatehelp='This is the order template that will be recurring'string='Order Template' args: 'fsm.template' -
fsm_recurring_template_idMany2one → fsm.recurring.templateargs: 'fsm.recurring.template', 'Recurring Template' -
location_idMany2one → fsm.locationindex=Truerequired=Truestring='Location' args: 'fsm.location' -
max_ordersIntegerhelp='Maximum number of orders that will be created'string='Maximum Orders' -
nameCharcopy=Falsedefault=<expr>index=Truerequired=True -
person_idMany2one → fsm.personindex=Truestring='Assigned To'tracking=True args: 'fsm.person' -
scheduled_durationFloathelp='Scheduled duration of the work in hours' -
start_dateDatetime -
stateSelectiondefault='draft'readonly=Truetracking=True args: [('draft', 'Draft'), ('progress', 'In Progress'), ('suspend', 'Suspended'), ('close', 'Closed')] -
team_idMany2one → fsm.teamdefault=<expr>index=Truerequired=Truestring='Team'tracking=True args: 'fsm.team'
-
action_start(self) -
action_suspend(self) -
create(self, vals_list)@api.model_create_multi -
onchange_recurring_template_id(self)@api.onchange('fsm_recurring_template_id') -
populate_from_template(self, template=False)
New fields (7)
-
activeBooleandefault=True -
company_idMany2one → res.companyargs: 'res.company', 'Company' -
descriptionText -
fsm_frequency_set_idMany2one → fsm.frequency.setargs: 'fsm.frequency.set', 'Frequency Set' -
fsm_order_template_idMany2one → fsm.templatehelp='This is the order template that will be recurring'string='Order Template' args: 'fsm.template' -
max_ordersIntegerhelp='Maximium number of orders that will be created'string='Maximum Orders' -
nameCharrequired=True
No public methods.
New fields (1)
-
recurring_draft_countIntegercompute='_compute_recurring_draft_count'string='Recurring in draft'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…