| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/19.0/date_range |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Rocío Vega |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module lets you define global date ranges that can be used to filter your values in tree views. It also provides a mixin model for developers that extends the model's search view so that date ranges can be search as any relational field. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_list |
date.range.list | date.range | list | New |
view_date_range_search |
date.range | search | New | |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_list |
date.range.type.list | date.range.type | list | New |
view_date_range_type_search |
date.range.type | search | New |
active
Boolean
compute='_compute_active'
help='The active field allows you to hide the date range without removing it.'
readonly=False
store=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
check_company=True
comodel_name='date.range.type'
index=True
ondelete='restrict'
required=True
string='Type'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
store=True
string='Company'
count
Integer
string='Number of ranges to generate'
date_end
Date
compute='_compute_date_end'
readonly=False
store=True
args: 'End date'
date_start
Date
compute='_compute_date_start'
readonly=False
required=True
store=True
args: 'Start date'
duration_count
Integer
compute='_compute_duration_count'
readonly=False
required=True
store=True
args: 'Duration'
name_expr
Text
compute='_compute_name_expr'
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
readonly=False
store=True
args: 'Range name expression'
name_prefix
Char
compute='_compute_name_prefix'
readonly=False
store=True
args: 'Range name prefix'
range_name_preview
Char
compute='_compute_range_name_preview'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
readonly=False
required=True
store=True
string='Type'
unit_of_time
Selection
compute='_compute_unit_of_time'
readonly=False
required=True
store=True
args: [(str(YEARLY), 'years'), (str(MONTHLY), 'months'), (str(WEEKLY), 'weeks'), (str(DAILY), 'days')]
action_apply(self, batch=False)
generate_names(self, vals)
onchange_count(self)
onchange_date_end(self)
onchange_name_expr(self)
date_range_search_id
Many2one → date.range
comodel_name='date.range'
compute='_compute_date_range_search_id'
search='_search_date_range_search_id'
string='Filter by period (technical field)'
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If set, date ranges of same type must not overlap.'
autogeneration_count
Integer
autogeneration_date_start
Date
help='Only applies when there are no date ranges of this type yet'
string='Autogeneration Start Date'
autogeneration_unit
Selection
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
date_ranges_exist
Boolean
compute='_compute_date_ranges_exist'
duration_count
Integer
name
Char
required=True
translate=True
name_expr
Text
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
args: 'Range name expression'
name_prefix
Char
range_name_preview
Char
compute='_compute_range_name_preview'
store=True
unit_of_time
Selection
autogenerate_ranges(self)
onchange_name_expr(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/18.0/date_range |
| VERSION | |
| VERSION | 5.0.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Weblate, OCA-git-bot, oca-ci, Carlos Roca, Bert Van Groenendael, Andrii Kompaniiets |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:16 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module lets you define global date ranges that can be used to filter your values in tree views. It also provides a mixin model for developers that extends the model's search view so that date ranges can be search as any relational field. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_list |
date.range.list | date.range | list | New |
view_date_range_search |
date.range | search | New | |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_list |
date.range.type.list | date.range.type | list | New |
view_date_range_type_search |
date.range.type | search | New |
active
Boolean
compute='_compute_active'
help='The active field allows you to hide the date range without removing it.'
readonly=False
store=True
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=True
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
check_company=True
comodel_name='date.range.type'
index=True
ondelete='restrict'
required=True
string='Type'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
store=True
string='Company'
count
Integer
string='Number of ranges to generate'
date_end
Date
compute='_compute_date_end'
readonly=False
store=True
args: 'End date'
date_start
Date
compute='_compute_date_start'
readonly=False
required=True
store=True
args: 'Start date'
duration_count
Integer
compute='_compute_duration_count'
readonly=False
required=True
store=True
args: 'Duration'
name_expr
Text
compute='_compute_name_expr'
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
readonly=False
store=True
args: 'Range name expression'
name_prefix
Char
compute='_compute_name_prefix'
readonly=False
store=True
args: 'Range name prefix'
range_name_preview
Char
compute='_compute_range_name_preview'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
readonly=False
required=True
store=True
string='Type'
unit_of_time
Selection
compute='_compute_unit_of_time'
readonly=False
required=True
store=True
args: [(str(YEARLY), 'years'), (str(MONTHLY), 'months'), (str(WEEKLY), 'weeks'), (str(DAILY), 'days')]
action_apply(self, batch=False)
generate_names(self, vals)
onchange_count(self)
onchange_date_end(self)
onchange_name_expr(self)
date_range_search_id
Many2one → date.range
comodel_name='date.range'
compute='_compute_date_range_search_id'
search='_search_date_range_search_id'
string='Filter by period (technical field)'
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If set, date ranges of same type must not overlap.'
autogeneration_count
Integer
autogeneration_date_start
Date
help='Only applies when there are no date ranges of this type yet'
string='Autogeneration Start Date'
autogeneration_unit
Selection
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
date_ranges_exist
Boolean
compute='_compute_date_ranges_exist'
duration_count
Integer
name
Char
required=True
translate=True
name_expr
Text
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
args: 'Range name expression'
name_prefix
Char
range_name_preview
Char
compute='_compute_range_name_preview'
store=True
unit_of_time
Selection
autogenerate_ranges(self)
onchange_name_expr(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/17.0/date_range |
| VERSION | |
| VERSION | 1.2.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | GitHub, Weblate, OCA-git-bot, oca-ci, David Ramia, DavidJForgeFlow, Henry Backman, sonhd91 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module lets you define global date ranges that can be used to filter your values in tree views. It also provides a mixin model for developers that extends the model's search view so that date ranges can be search as any relational field. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_search |
date.range | search | New | |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_search |
date.range.type | search | New | |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
compute='_compute_active'
help='The active field allows you to hide the date range without removing it.'
readonly=False
store=True
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
check_company=True
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
required=True
string='Type'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
store=True
string='Company'
count
Integer
string='Number of ranges to generate'
date_end
Date
compute='_compute_date_end'
readonly=False
args: 'End date'
date_start
Date
compute='_compute_date_start'
readonly=False
required=True
store=True
args: 'Start date'
duration_count
Integer
compute='_compute_duration_count'
readonly=False
required=True
store=True
args: 'Duration'
name_expr
Text
compute='_compute_name_expr'
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
readonly=False
store=True
args: 'Range name expression'
name_prefix
Char
compute='_compute_name_prefix'
readonly=False
store=True
args: 'Range name prefix'
range_name_preview
Char
compute='_compute_range_name_preview'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
readonly=False
required=True
store=True
string='Type'
unit_of_time
Selection
compute='_compute_unit_of_time'
readonly=False
required=True
store=True
args: [(str(YEARLY), 'years'), (str(MONTHLY), 'months'), (str(WEEKLY), 'weeks'), (str(DAILY), 'days')]
action_apply(self, batch=False)
generate_names(self, vals)
onchange_count(self)
onchange_date_end(self)
onchange_name_expr(self)
date_range_search_id
Many2one → date.range
comodel_name='date.range'
compute='_compute_date_range_search_id'
search='_search_date_range_search_id'
string='Filter by period (technical field)'
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If set, date ranges of same type must not overlap.'
autogeneration_count
Integer
autogeneration_date_start
Date
help='Only applies when there are no date ranges of this type yet'
string='Autogeneration Start Date'
autogeneration_unit
Selection
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
date_ranges_exist
Boolean
compute='_compute_date_ranges_exist'
duration_count
Integer
name
Char
required=True
translate=True
name_expr
Text
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
args: 'Range name expression'
name_prefix
Char
range_name_preview
Char
compute='_compute_range_name_preview'
store=True
unit_of_time
Selection
autogenerate_ranges(self)
onchange_name_expr(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/16.0/date_range |
| VERSION | |
| VERSION | 1.0.9 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, GitHub, Laurent Mignon (ACSONE), Enric Tobella, Hugo Santos, Weblate, OCA-git-bot, antonio, oca-ci, Benoit Aimont, Carlos Roca, bosd |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:53 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_search |
date.range | search | New | |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_search |
date.range.type | search | New | |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
check_company=True
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
required=True
string='Type'
type_name
Char
related='type_id.name'
store=True
string='Type Name'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
store=True
string='Company'
count
Integer
string='Number of ranges to generate'
date_end
Date
compute='_compute_date_end'
readonly=False
args: 'End date'
date_start
Date
compute='_compute_date_start'
readonly=False
required=True
store=True
args: 'Start date'
duration_count
Integer
compute='_compute_duration_count'
readonly=False
required=True
store=True
args: 'Duration'
name_expr
Text
compute='_compute_name_expr'
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
readonly=False
store=True
args: 'Range name expression'
name_prefix
Char
compute='_compute_name_prefix'
readonly=False
store=True
args: 'Range name prefix'
range_name_preview
Char
compute='_compute_range_name_preview'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
readonly=False
required=True
store=True
string='Type'
unit_of_time
Selection
compute='_compute_unit_of_time'
readonly=False
required=True
store=True
args: [(str(YEARLY), 'years'), (str(MONTHLY), 'months'), (str(WEEKLY), 'weeks'), (str(DAILY), 'days')]
action_apply(self, batch=False)
generate_names(self, vals)
onchange_count(self)
onchange_date_end(self)
onchange_name_expr(self)
date_range_search_id
Many2one → date.range
comodel_name='date.range'
compute='_compute_date_range_search_id'
search='_search_date_range_search_id'
string='Filter by period (technical field)'
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If set, date ranges of same type must not overlap.'
autogeneration_count
Integer
autogeneration_date_start
Date
help='Only applies when there are no date ranges of this type yet'
string='Autogeneration Start Date'
autogeneration_unit
Selection
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
date_ranges_exist
Boolean
compute='_compute_date_ranges_exist'
duration_count
Integer
name
Char
required=True
translate=True
name_expr
Text
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
args: 'Range name expression'
name_prefix
Char
range_name_preview
Char
compute='_compute_range_name_preview'
store=True
unit_of_time
Selection
autogenerate_ranges(self)
onchange_name_expr(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/15.0/date_range |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Adam Heinz, Carlos Roca, Vincent Hatakeyama, Joan Mateu Jordi |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
readonly=False
required=True
store=True
string='Type'
type_name
Char
related='type_id.name'
store=True
string='Type Name'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
store=True
string='Company'
count
Integer
string='Number of ranges to generate'
date_end
Date
compute='_compute_date_end'
readonly=False
args: 'End date'
date_start
Date
compute='_compute_date_start'
readonly=False
required=True
store=True
args: 'Start date'
duration_count
Integer
compute='_compute_duration_count'
readonly=False
required=True
store=True
args: 'Duration'
name_expr
Text
compute='_compute_name_expr'
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable, and also babel.dates.format_date method.'
readonly=False
store=True
args: 'Range name expression'
name_prefix
Char
compute='_compute_name_prefix'
readonly=False
store=True
args: 'Range name prefix'
range_name_preview
Char
compute='_compute_range_name_preview'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
readonly=False
required=True
store=True
string='Type'
unit_of_time
Selection
compute='_compute_unit_of_time'
readonly=False
required=True
store=True
args: [(str(YEARLY), 'years'), (str(MONTHLY), 'months'), (str(WEEKLY), 'weeks'), (str(DAILY), 'days')]
action_apply(self, batch=False)
generate_names(self, vals)
onchange_count(self)
onchange_date_end(self)
onchange_name_expr(self)
date_range_search_id
Many2one → date.range
comodel_name='date.range'
compute='_compute_date_range_search_id'
search='_search_date_range_search_id'
string='Filter by period (technical field)'
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
load_views(self, views, options=None)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If sets date range of same type must not overlap.'
autogeneration_count
Integer
autogeneration_date_start
Date
help='Only applies when there are no date ranges of this type yet'
string='Autogeneration Start Date'
autogeneration_unit
Selection
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
date_ranges_exist
Boolean
compute='_compute_date_ranges_exist'
duration_count
Integer
name
Char
required=True
translate=True
name_expr
Text
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable, and also babel.dates.format_date method.'
args: 'Range name expression'
name_prefix
Char
range_name_preview
Char
compute='_compute_range_name_preview'
store=True
unit_of_time
Selection
autogenerate_ranges(self)
onchange_name_expr(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/14.0/date_range |
| VERSION | |
| VERSION | 2.2.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Stefan Rijnhart, GitHub, Andrea, Enric Tobella, nans, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Pablo Fuentes, hparfr, Mihai Fekete, oca-ci, oca-git-bot, Dũng (Trần Đình), Abdellatif Benzbiria |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
Module name backend assets | ir.ui.view | qweb | Inherits web.assets_backend |
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
readonly=False
required=True
store=True
string='Type'
type_name
Char
related='type_id.name'
store=True
string='Type Name'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
store=True
string='Company'
count
Integer
string='Number of ranges to generate'
date_end
Date
compute='_compute_date_end'
readonly=False
store=True
args: 'End date'
date_start
Date
compute='_compute_date_start'
readonly=False
required=True
store=True
args: 'Start date'
duration_count
Integer
compute='_compute_duration_count'
readonly=False
required=True
store=True
args: 'Duration'
name_expr
Text
compute='_compute_name_expr'
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
readonly=False
store=True
args: 'Range name expression'
name_prefix
Char
compute='_compute_name_prefix'
readonly=False
store=True
args: 'Range name prefix'
range_name_preview
Char
compute='_compute_range_name_preview'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
readonly=False
required=True
store=True
string='Type'
unit_of_time
Selection
compute='_compute_unit_of_time'
readonly=False
required=True
store=True
args: [(str(YEARLY), 'years'), (str(MONTHLY), 'months'), (str(WEEKLY), 'weeks'), (str(DAILY), 'days')]
action_apply(self, batch=False)
generate_names(self, vals)
onchange_count(self)
onchange_date_end(self)
onchange_name_expr(self)
date_range_search_id
Many2one → date.range
comodel_name='date.range'
compute='_compute_date_range_search_id'
search='_search_date_range_search_id'
string='Filter by period (technical field)'
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
load_views(self, views, options=None)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If sets date range of same type must not overlap.'
autogeneration_count
Integer
autogeneration_date_start
Date
help='Only applies when there are no date ranges of this type yet'
string='Autogeneration Start Date'
autogeneration_unit
Selection
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
date_ranges_exist
Boolean
compute='_compute_date_ranges_exist'
duration_count
Integer
name
Char
required=True
translate=True
name_expr
Text
help='Evaluated expression. E.g. "\'FY%s\' % date_start.strftime(\'%Y%m%d\')"\nYou can use the Date types \'date_end\' and \'date_start\', as well as the \'index\' variable.'
args: 'Range name expression'
name_prefix
Char
range_name_preview
Char
compute='_compute_range_name_preview'
store=True
unit_of_time
Selection
autogenerate_ranges(self)
onchange_name_expr(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/13.0/date_range |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stefan Rijnhart, Pedro M. Baeza, Laurent Mignon (ACSONE), mreficent, nans, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:17 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
Module name backend assets | ir.ui.view | qweb | Inherits web.assets_backend |
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
readonly=False
required=True
store=True
string='Type'
type_name
Char
related='type_id.name'
store=True
string='Type Name'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
string='Company'
count
Integer
required=True
string='Number of ranges to generate'
date_start
Date
required=True
duration_count
Integer
required=True
args: 'Duration'
name_prefix
Char
required=True
args: 'Range name prefix'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
compute='_compute_type_id'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
readonly=False
required=True
store=True
string='Type'
unit_of_time
Selection
required=True
args: [(str(YEARLY), 'years'), (str(MONTHLY), 'months'), (str(WEEKLY), 'weeks'), (str(DAILY), 'days')]
action_apply(self)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If sets date range of same type must not overlap.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
name
Char
required=True
translate=True
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/12.0/date_range |
| VERSION | |
| VERSION | 2.1.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stefan Rijnhart, eLBati, Pedro M. Baeza, Sylvain LE GAL, Jairo Llopis, Andrea, nans, OCA Transbot, João Marques, oca-travis, Weblate, OCA-git-bot, OCA Git Bot, Héctor Villarreal Ortega |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:22 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
Module name backend assets | ir.ui.view | qweb | Inherits web.assets_backend |
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
required=True
string='Type'
type_name
Char
readonly=True
related='type_id.name'
store=True
string='Type Name'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
string='Company'
count
Integer
required=True
string='Number of ranges to generate'
date_start
Date
required=True
duration_count
Integer
required=True
args: 'Duration'
name_prefix
Char
required=True
args: 'Range name prefix'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
required=True
string='Type'
unit_of_time
Selection
required=True
args: [(YEARLY, 'years'), (MONTHLY, 'months'), (WEEKLY, 'weeks'), (DAILY, 'days')]
action_apply(self)
date_range_search_id
Many2one → date.range
comodel_name='date.range'
compute='_compute_date_range_search_id'
search='_search_date_range_search_id'
string='Filter by period (technical field)'
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
load_views(self, views, options=None)
active
Boolean
default=True
help='The active field allows you to hide the date range type without removing it.'
allow_overlap
Boolean
default=False
help='If sets date range of same type must not overlap.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
name
Char
required=True
translate=True
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-ux |
| GIT | |
| GIT | https://github.com/OCA/server-ux.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-ux/tree/11.0/date_range |
| VERSION | |
| VERSION | 2.0.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Ronald Portier, Pedro M. Baeza, Fekete Mihai, GitHub, Laurent Mignon (ACSONE), mreficent, Andrea, OCA Transbot, oca-travis, Weblate, OCA-git-bot, OCA Git Bot, Nikos Tsirintanis |
| WEBSITE | |
| WEBSITE | https://github.com/oca/server-ux |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:24:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
Module name backend assets | ir.ui.view | qweb | Inherits web.assets_backend |
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
parent_id
Many2one → date.range
comodel_name='date.range'
index=1
string='Parent'
parent_type_id
Many2one
readonly=True
related='type_id.parent_type_id'
store=True
type_id
Many2one → date.range.type
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
required=True
string='Type'
type_name
Char
readonly=True
related='type_id.name'
store=True
string='Type'
get_domain(self, field_name)
onchange_type_id(self)
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
string='Company'
count
Integer
required=True
string='Number of ranges to generate'
date_start
Date
required=True
strint='Start date'
duration_count
Integer
required=True
args: 'Duration'
name_prefix
Char
required=True
args: 'Range name prefix'
parent_id
Many2one → date.range
comodel_name='date.range'
index=1
string='Parent'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
required=True
string='Type'
unit_of_time
Selection
required=True
args: [(YEARLY, 'years'), (MONTHLY, 'months'), (WEEKLY, 'weeks'), (DAILY, 'days')]
action_apply(self)
onchange_type_id(self)
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
allow_overlap
Boolean
default=False
help='If sets date range of same type must not overlap.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
name
Char
required=True
translate=True
parent_type_id
Many2one → date.range.type
comodel_name='date.range.type'
index=1
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/10.0/date_range |
| VERSION | |
| VERSION | 3.0.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Pedro M. Baeza, GitHub, Laurent Mignon (ACSONE), Moisés López, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Antonio Esposito, OCA Git Bot |
| WEBSITE | |
| WEBSITE | https://odoo-community.org/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
Module name backend assets | ir.ui.view | qweb | Inherits web.assets_backend |
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
parent_id
Many2one → date.range
comodel_name='date.range'
index=1
string='Parent'
parent_type_id
Many2one
readonly=True
related='type_id.parent_type_id'
store=True
type_id
Many2one → date.range.type
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
index=1
ondelete='restrict'
required=True
string='Type'
type_name
Char
readonly=True
related='type_id.name'
store=True
string='Type'
get_domain(self, field_name)
onchange_type_id(self)
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
string='Company'
count
Integer
required=True
string='Number of ranges to generate'
date_start
Date
required=True
strint='Start date'
duration_count
Integer
required=True
args: 'Duration'
name_prefix
Char
required=True
args: 'Range name prefix'
parent_id
Many2one → date.range
comodel_name='date.range'
index=1
string='Parent'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='cascade'
required=True
string='Type'
unit_of_time
Selection
required=True
args: [(YEARLY, 'years'), (MONTHLY, 'months'), (WEEKLY, 'weeks'), (DAILY, 'days')]
action_apply(self)
onchange_type_id(self)
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
allow_overlap
Boolean
default=False
help='If sets date range of same type must not overlap.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
index=1
string='Company'
date_range_ids
One2many → date.range
string='Ranges'
args: 'date.range', 'type_id'
name
Char
required=True
translate=True
parent_type_id
Many2one → date.range.type
comodel_name='date.range.type'
index=1
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/9.0/date_range |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Joël Grand-Guillaume, Pedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate |
| WEBSITE | |
| WEBSITE | https://odoo-community.org/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:22 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
Module name backend assets | ir.ui.view | qweb | Inherits web.assets_backend |
date_range_generator_view_form |
date.range.generator.form | date.range.generator | form | New |
view_date_range_form_view |
date.range.form | date.range | form | New |
view_date_range_tree |
date.range.tree | date.range | tree | New |
view_date_range_type_form_view |
date.range.type.form | date.range.type | form | New |
view_date_range_type_tree |
date.range.type.tree | date.range.type | tree | New |
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
select=1
string='Company'
date_end
Date
required=True
string='End date'
date_start
Date
required=True
string='Start date'
name
Char
required=True
translate=True
type_id
Many2one → date.range.type
comodel_name='date.range.type'
required=True
select=1
string='Type'
type_name
Char
readonly=True
related='type_id.name'
store=True
string='Type'
get_domain(self, field_name)
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
string='Company'
count
Integer
required=True
string='Number of ranges to generate'
date_start
Date
required=True
strint='Start date'
duration_count
Integer
required=True
args: 'Duration'
name_prefix
Char
required=True
args: 'Range name prefix'
type_id
Many2one → date.range.type
comodel_name='date.range.type'
ondelete='cascade'
required=True
string='Type'
unit_of_time
Selection
required=True
args: [(YEARLY, 'years'), (MONTHLY, 'months'), (WEEKLY, 'weeks'), (DAILY, 'days')]
action_apply(self)
active
Boolean
default=True
help='The active field allows you to hide the date range without removing it.'
allow_overlap
Boolean
default=False
help='If sets date range of same type must not overlap.'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company
select=1
string='Company'
name
Char
required=True
translate=True
No public methods.