| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/19.0/fieldservice_recurring |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Hoa - Truong Thi Kim |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:46 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice - base_territory odoo/odoo: - base - base_geolocalize - base_setup - web - resource - contacts - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| 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 | xpath | Inherits fieldservice.fsm_order_form | |
view_team_kanban_recurring |
fsm.team | field | Inherits fieldservice.view_team_kanban |
active
Boolean
default=True
apr
Boolean
aug
Boolean
company_id
Many2one → res.company
dec
Boolean
feb
Boolean
fr
Boolean
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
tracking=True
interval_type
Selection
required=True
tracking=True
args: FREQUENCY_SELECT
is_exclusive
Boolean
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
jul
Boolean
jun
Boolean
mar
Boolean
may
Boolean
mo
Boolean
month_day
Integer
string='Day of Month'
tracking=True
name
Char
required=True
nov
Boolean
oct
Boolean
sa
Boolean
sep
Boolean
set_pos
Integer
help="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'
su
Boolean
th
Boolean
tu
Boolean
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
tracking=True
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
tracking=True
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
tracking=True
args: 'fsm.frequency'
name
Char
required=True
schedule_days
Integer
default='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.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
create(self, vals_list)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
description
Text
end_date
Datetime
help='Recurring orders will not be made after this date'
equipment_ids
Many2many → fsm.equipment
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximum number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
person_id
Many2one → fsm.person
index=True
string='Assigned To'
tracking=True
args: 'fsm.person'
scheduled_duration
Float
help='Scheduled duration of the work in hours'
start_date
Datetime
state
Selection
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('suspend', 'Suspended'), ('close', 'Closed')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
tracking=True
args: 'fsm.team'
action_start(self)
action_suspend(self)
create(self, vals_list)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
description
Text
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
No public methods.
recurring_draft_count
Integer
compute='_compute_recurring_draft_count'
string='Recurring in draft'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/18.0/fieldservice_recurring |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Brian McMaster, Quirino Leone, EdgarRetes |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:06 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice - base_territory odoo/odoo: - base - base_geolocalize - base_setup - web - resource - contacts - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| 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 | xpath | Inherits fieldservice.fsm_order_form | |
view_team_kanban_recurring |
fsm.team | field | Inherits fieldservice.view_team_kanban |
active
Boolean
default=True
apr
Boolean
aug
Boolean
company_id
Many2one → res.company
dec
Boolean
feb
Boolean
fr
Boolean
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
tracking=True
interval_type
Selection
required=True
tracking=True
args: FREQUENCY_SELECT
is_exclusive
Boolean
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
jul
Boolean
jun
Boolean
mar
Boolean
may
Boolean
mo
Boolean
month_day
Integer
string='Day of Month'
tracking=True
name
Char
required=True
nov
Boolean
oct
Boolean
sa
Boolean
sep
Boolean
set_pos
Integer
help="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'
su
Boolean
th
Boolean
tu
Boolean
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
tracking=True
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
tracking=True
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
tracking=True
args: 'fsm.frequency'
name
Char
required=True
schedule_days
Integer
default='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.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
create(self, vals_list)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
description
Text
end_date
Datetime
help='Recurring orders will not be made after this date'
equipment_ids
Many2many → fsm.equipment
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximum number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
person_id
Many2one → fsm.person
index=True
string='Assigned To'
tracking=True
args: 'fsm.person'
scheduled_duration
Float
help='Scheduled duration of the work in hours'
start_date
Datetime
state
Selection
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('suspend', 'Suspended'), ('close', 'Closed')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
tracking=True
args: 'fsm.team'
action_start(self)
action_suspend(self)
create(self, vals_list)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
description
Text
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
No public methods.
recurring_draft_count
Integer
compute='_compute_recurring_draft_count'
string='Recurring in draft'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/17.0/fieldservice_recurring |
| VERSION | |
| VERSION | 2.1.1 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | jcoux, Weblate, OCA-git-bot, Iván Todorovich, oca-ci, Maksym Yankin, Brian McMaster, Antoni Marroig Campomar, Quirino Leone |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice - base_territory odoo/odoo: - base - base_geolocalize - base_setup - web - resource - contacts - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_tree_view |
fsm.frequency.set.tree | fsm.frequency.set | tree | New |
fsm_frequency_tree_view |
fsm.frequency.tree | fsm.frequency | tree | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | 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_tree_view |
fsm.recurring.template.tree | fsm.recurring.template | tree | New |
fsm_recurring_tree_view |
fsm.recurring.tree | fsm.recurring | tree | New |
view_fsm_order_form |
fsm.order | xpath | Inherits fieldservice.fsm_order_form | |
view_team_kanban_recurring |
fsm.team | field | Inherits fieldservice.view_team_kanban |
active
Boolean
default=True
apr
Boolean
aug
Boolean
company_id
Many2one → res.company
dec
Boolean
feb
Boolean
fr
Boolean
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
tracking=True
interval_type
Selection
required=True
tracking=True
args: FREQUENCY_SELECT
is_exclusive
Boolean
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
jul
Boolean
jun
Boolean
mar
Boolean
may
Boolean
mo
Boolean
month_day
Integer
string='Day of Month'
tracking=True
name
Char
required=True
nov
Boolean
oct
Boolean
sa
Boolean
sep
Boolean
set_pos
Integer
help="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'
su
Boolean
th
Boolean
tu
Boolean
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
tracking=True
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
tracking=True
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
tracking=True
args: 'fsm.frequency'
name
Char
required=True
schedule_days
Integer
default='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.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
create(self, vals_list)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
description
Text
end_date
Datetime
help='Recurring orders will not be made after this date'
equipment_ids
Many2many → fsm.equipment
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
person_id
Many2one → fsm.person
index=True
string='Assigned To'
tracking=True
args: 'fsm.person'
scheduled_duration
Float
help='Scheduled duration of the work in hours'
start_date
Datetime
state
Selection
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('suspend', 'Suspended'), ('close', 'Closed')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
tracking=True
args: 'fsm.team'
action_start(self)
action_suspend(self)
create(self, vals_list)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
description
Text
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
No public methods.
recurring_draft_count
Integer
compute='_compute_recurring_draft_count'
string='Recurring in draft'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/16.0/fieldservice_recurring |
| VERSION | |
| VERSION | 2.1.3 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Brian McMaster, kaynnan, anusrinps96, Quirino Leone |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice - base_territory odoo/odoo: - base - base_geolocalize - base_setup - web - resource - contacts - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_tree_view |
fsm.frequency.set.tree | fsm.frequency.set | tree | New |
fsm_frequency_tree_view |
fsm.frequency.tree | fsm.frequency | tree | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | 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_tree_view |
fsm.recurring.template.tree | fsm.recurring.template | tree | New |
fsm_recurring_tree_view |
fsm.recurring.tree | fsm.recurring | tree | New |
view_fsm_order_form |
fsm.order | xpath | Inherits fieldservice.fsm_order_form | |
view_team_kanban_recurring |
fsm.team | field | Inherits fieldservice.view_team_kanban |
active
Boolean
default=True
apr
Boolean
aug
Boolean
company_id
Many2one → res.company
dec
Boolean
feb
Boolean
fr
Boolean
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
tracking=True
interval_type
Selection
required=True
tracking=True
args: FREQUENCY_SELECT
is_exclusive
Boolean
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
jul
Boolean
jun
Boolean
mar
Boolean
may
Boolean
mo
Boolean
month_day
Integer
string='Day of Month'
tracking=True
name
Char
required=True
nov
Boolean
oct
Boolean
sa
Boolean
sep
Boolean
set_pos
Integer
help="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'
su
Boolean
th
Boolean
tu
Boolean
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
tracking=True
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
tracking=True
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
tracking=True
args: 'fsm.frequency'
name
Char
required=True
schedule_days
Integer
default='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.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
create(self, vals_list)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
description
Text
end_date
Datetime
help='Recurring orders will not be made after this date'
equipment_ids
Many2many → fsm.equipment
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
readonly=True
states={'draft': [('readonly', False)]}
args: 'fsm.recurring.template', 'Recurring Template'
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
person_id
Many2one → fsm.person
index=True
string='Assigned To'
tracking=True
args: 'fsm.person'
scheduled_duration
Float
help='Scheduled duration of the work in hours'
start_date
Datetime
state
Selection
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('suspend', 'Suspended'), ('close', 'Closed')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
tracking=True
args: 'fsm.team'
action_start(self)
action_suspend(self)
create(self, vals_list)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
description
Text
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
No public methods.
recurring_draft_count
Integer
compute='_compute_recurring_draft_count'
string='Recurring in draft'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/15.0/fieldservice_recurring |
| VERSION | |
| VERSION | 2.1.0 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Brian McMaster, Freni-OSI |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice - base_territory odoo/odoo: - base - base_geolocalize - base_setup - web - resource - contacts - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_tree_view |
fsm.frequency.set.tree | fsm.frequency.set | tree | New |
fsm_frequency_tree_view |
fsm.frequency.tree | fsm.frequency | tree | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | 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_tree_view |
fsm.recurring.template.tree | fsm.recurring.template | tree | New |
fsm_recurring_tree_view |
fsm.recurring.tree | fsm.recurring | tree | New |
view_fsm_order_form |
fsm.order | xpath | Inherits fieldservice.fsm_order_form | |
view_team_kanban_recurring |
fsm.team | field | Inherits fieldservice.view_team_kanban |
active
Boolean
default=True
apr
Boolean
aug
Boolean
company_id
Many2one → res.company
dec
Boolean
feb
Boolean
fr
Boolean
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
tracking=True
interval_type
Selection
required=True
tracking=True
args: FREQUENCY_SELECT
is_exclusive
Boolean
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
jul
Boolean
jun
Boolean
mar
Boolean
may
Boolean
mo
Boolean
month_day
Integer
string='Day of Month'
tracking=True
name
Char
required=True
nov
Boolean
oct
Boolean
sa
Boolean
sep
Boolean
set_pos
Integer
help="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'
su
Boolean
th
Boolean
tu
Boolean
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
tracking=True
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
tracking=True
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
tracking=True
args: 'fsm.frequency'
name
Char
required=True
schedule_days
Integer
default='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.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
create(self, vals)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
description
Text
end_date
Datetime
help='Recurring orders will not be made after this date'
equipment_ids
Many2many → fsm.equipment
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
readonly=True
states={'draft': [('readonly', False)]}
args: 'fsm.recurring.template', 'Recurring Template'
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
person_id
Many2one → fsm.person
index=True
string='Assigned To'
tracking=True
args: 'fsm.person'
scheduled_duration
Float
help='Scheduled duration of the work in hours'
start_date
Datetime
state
Selection
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('suspend', 'Suspended'), ('close', 'Closed')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
tracking=True
args: 'fsm.team'
action_start(self)
action_suspend(self)
create(self, vals)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
description
Text
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
No public methods.
recurring_draft_count
Integer
compute='_compute_recurring_draft_count'
string='Recurring in draft'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/14.0/fieldservice_recurring |
| VERSION | |
| VERSION | 3.4.0 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | Daniel Reis, OCA Transbot, oca-travis, Weblate, OCA-git-bot, hparfr, oca-ci, Brian McMaster, Alessandro Uffreduzzi, Florian Mounier, Alessio Renda, BojanOD |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice - base_territory odoo/odoo: - base - base_geolocalize - base_setup - web - resource - contacts - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_tree_view |
fsm.frequency.set.tree | fsm.frequency.set | tree | New |
fsm_frequency_tree_view |
fsm.frequency.tree | fsm.frequency | tree | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | 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_tree_view |
fsm.recurring.template.tree | fsm.recurring.template | tree | New |
fsm_recurring_tree_view |
fsm.recurring.tree | fsm.recurring | tree | New |
view_fsm_order_form |
fsm.order | xpath | Inherits fieldservice.fsm_order_form | |
view_team_kanban_recurring |
fsm.team | field | Inherits fieldservice.view_team_kanban |
active
Boolean
default=True
apr
Boolean
default=False
args: 'April'
aug
Boolean
default=False
args: 'August'
company_id
Many2one → res.company
dec
Boolean
default=False
args: 'December'
feb
Boolean
default=False
args: 'February'
fr
Boolean
default=False
args: 'Friday'
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
tracking=True
interval_type
Selection
required=True
string='Interval Type'
tracking=True
args: FREQUENCY_SELECT
is_exclusive
Boolean
default=False
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
default=False
args: 'January'
jul
Boolean
default=False
args: 'July'
jun
Boolean
default=False
args: 'June'
mar
Boolean
default=False
args: 'March'
may
Boolean
default=False
args: 'May'
mo
Boolean
default=False
args: 'Monday'
month_day
Integer
string='Day of Month'
tracking=True
name
Char
required=True
args: 'Name'
nov
Boolean
default=False
args: 'November'
oct
Boolean
default=False
args: 'October'
sa
Boolean
default=False
args: 'Saturday'
sep
Boolean
default=False
args: 'September'
set_pos
Integer
help="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'
su
Boolean
default=False
args: 'Sunday'
th
Boolean
default=False
args: 'Thursday'
tu
Boolean
default=False
args: 'Tuesday'
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
default=False
args: 'Wednesday'
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
tracking=True
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
tracking=True
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
tracking=True
args: 'fsm.frequency'
name
Char
required=True
args: 'Name'
schedule_days
Integer
default='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.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
description
Text
string='Description'
end_date
Datetime
help='Recurring orders will not be made after this date'
string='End Date'
equipment_ids
Many2many → fsm.equipment
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
readonly=True
states={'draft': [('readonly', False)]}
args: 'fsm.recurring.template', 'Recurring Template'
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
string='Name'
person_id
Many2one → fsm.person
index=True
string='Assigned To'
tracking=True
args: 'fsm.person'
scheduled_duration
Float
help='Scheduled duration of the work in hours'
string='Scheduled duration'
start_date
Datetime
string='Start Date'
state
Selection
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('suspend', 'Suspended'), ('close', 'Closed')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
tracking=True
args: 'fsm.team'
action_start(self)
action_suspend(self)
create(self, vals)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
description
Text
string='Description'
fsm_frequency_set_id
Many2one → fsm.frequency.set
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
string='Name'
No public methods.
recurring_draft_count
Integer
compute='_compute_recurring_draft_count'
string='Recurring in draft'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/13.0/fieldservice_recurring |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, oca-travis, Weblate, OCA-git-bot, brian10048, Brian McMaster |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice - base_territory odoo/odoo: - base - base_geolocalize - base_setup - web - resource - contacts - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_tree_view |
fsm.frequency.set.tree | fsm.frequency.set | tree | New |
fsm_frequency_tree_view |
fsm.frequency.tree | fsm.frequency | tree | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | New |
fsm_recurring_template_form_view |
fsm.recurring.template.form | fsm.recurring.template | form | New |
fsm_recurring_template_tree_view |
fsm.recurring.template.tree | fsm.recurring.template | tree | New |
fsm_recurring_tree_view |
fsm.recurring.tree | fsm.recurring | tree | New |
view_fsm_order_form |
fsm.order | xpath | Inherits fieldservice.fsm_order_form |
active
Boolean
default=True
apr
Boolean
default=False
args: 'April'
aug
Boolean
default=False
args: 'August'
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
dec
Boolean
default=False
args: 'December'
feb
Boolean
default=False
args: 'February'
fr
Boolean
default=False
args: 'Friday'
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
track_visibility='onchange'
interval_type
Selection
required=True
string='Interval Type'
track_visibility='onchange'
args: FREQUENCY_SELECT
is_exclusive
Boolean
default=False
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
default=False
args: 'January'
jul
Boolean
default=False
args: 'July'
jun
Boolean
default=False
args: 'June'
mar
Boolean
default=False
args: 'March'
may
Boolean
default=False
args: 'May'
mo
Boolean
default=False
args: 'Monday'
month_day
Integer
string='Day of Month'
track_visibility='onchange'
name
Char
required=True
args: 'Name'
nov
Boolean
default=False
args: 'November'
oct
Boolean
default=False
args: 'October'
sa
Boolean
default=False
args: 'Saturday'
sep
Boolean
default=False
args: 'September'
set_pos
Integer
help="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'
su
Boolean
default=False
args: 'Sunday'
th
Boolean
default=False
args: 'Thursday'
tu
Boolean
default=False
args: 'Tuesday'
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
default=False
args: 'Wednesday'
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
track_visibility='onchange'
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
track_visibility='onchange'
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
track_visibility='onchange'
args: 'fsm.frequency'
name
Char
required=True
args: 'Name'
schedule_days
Integer
default='30'
help='The number of days from today that the scheduler will generate\n orders for this rule'
string='Days Ahead to Schedule'
track_visibility='onchange'
No public methods.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
description
Text
string='Description'
end_date
Datetime
help='Recurring orders will not be made after this date'
string='End Date'
fsm_frequency_set_id
Many2one → fsm.frequency.set
required=True
args: 'fsm.frequency.set', 'Frequency Set'
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
readonly=True
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
readonly=True
states={'draft': [('readonly', False)]}
args: 'fsm.recurring.template', 'Recurring Template'
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
string='Name'
person_id
Many2one → fsm.person
index=True
string='Assigned To'
track_visibility='onchange'
args: 'fsm.person'
start_date
Datetime
String='Start Date'
state
Selection
default='draft'
readonly=True
track_visibility='onchange'
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('pending', 'To Renew'), ('close', 'Closed'), ('cancel', 'Cancelled')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
track_visibility='onchange'
args: 'fsm.team'
action_cancel(self)
action_renew(self)
action_start(self)
create(self, vals)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
description
Text
string='Description'
fsm_frequency_set_id
Many2one → fsm.frequency.set
required=True
args: 'fsm.frequency.set', 'Frequency Set'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
string='Name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/12.0/fieldservice_recurring |
| VERSION | |
| VERSION | 1.3.1 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | Maxime Chambreuil, GitHub, OCA Transbot, oca-travis, Weblate, OCA-git-bot, hparfr, clementmbr, Kitti U, brian10048, Murtuza Saleh, Alessandro Uffreduzzi |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice OCA/partner-contact: - partner_fax OCA/web: - web_timeline odoo/odoo: - base_geolocalize - base - base_setup - web - bus - web_tour - resource - contacts |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_tree_view |
fsm.frequency.set.tree | fsm.frequency.set | tree | New |
fsm_frequency_tree_view |
fsm.frequency.tree | fsm.frequency | tree | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | New |
fsm_recurring_template_form_view |
fsm.recurring.template.form | fsm.recurring.template | form | New |
fsm_recurring_template_tree_view |
fsm.recurring.template.tree | fsm.recurring.template | tree | New |
fsm_recurring_tree_view |
fsm.recurring.tree | fsm.recurring | tree | New |
view_fsm_order_form |
fsm.order | xpath | Inherits fieldservice.fsm_order_form |
active
Boolean
default=True
apr
Boolean
default=False
args: 'April'
aug
Boolean
default=False
args: 'August'
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
dec
Boolean
default=False
args: 'December'
feb
Boolean
default=False
args: 'February'
fr
Boolean
default=False
args: 'Friday'
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
track_visibility='onchange'
interval_type
Selection
required=True
string='Interval Type'
track_visibility='onchange'
args: FREQUENCY_SELECT
is_exclusive
Boolean
default=False
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
default=False
args: 'January'
jul
Boolean
default=False
args: 'July'
jun
Boolean
default=False
args: 'June'
mar
Boolean
default=False
args: 'March'
may
Boolean
default=False
args: 'May'
mo
Boolean
default=False
args: 'Monday'
month_day
Integer
string='Day of Month'
track_visibility='onchange'
name
Char
required=True
args: 'Name'
nov
Boolean
default=False
args: 'November'
oct
Boolean
default=False
args: 'October'
sa
Boolean
default=False
args: 'Saturday'
sep
Boolean
default=False
args: 'September'
set_pos
Integer
help="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'
su
Boolean
default=False
args: 'Sunday'
th
Boolean
default=False
args: 'Thursday'
tu
Boolean
default=False
args: 'Tuesday'
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
default=False
args: 'Wednesday'
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
track_visibility='onchange'
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
track_visibility='onchange'
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
track_visibility='onchange'
args: 'fsm.frequency'
name
Char
required=True
args: 'Name'
schedule_days
Integer
default='30'
help='The number of days from today that the scheduler will generate\n orders for this rule'
string='Days Ahead to Schedule'
track_visibility='onchange'
No public methods.
fsm_recurring_id
Many2one → fsm.recurring
readonly=True
args: 'fsm.recurring', 'Recurring Order'
action_view_fsm_recurring(self)
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
description
Text
string='Description'
end_date
Datetime
help='Recurring orders will not be made after this date'
string='End Date'
fsm_frequency_set_id
Many2one → fsm.frequency.set
required=True
args: 'fsm.frequency.set', 'Frequency Set'
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
readonly=True
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
readonly=True
states={'draft': [('readonly', False)]}
args: 'fsm.recurring.template', 'Recurring Template'
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
string='Name'
person_id
Many2one → fsm.person
index=True
string='Assigned To'
track_visibility='onchange'
args: 'fsm.person'
start_date
Datetime
String='Start Date'
state
Selection
default='draft'
readonly=True
track_visibility='onchange'
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('pending', 'To Renew'), ('close', 'Closed'), ('cancel', 'Cancelled')]
team_id
Many2one → fsm.team
default=<expr>
index=True
required=True
string='Team'
track_visibility='onchange'
args: 'fsm.team'
action_cancel(self)
action_renew(self)
action_start(self)
create(self, vals)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
description
Text
string='Description'
fsm_frequency_set_id
Many2one → fsm.frequency.set
required=True
args: 'fsm.frequency.set', 'Frequency Set'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
string='Name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/field-service |
| GIT | |
| GIT | https://github.com/OCA/field-service.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/field-service/tree/11.0/fieldservice_recurring |
| VERSION | |
| VERSION | 0.1.1 |
| CATEGORY | |
| CATEGORY | Field Service |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Brian McMaster |
| COMMITTERS | |
| COMMITTERS | Maxime Chambreuil, OCA-git-bot, brian10048 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/field-service |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:55 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/field-service: - fieldservice OCA/geospatial: - base_geoengine OCA/web: - web_timeline odoo/odoo: - base_geolocalize - base - base_setup - web - bus - web_tour - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
geojson shapely simplejson |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
fsm_frequency_form_view |
fsm.frequency.form | fsm.frequency | form | New |
fsm_frequency_set_form_view |
fsm.frequency.set.form | fsm.frequency.set | form | New |
fsm_frequency_set_tree_view |
fsm.frequency.set.tree | fsm.frequency.set | tree | New |
fsm_frequency_tree_view |
fsm.frequency.tree | fsm.frequency | tree | New |
fsm_recurring_form_view |
fsm.recurring.form | fsm.recurring | form | New |
fsm_recurring_template_form_view |
fsm.recurring.template.form | fsm.recurring.template | form | New |
fsm_recurring_template_tree_view |
fsm.recurring.template.tree | fsm.recurring.template | tree | New |
fsm_recurring_tree_view |
fsm.recurring.tree | fsm.recurring | tree | New |
active
Boolean
default=True
apr
Boolean
default=False
args: 'April'
aug
Boolean
default=False
args: 'August'
dec
Boolean
default=False
args: 'December'
feb
Boolean
default=False
args: 'February'
fr
Boolean
default=False
args: 'Friday'
interval
Integer
default=1
help='The number of intervals between events'
required=True
string='Repeat Every'
track_visibility='onchange'
interval_type
Selection
required=True
string='Interval Type'
track_visibility='onchange'
args: FREQUENCY_SELECT
is_exclusive
Boolean
default=False
help='Checking this box will make this an exclusive rule. Exclusive\n rules prevent the configured days from being a schedule option'
string='Exclusive Rule?'
jan
Boolean
default=False
args: 'January'
jul
Boolean
default=False
args: 'July'
jun
Boolean
default=False
args: 'June'
mar
Boolean
default=False
args: 'March'
may
Boolean
default=False
args: 'May'
mo
Boolean
default=False
args: 'Monday'
month_day
Integer
string='Day of Month'
track_visibility='onchange'
name
Char
required=True
args: 'Name'
nov
Boolean
default=False
args: 'November'
oct
Boolean
default=False
args: 'October'
sa
Boolean
default=False
args: 'Saturday'
sep
Boolean
default=False
args: 'September'
set_pos
Integer
help="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'
su
Boolean
default=False
args: 'Sunday'
th
Boolean
default=False
args: 'Thursday'
tu
Boolean
default=False
args: 'Tuesday'
use_bymonth
Boolean
string='Use Months'
use_bymonthday
Boolean
help='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_byweekday
Boolean
help='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_setpos
Boolean
string='Use Position'
we
Boolean
default=False
args: 'Wednesday'
No public methods.
active
Boolean
default=True
buffer_early
Integer
help='The allowed number of days before the computed schedule date\n that an event can be done'
string='Early Buffer'
track_visibility='onchange'
buffer_late
Integer
help='The allowed number of days after the computed schedule date\n that an event can be done'
string='Late Buffer'
track_visibility='onchange'
fsm_frequency_ids
Many2many → fsm.frequency
string='Frequency Rules'
track_visibility='onchange'
args: 'fsm.frequency'
name
Char
required=True
args: 'Name'
schedule_days
Integer
default='30'
help='The number of days from today that the scheduler will generate\n orders for this rule'
string='Days Ahead to Schedule'
track_visibility='onchange'
No public methods.
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
customer_id
Many2one → res.partner
change_default=True
domain=[('customer', '=', True)]
index=True
string='Contact'
track_visibility='always'
args: 'res.partner'
description
Text
string='Description'
end_date
Datetime
help='Recurring orders will not be made after this date'
string='End Date'
fsm_frequency_set_id
Many2one → fsm.frequency.set
required=True
args: 'fsm.frequency.set', 'Frequency Set'
fsm_order_count
Integer
compute='_compute_order_count'
args: 'Orders Count'
fsm_order_ids
One2many → fsm.order
copy=False
readonly=True
string='Orders'
args: 'fsm.order', 'fsm_recurring_id'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
fsm_recurring_template_id
Many2one → fsm.recurring.template
readonly=True
states={'draft': [('readonly', False)]}
args: 'fsm.recurring.template', 'Recurring Template'
location_id
Many2one → fsm.location
index=True
required=True
string='Location'
args: 'fsm.location'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
copy=False
default=<expr>
index=True
required=True
string='Name'
start_date
Datetime
String='Start Date'
state
Selection
default='draft'
readonly=True
track_visibility='onchange'
args: [('draft', 'Draft'), ('progress', 'In Progress'), ('pending', 'To Renew'), ('close', 'Closed'), ('cancel', 'Cancelled')]
action_cancel(self)
action_renew(self)
action_start(self)
create(self, vals)
onchange_recurring_template_id(self)
populate_from_template(self, template=False)
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
description
Text
string='Description'
fsm_frequency_set_id
Many2one → fsm.frequency.set
required=True
args: 'fsm.frequency.set', 'Frequency Set'
fsm_order_template_id
Many2one → fsm.template
help='This is the order template that will be recurring'
string='Order Template'
args: 'fsm.template'
max_orders
Integer
help='Maximium number of orders that will be created'
string='Maximum Orders'
name
Char
required=True
string='Name'
No public methods.