| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-abbey |
| GIT | |
| GIT | https://github.com/OCA/vertical-abbey.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-abbey/tree/18.0/stay |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Lodging |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-abbey |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_timeline odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module manages stays ; it handles lunches, dinners and bed nights. It allows the booking of rooms and dormitories with capacity check. It has been initially developped by the [Barroux Abbey](https://www.barroux.org/) to manage the stays of the guests at the abbey and has been adopted by several other French abbeys. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stayjournalmeal |
report_stayjournalmeal | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
stay.report_stayjournalmeal_document |
stay.report_stayjournalmeal_document | ir.ui.view | qweb | New |
stay_building_form |
stay.building | form | New | |
stay_building_search |
stay.building | search | New | |
stay_building_tree |
stay.building | list | New | |
stay_calendar |
stay.calendar | stay.stay | calendar | New |
stay_date_label_calendar |
stay.date.label.calendar | stay.date.label | calendar | New |
stay_date_label_form |
stay.date.label.form | stay.date.label | form | New |
stay_date_label_search |
stay.date.label.search | stay.date.label | search | New |
stay_date_label_tree |
stay.date.label.list | stay.date.label | list | New |
stay_fire_print_form |
stay_fire_print.form | stay.fire.print | form | New |
stay_form |
stay.form | stay.stay | form | New |
stay_graph |
stay.graph | stay.stay | graph | New |
stay_group_form |
stay.group.form | stay.group | form | New |
stay_group_search |
stay.group.search | stay.group | search | New |
stay_group_tree |
stay.group.list | stay.group | list | New |
stay_journal_print_form |
stay_journal_print.form | stay.journal.print | form | New |
stay_line_form |
stay.line.form | stay.line | form | New |
stay_line_graph |
stay.line.graph | stay.line | graph | New |
stay_line_mass_update_form |
stay.line.mass.update | form | New | |
stay_line_pivot |
stay.line.pivot | stay.line | pivot | New |
stay_line_reset |
stay.line.reset | form | New | |
stay_line_search |
stay.line.search | stay.line | search | New |
stay_line_tree |
stay.line.list | stay.line | list | New |
stay_multi_duplicate_form |
stay.multi.duplicate | form | New | |
stay_pivot |
stay.graph | stay.stay | pivot | New |
stay_refectory_form |
stay.refectory.form | stay.refectory | form | New |
stay_refectory_search |
stay.refectory.search | stay.refectory | search | New |
stay_refectory_tree |
stay.refectory.list | stay.refectory | list | New |
stay_room_assign_calendar |
stay.room.assign | calendar | New | |
stay_room_assign_detailed_form |
stay.room.assign | form | New | |
stay_room_assign_form |
stay.room.assign | form | New | |
stay_room_assign_pivot |
stay.room.assign | pivot | New | |
stay_room_assign_search |
stay.room.assign.search | stay.room.assign | search | New |
stay_room_assign_timeline |
stay.room.assign.timeline | stay.room.assign | timeline | New |
stay_room_assign_tree |
stay.room.assign | list | New | |
stay_room_form |
stay.room.form | stay.room | form | New |
stay_room_mass_assign_form |
stay.room.mass.assign | form | New | |
stay_room_search |
stay.room.search | stay.room | search | New |
stay_room_to_clean_tree |
stay.room.list | stay.room | list | New |
stay_room_tree |
stay.room.list | stay.room | list | New |
stay_search |
stay.search | stay.stay | search | New |
stay_stay_xlsx_form |
stay.stay.xlsx.form | stay.stay.xlsx | form | New |
stay_tag_form |
stay.tag | form | New | |
stay_tag_search |
stay.tag | search | New | |
stay_tag_tree |
stay.tag | list | New | |
stay_toclean_print_form |
stay_toclean_print.form | stay.toclean.print | form | New |
stay_tree |
stay.list | stay.stay | list | New |
stay_tree_reverse_order |
stay.list.reverse.order | stay.stay | list | New |
stay_tree_with_kpis |
stay.list | stay.stay | list | New |
view_partner_form |
stay.button.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
view_users_form |
donation.res.users.form | res.users | group | Inherits base.view_users_form |
view_users_form_simple_modif |
donation.preferences.res.users.form | res.users | field | Inherits base.view_users_form_simple_modif |
default_refectory_id
Many2one → stay.refectory
check_company=True
ondelete='restrict'
string='Default Refectory'
args: 'stay.refectory'
stay_notify_user_ids
Many2many → res.users
column1='res_company_id'
column2='res_users_id'
relation='stay_notify_company_user_rel'
string='Users Notified by E-mail for Stays without Group'
args: 'res.users'
No public methods.
group_stay_breakfast
Boolean
implied_group='stay.group_stay_breakfast'
string='Manage Breakfast'
group_stay_group
Boolean
implied_group='stay.group_stay_group'
string='Manage Stay Groups'
group_stay_picnic
Boolean
implied_group='stay.group_stay_picnic'
string='Manage Picnic'
stay_default_refectory_id
Many2one
readonly=False
related='company_id.default_refectory_id'
stay_notify_user_ids
Many2many
readonly=False
related='company_id.stay_notify_user_ids'
stay_room_transition
Selection
config_parameter='stay.room_transition'
string='Room Transition'
args: [('one_empty_period', 'One Empty Period'), ('immediate', 'Immediate'), ('night', 'Night')]
No public methods.
stay_count
Integer
compute='_compute_stay_count'
compute_sudo=True
string='# of Stays'
stay_ids
One2many → stay.stay
string='Stays'
args: 'stay.stay', 'partner_id'
No public methods.
context_stay_group_id
Many2one → stay.group
No public methods.
active
Boolean
default=True
name
Char
required=True
room_ids
One2many → stay.room
string='Rooms'
args: 'stay.room', 'building_id'
sequence
Integer
No public methods.
date
Date
index=True
required=True
name
Char
string='Label'
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
run(self)
company_id
Many2one → res.company
default=<expr>
index=True
ondelete='cascade'
required=True
string='Company'
args: 'res.company'
default_no_meals
Boolean
string='No Meals by Default'
default_refectory_id
Many2one → stay.refectory
check_company=True
ondelete='restrict'
string='Default Refectory'
args: 'stay.refectory'
name
Char
required=True
string='Group Name'
notify_user_ids
Many2many → res.users
string='Users Notified by E-mail'
args: 'res.users'
room_ids
One2many → stay.room
string='Rooms'
args: 'stay.room', 'group_id'
sequence
Integer
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
date
Date
default=_default_date
required=True
date_label
Char
compute='_compute_date_label'
report_type
Selection
default='general'
required=True
args: [('general', 'General'), ('meal', 'Meals'), ('arrival', 'Arrivals')]
get_report_by_refectory(self)
print_journal(self)
print_journal_arrival(self)
print_journal_general(self)
print_journal_meal(self)
report_arrival_data(self)
report_date_formatted(self)
report_edit_datetime(self)
report_general_data(self)
bed_night_qty
Integer
string='Bed Nights'
breakfast_qty
Integer
string='Breakfast'
company_id
Many2one → res.company
default=<expr>
index=True
required=True
args: 'res.company'
date
Date
default=fields.Date.context_today
index=True
required=True
dinner_qty
Integer
string='Dinners'
group_id
Many2one → stay.group
compute='_compute_group_id'
index=True
readonly=False
store=True
args: 'stay.group'
lunch_qty
Integer
string='Lunches'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
string='Guest'
args: 'res.partner'
partner_name
Text
compute='_compute_partner_name'
precompute=True
readonly=False
required=True
store=True
string='Guest Names'
picnic_lunch_qty
Integer
string='Picnic'
refectory_id
Many2one → stay.refectory
check_company=True
default=<expr>
args: 'stay.refectory'
rooms_display_name
Char
related='stay_id.rooms_display_name'
store=True
stay_id
Many2one → stay.stay
check_company=True
ondelete='cascade'
args: 'stay.stay'
No public methods.
convert_lunch_to_picnic
Boolean
string='Convert Lunches to Picnics'
end_date
Date
required=True
no_bed_night
Boolean
string='No Bed Nights'
no_breakfast
Boolean
string='No Breakfasts'
no_dinner
Boolean
string='No Dinners'
no_lunch
Boolean
string='No Lunches'
refectory_id
Many2one → stay.refectory
string='New Refectory'
args: 'stay.refectory'
start_date
Date
required=True
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
apply(self)
default_get(self, fields_list)
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
default_get(self, fields_list)
reset_lines(self)
create_state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed')]
end_date
Date
required=True
frequency
Selection
default='weekly'
required=True
args: [('weekly', 'Weekly')]
keep_assignments
Boolean
default=True
string='Keep assignments?'
keep_notes
Boolean
string='Keep Notes?'
start_date
Date
default=fields.Date.context_today
required=True
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
default_get(self, fields_list)
run(self)
active
Boolean
default=True
capacity
Integer
code
Char
size=10
company_id
Many2one → res.company
default=<expr>
index=True
ondelete='cascade'
required=True
args: 'res.company'
name
Char
required=True
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
allow_simultaneous
Boolean
compute='_compute_allow_simultaneous'
help='This option applies for rooms where bed quantity > 1. You should enable this option if you allow to have several stays at the same time in the room.'
precompute=True
readonly=False
store=True
bed_qty
Integer
default=1
string='Number of beds'
building_id
Many2one → stay.building
index=True
ondelete='restrict'
args: 'stay.building'
code
Char
copy=False
size=10
company_id
Many2one → res.company
default=<expr>
index=True
ondelete='cascade'
required=True
args: 'res.company'
fire_report_exclude
Boolean
string='Exclude from Fire Report'
fire_report_sequence
Integer
string='Order for Fire Report'
group_id
Many2one → stay.group
check_company=True
domain="[('company_id', '=', company_id)]"
index=True
args: 'stay.group'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
name
Char
copy=False
required=True
next_stay_arrival_date
Date
compute='_compute_next_stay'
next_stay_arrival_time
Selection
compute='_compute_next_stay'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
next_stay_id
Many2one → stay.stay
compute='_compute_next_stay'
args: 'stay.stay'
next_stay_partner_name
Char
compute='_compute_next_stay'
notes
Text
sequence
Integer
default=10
to_clean
Char
help='When the field has a value, it means the room must be cleaned (when a stay is terminated, this field is auto-set with the stay description). When the room is cleaned, the field is emptied.'
action_archive(self)
mark_as_cleaned(self)
active
Boolean
related='room_id.active'
store=True
arrival_date
Date
readonly=False
related='stay_id.arrival_date'
store=True
arrival_datetime
Datetime
related='stay_id.arrival_datetime'
store=True
arrival_note
Char
readonly=False
related='stay_id.arrival_note'
store=True
arrival_time
Selection
readonly=False
related='stay_id.arrival_time'
store=True
company_id
Many2one
index=True
related='stay_id.company_id'
store=True
conflict_room_ids
Many2many → stay.room
compute='_compute_conflict_room_ids'
string='Conflict Rooms'
args: 'stay.room'
construction
Boolean
related='stay_id.construction'
store=True
departure_date
Date
readonly=False
related='stay_id.departure_date'
store=True
departure_datetime
Datetime
related='stay_id.departure_datetime'
store=True
departure_note
Char
readonly=False
related='stay_id.departure_note'
store=True
departure_time
Selection
readonly=False
related='stay_id.departure_time'
store=True
group_id
Many2one
index=True
related='room_id.group_id'
store=True
guest_qty
Integer
required=True
string='Guest Quantity'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
notes
Text
readonly=False
related='stay_id.notes'
store=True
partner_id
Many2one
related='stay_id.partner_id'
store=True
partner_name
Text
related='stay_id.partner_name'
store=True
partner_name_room
Char
string='Guest (optional)'
room_id
Many2one → stay.room
check_company=True
domain="[('id', 'not in', conflict_room_ids), ('company_id', '=', company_id), ('group_id', 'in', (False, stay_group_id))]"
index=True
ondelete='restrict'
required=True
args: 'stay.room'
state
Selection
related='stay_id.state'
store=True
stay_group_id
Many2one
related='stay_id.group_id'
store=True
string='Stay Group'
stay_id
Many2one → stay.stay
index=True
ondelete='cascade'
args: 'stay.stay'
tag_ids
Many2many
readonly=False
related='stay_id.tag_ids'
room_id_change(self)
show_stay(self)
assign_type
Selection
default='single'
required=True
string='Assignation'
args: [('single', 'One Guest per Room'), ('full', 'Maximum Capacity')]
company_id
Many2one
related='stay_id.company_id'
conflict_room_ids
Many2many → stay.room
compute='_compute_conflict_room_ids'
string='Conflict Rooms'
args: 'stay.room'
group_id
Many2one
related='stay_id.group_id'
room_ids
Many2many → stay.room
domain="[('id', 'not in', conflict_room_ids), ('company_id', '=', company_id), ('group_id', 'in', (False, group_id))]"
required=True
string='Rooms'
args: 'stay.room'
stay_id
Many2one → stay.stay
readonly=True
args: 'stay.stay'
default_get(self, fields_list)
run(self)
arrival_date
Date
index=True
required=True
tracking=True
arrival_datetime
Datetime
compute='_compute_arrival_datetime'
inverse='_inverse_arrival_datetime'
store=True
string='Arrival Date and Time'
arrival_note
Char
arrival_time
Selection
required=True
tracking=True
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
assign_status
Selection
compute='_compute_room_assignment'
store=True
args: [('none', 'Waiting Assignation'), ('no_night', 'No Nights'), ('partial', 'Partial'), ('assigned', 'Assigned'), ('over-assigned', 'Over Assigned'), ('error', 'Error')]
clash_time_next_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Next stay which arrives before the departure in the same room(s)'
string='Next Stay which arrives before'
args: 'stay.stay'
clash_time_preceding_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Preceding stay which leaves later that the arrival in the same room(s)'
string='Preceding Stay which leaves later'
args: 'stay.stay'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
args: 'res.company'
construction
Boolean
departure_date
Date
index=True
required=True
tracking=True
departure_datetime
Datetime
compute='_compute_departure_datetime'
inverse='_inverse_departure_datetime'
store=True
string='Departure Date and Time'
departure_note
Char
departure_time
Selection
required=True
tracking=True
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
group_id
Many2one → stay.group
check_company=True
copy=False
default=<expr>
domain="[('company_id', '=', company_id)]"
index=True
ondelete='restrict'
tracking=True
args: 'stay.group'
guest_qty
Integer
default=1
string='Guest Quantity'
tracking=True
guest_qty_to_assign
Integer
compute='_compute_room_assignment'
store=True
line_ids
One2many → stay.line
string='Stay Lines'
args: 'stay.line', 'stay_id'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
name
Char
copy=False
default=<expr>
string='Stay Number'
no_meals
Boolean
compute='_compute_refectory_id'
help='The stay lines generated from this stay will not have breakfast/lunch/dinner by default.'
precompute=True
readonly=False
store=True
tracking=True
notes
Text
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
ondelete='restrict'
string='Guest'
args: 'res.partner'
partner_name
Text
compute='_compute_partner_name'
precompute=True
readonly=False
required=True
store=True
string='Guest Names'
tracking=True
refectory_id
Many2one → stay.refectory
check_company=True
compute='_compute_refectory_id'
precompute=True
readonly=False
store=True
args: 'stay.refectory'
room_assign_ids
One2many → stay.room.assign
copy=True
string='Room Assignments'
args: 'stay.room.assign', 'stay_id'
rooms_display_name
Char
compute='_compute_room_assignment'
store=True
string='Rooms'
same_time_next_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Next stay which arrives on the same time slot in the same room(s)'
string='Next Stay which arrives on same time slot'
args: 'stay.stay'
same_time_preceding_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Preceding stay which leaves on the same time slot in the same room(s)'
string='Preceding Stay which leaves on same time slot'
args: 'stay.stay'
state
Selection
copy=False
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('current', 'Current'), ('done', 'Finished'), ('cancel', 'Cancelled')]
tag_ids
Many2many → stay.tag
string='Tags'
args: 'stay.tag'
arrival_date_change(self)
cancel(self)
cancel2draft(self)
create(self, vals_list)
default_get(self, fields_list)
draft2confirm(self)
get_dashboard_data(self)
guest_has_left(self)
stay_notify_selection_button(self)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
required=True
args: 'res.company'
end_date
Date
required=True
file_xlsx
Binary
readonly=True
filename
Char
readonly=True
group_ids
Many2many → stay.group
domain="[('company_id', '=', company_id)]"
string='Groups'
args: 'stay.group'
start_date
Date
required=True
default_get(self, fields_list)
prepare_tab(self)
run(self)
active
Boolean
default=True
color
Integer
default=<expr>
name
Char
required=True
sequence
Integer
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
report_toclean_data(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-abbey |
| GIT | |
| GIT | https://github.com/OCA/vertical-abbey.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-abbey/tree/16.0/stay |
| VERSION | |
| VERSION | 2.1.0 |
| CATEGORY | |
| CATEGORY | Lodging |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-abbey |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_timeline odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stayjournalprint |
report_stayjournalprint | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
stay.report_stayjournalprint_document |
stay.report_stayjournalprint_document | ir.ui.view | qweb | New |
stay_building_form |
stay.building | form | New | |
stay_building_search |
stay.building | search | New | |
stay_building_tree |
stay.building | tree | New | |
stay_calendar |
stay.calendar | stay.stay | calendar | New |
stay_date_label_calendar |
stay.date.label.calendar | stay.date.label | calendar | New |
stay_date_label_form |
stay.date.label.form | stay.date.label | form | New |
stay_date_label_search |
stay.date.label.search | stay.date.label | search | New |
stay_date_label_tree |
stay.date.label.tree | stay.date.label | tree | New |
stay_fire_print_form |
stay_fire_print.form | stay.fire.print | form | New |
stay_form |
stay.form | stay.stay | form | New |
stay_graph |
stay.graph | stay.stay | graph | New |
stay_group_form |
stay.group.form | stay.group | form | New |
stay_group_search |
stay.group.search | stay.group | search | New |
stay_group_tree |
stay.group.tree | stay.group | tree | New |
stay_journal_print_form |
stay_journal_print.form | stay.journal.print | form | New |
stay_line_form |
stay.line.form | stay.line | form | New |
stay_line_graph |
stay.line.graph | stay.line | graph | New |
stay_line_mass_update_form |
stay.line.mass.update | form | New | |
stay_line_pivot |
stay.line.pivot | stay.line | pivot | New |
stay_line_reset |
stay.line.reset | form | New | |
stay_line_search |
stay.line.search | stay.line | search | New |
stay_line_tree |
stay.line.tree | stay.line | tree | New |
stay_multi_duplicate_form |
stay.multi.duplicate | form | New | |
stay_pivot |
stay.graph | stay.stay | pivot | New |
stay_refectory_form |
stay.refectory.form | stay.refectory | form | New |
stay_refectory_search |
stay.refectory.search | stay.refectory | search | New |
stay_refectory_tree |
stay.refectory.tree | stay.refectory | tree | New |
stay_room_assign_calendar |
stay.room.assign | calendar | New | |
stay_room_assign_detailed_form |
stay.room.assign | form | New | |
stay_room_assign_form |
stay.room.assign | form | New | |
stay_room_assign_pivot |
stay.room.assign | pivot | New | |
stay_room_assign_search |
stay.room.assign.search | stay.room.assign | search | New |
stay_room_assign_timeline |
stay.room.assign.timeline | stay.room.assign | timeline | New |
stay_room_assign_tree |
stay.room.assign | tree | New | |
stay_room_form |
stay.room.form | stay.room | form | New |
stay_room_mass_assign_form |
stay.room.mass.assign | form | New | |
stay_room_search |
stay.room.search | stay.room | search | New |
stay_room_to_clean_tree |
stay.room.tree | stay.room | tree | New |
stay_room_tree |
stay.room.tree | stay.room | tree | New |
stay_search |
stay.search | stay.stay | search | New |
stay_stay_xlsx_form |
stay.stay.xlsx.form | stay.stay.xlsx | form | New |
stay_tag_form |
stay.tag | form | New | |
stay_tag_search |
stay.tag | search | New | |
stay_tag_tree |
stay.tag | tree | New | |
stay_toclean_print_form |
stay_toclean_print.form | stay.toclean.print | form | New |
stay_tree |
stay.tree | stay.stay | tree | New |
stay_tree_reverse_order |
stay.tree.reverse.order | stay.stay | tree | New |
view_partner_form |
stay.button.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
view_users_form |
donation.res.users.form | res.users | group | Inherits base.view_users_form |
view_users_form_simple_modif |
donation.preferences.res.users.form | res.users | field | Inherits base.view_users_form_simple_modif |
default_refectory_id
Many2one → stay.refectory
check_company=True
ondelete='restrict'
string='Default Refectory'
args: 'stay.refectory'
stay_notify_user_ids
Many2many → res.users
column1='res_company_id'
column2='res_users_id'
relation='stay_notify_company_user_rel'
string='Users Notified by E-mail for Stays without Group'
args: 'res.users'
No public methods.
group_stay_breakfast
Boolean
implied_group='stay.group_stay_breakfast'
string='Manage Breakfast'
stay_default_refectory_id
Many2one
readonly=False
related='company_id.default_refectory_id'
stay_notify_user_ids
Many2many
readonly=False
related='company_id.stay_notify_user_ids'
stay_room_transition
Selection
config_parameter='stay.room_transition'
string='Room Transition'
args: [('one_empty_period', 'One Empty Period'), ('immediate', 'Immediate'), ('night', 'Night')]
No public methods.
stay_count
Integer
compute='_compute_stay_count'
compute_sudo=True
readonly=True
string='# of Stays'
stay_ids
One2many → stay.stay
string='Stays'
args: 'stay.stay', 'partner_id'
No public methods.
context_stay_group_id
Many2one → stay.group
No public methods.
active
Boolean
default=True
name
Char
required=True
room_ids
One2many → stay.room
string='Rooms'
args: 'stay.room', 'building_id'
sequence
Integer
No public methods.
date
Date
index=True
required=True
name
Char
string='Label'
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
run(self)
company_id
Many2one → res.company
default=<expr>
index=True
ondelete='cascade'
required=True
string='Company'
args: 'res.company'
default_no_meals
Boolean
string='No Meals by Default'
default_refectory_id
Many2one → stay.refectory
check_company=True
ondelete='restrict'
string='Default Refectory'
args: 'stay.refectory'
name
Char
required=True
string='Group Name'
notify_user_ids
Many2many → res.users
string='Users Notified by E-mail'
args: 'res.users'
room_ids
One2many → stay.room
string='Rooms'
args: 'stay.room', 'group_id'
sequence
Integer
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
date
Date
default=_default_date
required=True
date_label
Char
compute='_compute_date_label'
report_type
Selection
default='general'
required=True
args: [('general', 'General'), ('meal', 'Meals'), ('arrival', 'Arrivals')]
get_report_by_refectory(self)
print_journal(self)
print_journal_arrival(self)
print_journal_general(self)
print_journal_meal(self)
report_arrival_data(self)
report_date_formatted(self)
report_edit_datetime(self)
report_general_data(self)
bed_night_qty
Integer
string='Bed Nights'
breakfast_qty
Integer
string='Breakfast'
company_id
Many2one → res.company
default=<expr>
index=True
required=True
args: 'res.company'
date
Date
default=fields.Date.context_today
index=True
required=True
dinner_qty
Integer
string='Dinners'
group_id
Many2one → stay.group
compute='_compute_group_id'
index=True
readonly=False
store=True
args: 'stay.group'
lunch_qty
Integer
string='Lunches'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
string='Guest'
args: 'res.partner'
partner_name
Text
compute='_compute_partner_name'
precompute=True
readonly=False
required=True
store=True
string='Guest Names'
refectory_id
Many2one → stay.refectory
check_company=True
default=<expr>
args: 'stay.refectory'
rooms_display_name
Char
related='stay_id.rooms_display_name'
store=True
stay_id
Many2one → stay.stay
check_company=True
ondelete='cascade'
args: 'stay.stay'
No public methods.
end_date
Date
required=True
no_bed_night
Boolean
string='No Bed Nights'
no_breakfast
Boolean
string='No Breakfasts'
no_dinner
Boolean
string='No Dinners'
no_lunch
Boolean
string='No Lunches'
refectory_id
Many2one → stay.refectory
string='New Refectory'
args: 'stay.refectory'
start_date
Date
required=True
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
apply(self)
default_get(self, fields_list)
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
default_get(self, fields_list)
reset_lines(self)
create_state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed')]
end_date
Date
required=True
frequency
Selection
default='weekly'
required=True
args: [('weekly', 'Weekly')]
keep_assignments
Boolean
default=True
string='Keep assignments?'
keep_notes
Boolean
string='Keep Notes?'
start_date
Date
default=fields.Date.context_today
required=True
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
default_get(self, fields_list)
run(self)
active
Boolean
default=True
capacity
Integer
code
Char
size=10
company_id
Many2one → res.company
default=<expr>
index=True
ondelete='cascade'
required=True
args: 'res.company'
name
Char
required=True
sequence
Integer
default=10
name_get(self)
active
Boolean
default=True
allow_simultaneous
Boolean
compute='_compute_allow_simultaneous'
help='This option applies for rooms where bed quantity > 1. You should enable this option if you allow to have several stays at the same time in the room.'
precompute=True
readonly=False
store=True
bed_qty
Integer
default=1
string='Number of beds'
building_id
Many2one → stay.building
index=True
ondelete='restrict'
args: 'stay.building'
code
Char
copy=False
size=10
company_id
Many2one → res.company
default=<expr>
index=True
ondelete='cascade'
required=True
args: 'res.company'
fire_report_exclude
Boolean
string='Exclude from Fire Report'
fire_report_sequence
Integer
string='Order for Fire Report'
group_id
Many2one → stay.group
check_company=True
domain="[('company_id', '=', company_id)]"
index=True
args: 'stay.group'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
name
Char
copy=False
required=True
next_stay_arrival_date
Date
compute='_compute_next_stay'
next_stay_arrival_time
Selection
compute='_compute_next_stay'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
next_stay_id
Many2one → stay.stay
compute='_compute_next_stay'
args: 'stay.stay'
next_stay_partner_name
Char
compute='_compute_next_stay'
notes
Text
sequence
Integer
default=10
to_clean
Char
help='When the field has a value, it means the room must be cleaned (when a stay is terminated, this field is auto-set with the stay description). When the room is cleaned, the field is emptied.'
action_archive(self)
mark_as_cleaned(self)
name_get(self)
active
Boolean
related='room_id.active'
store=True
arrival_date
Date
readonly=False
related='stay_id.arrival_date'
store=True
arrival_datetime
Datetime
related='stay_id.arrival_datetime'
store=True
arrival_note
Char
readonly=False
related='stay_id.arrival_note'
store=True
arrival_time
Selection
readonly=False
related='stay_id.arrival_time'
store=True
company_id
Many2one
index=True
related='stay_id.company_id'
store=True
conflict_room_ids
Many2many → stay.room
compute='_compute_conflict_room_ids'
string='Conflict Rooms'
args: 'stay.room'
construction
Boolean
related='stay_id.construction'
store=True
departure_date
Date
readonly=False
related='stay_id.departure_date'
store=True
departure_datetime
Datetime
related='stay_id.departure_datetime'
store=True
departure_note
Char
readonly=False
related='stay_id.departure_note'
store=True
departure_time
Selection
readonly=False
related='stay_id.departure_time'
store=True
group_id
Many2one
index=True
related='room_id.group_id'
store=True
guest_qty
Integer
required=True
string='Guest Quantity'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
notes
Text
readonly=False
related='stay_id.notes'
store=True
partner_id
Many2one
related='stay_id.partner_id'
store=True
partner_name
Text
related='stay_id.partner_name'
store=True
room_id
Many2one → stay.room
check_company=True
domain="[('id', 'not in', conflict_room_ids), ('company_id', '=', company_id), ('group_id', 'in', (False, stay_group_id))]"
index=True
ondelete='restrict'
required=True
args: 'stay.room'
state
Selection
related='stay_id.state'
store=True
stay_group_id
Many2one
related='stay_id.group_id'
store=True
string='Stay Group'
stay_id
Many2one → stay.stay
index=True
ondelete='cascade'
args: 'stay.stay'
tag_ids
Many2many
readonly=False
related='stay_id.tag_ids'
name_get(self)
room_id_change(self)
show_stay(self)
assign_type
Selection
default='single'
required=True
string='Assignation'
args: [('single', 'One Guest per Room'), ('full', 'Maximum Capacity')]
company_id
Many2one
related='stay_id.company_id'
conflict_room_ids
Many2many → stay.room
compute='_compute_conflict_room_ids'
string='Conflict Rooms'
args: 'stay.room'
group_id
Many2one
related='stay_id.group_id'
room_ids
Many2many → stay.room
domain="[('id', 'not in', conflict_room_ids), ('company_id', '=', company_id), ('group_id', 'in', (False, group_id))]"
required=True
string='Rooms'
args: 'stay.room'
stay_id
Many2one → stay.stay
readonly=True
args: 'stay.stay'
default_get(self, fields_list)
run(self)
arrival_date
Date
index=True
required=True
tracking=True
arrival_datetime
Datetime
compute='_compute_arrival_datetime'
inverse='_inverse_arrival_datetime'
store=True
string='Arrival Date and Time'
arrival_note
Char
arrival_time
Selection
required=True
tracking=True
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
assign_status
Selection
compute='_compute_room_assignment'
store=True
args: [('none', 'Waiting Assignation'), ('no_night', 'No Nights'), ('partial', 'Partial'), ('assigned', 'Assigned'), ('over-assigned', 'Over Assigned'), ('error', 'Error')]
clash_time_next_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Next stay which arrives before the departure in the same room(s)'
string='Next Stay which arrives before'
args: 'stay.stay'
clash_time_preceding_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Preceding stay which leaves later that the arrival in the same room(s)'
string='Preceding Stay which leaves later'
args: 'stay.stay'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
args: 'res.company'
construction
Boolean
departure_date
Date
index=True
required=True
tracking=True
departure_datetime
Datetime
compute='_compute_departure_datetime'
inverse='_inverse_departure_datetime'
store=True
string='Departure Date and Time'
departure_note
Char
departure_time
Selection
required=True
tracking=True
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
group_id
Many2one → stay.group
check_company=True
copy=False
default=<expr>
domain="[('company_id', '=', company_id)]"
index=True
ondelete='restrict'
tracking=True
args: 'stay.group'
guest_qty
Integer
default=1
string='Guest Quantity'
tracking=True
guest_qty_to_assign
Integer
compute='_compute_room_assignment'
store=True
line_ids
One2many → stay.line
states={'draft': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Stay Lines'
args: 'stay.line', 'stay_id'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
name
Char
copy=False
default=<expr>
string='Stay Number'
no_meals
Boolean
compute='_compute_refectory_id'
help='The stay lines generated from this stay will not have breakfast/lunch/dinner by default.'
precompute=True
readonly=False
store=True
tracking=True
notes
Text
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
ondelete='restrict'
string='Guest'
args: 'res.partner'
partner_name
Text
compute='_compute_partner_name'
precompute=True
readonly=False
required=True
store=True
string='Guest Names'
tracking=True
refectory_id
Many2one → stay.refectory
check_company=True
compute='_compute_refectory_id'
precompute=True
readonly=False
store=True
args: 'stay.refectory'
room_assign_ids
One2many → stay.room.assign
copy=True
states={'cancel': [('readonly', True)]}
string='Room Assignments'
args: 'stay.room.assign', 'stay_id'
rooms_display_name
Char
compute='_compute_room_assignment'
store=True
string='Rooms'
same_time_next_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Next stay which arrives on the same time slot in the same room(s)'
string='Next Stay which arrives on same time slot'
args: 'stay.stay'
same_time_preceding_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Preceding stay which leaves on the same time slot in the same room(s)'
string='Preceding Stay which leaves on same time slot'
args: 'stay.stay'
state
Selection
copy=False
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('current', 'Current'), ('done', 'Finished'), ('cancel', 'Cancelled')]
tag_ids
Many2many → stay.tag
string='Tags'
args: 'stay.tag'
arrival_date_change(self)
cancel(self)
cancel2draft(self)
create(self, vals_list)
default_get(self, fields_list)
draft2confirm(self)
guest_has_left(self)
name_get(self)
stay_notify_selection_button(self)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
required=True
args: 'res.company'
end_date
Date
required=True
file_xlsx
Binary
readonly=True
filename
Char
readonly=True
group_ids
Many2many → stay.group
domain="[('company_id', '=', company_id)]"
string='Groups'
args: 'stay.group'
start_date
Date
required=True
default_get(self, fields_list)
prepare_tab(self)
run(self)
active
Boolean
default=True
color
Integer
default=<expr>
name
Char
required=True
sequence
Integer
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
report_toclean_data(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-abbey |
| GIT | |
| GIT | https://github.com/OCA/vertical-abbey.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-abbey/tree/14.0/stay |
| VERSION | |
| VERSION | 5.1.0 |
| CATEGORY | |
| CATEGORY | Lodging |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, oca-travis, Weblate, OCA-git-bot, Matthieu Dubois |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-abbey |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_timeline odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stayjournalprint |
report_stayjournalprint | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits base.res_config_settings_view_form | |
stay.report_stayjournalprint_document |
stay.report_stayjournalprint_document | ir.ui.view | qweb | New |
stay_building_form |
stay.building | form | New | |
stay_building_search |
stay.building | search | New | |
stay_building_tree |
stay.building | tree | New | |
stay_calendar |
stay.calendar | stay.stay | calendar | New |
stay_date_label_calendar |
stay.date.label.calendar | stay.date.label | calendar | New |
stay_date_label_form |
stay.date.label.form | stay.date.label | form | New |
stay_date_label_search |
stay.date.label.search | stay.date.label | search | New |
stay_date_label_tree |
stay.date.label.tree | stay.date.label | tree | New |
stay_fire_print_form |
stay_fire_print.form | stay.fire.print | form | New |
stay_form |
stay.form | stay.stay | form | New |
stay_graph |
stay.graph | stay.stay | graph | New |
stay_group_form |
stay.group.form | stay.group | form | New |
stay_group_search |
stay.group.search | stay.group | search | New |
stay_group_tree |
stay.group.tree | stay.group | tree | New |
stay_journal_print_form |
stay_journal_print.form | stay.journal.print | form | New |
stay_line_form |
stay.line.form | stay.line | form | New |
stay_line_graph |
stay.line.graph | stay.line | graph | New |
stay_line_mass_update_form |
stay.line.mass.update | form | New | |
stay_line_pivot |
stay.line.pivot | stay.line | pivot | New |
stay_line_reset |
stay.line.reset | form | New | |
stay_line_search |
stay.line.search | stay.line | search | New |
stay_line_tree |
stay.line.tree | stay.line | tree | New |
stay_multi_duplicate_form |
stay.multi.duplicate | form | New | |
stay_pivot |
stay.graph | stay.stay | pivot | New |
stay_refectory_form |
stay.refectory.form | stay.refectory | form | New |
stay_refectory_search |
stay.refectory.search | stay.refectory | search | New |
stay_refectory_tree |
stay.refectory.tree | stay.refectory | tree | New |
stay_room_assign_calendar |
stay.room.assign | calendar | New | |
stay_room_assign_detailed_form |
stay.room.assign | form | New | |
stay_room_assign_form |
stay.room.assign | form | New | |
stay_room_assign_pivot |
stay.room.assign | pivot | New | |
stay_room_assign_search |
stay.room.assign.search | stay.room.assign | search | New |
stay_room_assign_timeline |
stay.room.assign.timeline | stay.room.assign | timeline | New |
stay_room_assign_tree |
stay.room.assign | tree | New | |
stay_room_form |
stay.room.form | stay.room | form | New |
stay_room_mass_assign_form |
stay.room.mass.assign | form | New | |
stay_room_search |
stay.room.search | stay.room | search | New |
stay_room_tree |
stay.room.tree | stay.room | tree | New |
stay_search |
stay.search | stay.stay | search | New |
stay_stay_xlsx_form |
stay.stay.xlsx.form | stay.stay.xlsx | form | New |
stay_tag_form |
stay.tag | form | New | |
stay_tag_search |
stay.tag | search | New | |
stay_tag_tree |
stay.tag | tree | New | |
stay_toclean_print_form |
stay_toclean_print.form | stay.toclean.print | form | New |
stay_tree |
stay.tree | stay.stay | tree | New |
stay_tree_reverse_order |
stay.tree.reverse.order | stay.stay | tree | New |
view_partner_form |
stay.button.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
view_users_form |
donation.res.users.form | res.users | group | Inherits base.view_users_form |
view_users_form_simple_modif |
donation.preferences.res.users.form | res.users | field | Inherits base.view_users_form_simple_modif |
default_refectory_id
Many2one → stay.refectory
check_company=True
ondelete='restrict'
string='Default Refectory'
args: 'stay.refectory'
stay_notify_user_ids
Many2many → res.users
string='Users Notified by E-mail for Stays without Group'
args: 'res.users'
No public methods.
group_stay_breakfast
Boolean
implied_group='stay.group_stay_breakfast'
string='Manage Breakfast'
stay_default_refectory_id
Many2one
readonly=False
related='company_id.default_refectory_id'
stay_notify_user_ids
Many2many
readonly=False
related='company_id.stay_notify_user_ids'
stay_room_transition
Selection
config_parameter='stay.room_transition'
string='Room Transition'
args: [('one_empty_period', 'One Empty Period'), ('immediate', 'Immediate'), ('night', 'Night')]
No public methods.
stay_count
Integer
compute='_compute_stay_count'
compute_sudo=True
readonly=True
string='# of Stays'
stay_ids
One2many → stay.stay
string='Stays'
args: 'stay.stay', 'partner_id'
No public methods.
context_stay_group_id
Many2one → stay.group
No public methods.
active
Boolean
default=True
name
Char
required=True
room_ids
One2many → stay.room
string='Rooms'
args: 'stay.room', 'building_id'
sequence
Integer
No public methods.
date
Date
index=True
required=True
name
Char
string='Label'
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date
Date
default=<expr>
required=True
string='Date'
run(self)
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
required=True
string='Company'
args: 'res.company'
default_no_meals
Boolean
string='No Meals by Default'
default_refectory_id
Many2one → stay.refectory
check_company=True
ondelete='restrict'
string='Default Refectory'
args: 'stay.refectory'
name
Char
required=True
string='Group Name'
notify_user_ids
Many2many → res.users
string='Users Notified by E-mail'
args: 'res.users'
room_ids
One2many → stay.room
string='Rooms'
args: 'stay.room', 'group_id'
sequence
Integer
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date
Date
default=_default_date
required=True
string='Date'
date_label
Char
compute='_compute_date_label'
report_type
Selection
default='general'
required=True
args: [('general', 'General'), ('meal', 'Meals'), ('arrival', 'Arrivals')]
get_report_by_refectory(self)
print_journal(self)
print_journal_arrival(self)
print_journal_general(self)
print_journal_meal(self)
report_arrival_data(self)
report_date_formatted(self)
report_edit_datetime(self)
report_general_data(self)
bed_night_qty
Integer
string='Bed Nights'
breakfast_qty
Integer
string='Breakfast'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
dinner_qty
Integer
string='Dinners'
group_id
Many2one → stay.group
compute='_compute_group_id'
readonly=False
store=True
args: 'stay.group'
lunch_qty
Integer
string='Lunches'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
string='Guest'
args: 'res.partner'
partner_name
Text
compute='_compute_partner_name'
readonly=False
required=True
store=True
args: 'Guest Names'
refectory_id
Many2one → stay.refectory
check_company=True
default=<expr>
string='Refectory'
args: 'stay.refectory'
rooms_display_name
Char
related='stay_id.rooms_display_name'
store=True
stay_id
Many2one → stay.stay
check_company=True
ondelete='cascade'
string='Stay'
args: 'stay.stay'
No public methods.
end_date
Date
required=True
no_bed_night
Boolean
string='No Bed Nights'
no_breakfast
Boolean
string='No Breakfasts'
no_dinner
Boolean
string='No Dinners'
no_lunch
Boolean
string='No Lunches'
refectory_id
Many2one → stay.refectory
string='New Refectory'
args: 'stay.refectory'
start_date
Date
required=True
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
apply(self)
default_get(self, fields_list)
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
default_get(self, fields_list)
reset_lines(self)
create_state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed')]
end_date
Date
required=True
frequency
Selection
default='weekly'
required=True
args: [('weekly', 'Weekly')]
keep_assignments
Boolean
default=True
string='Keep assignments?'
keep_notes
Boolean
string='Keep Notes?'
start_date
Date
default=fields.Date.context_today
required=True
stay_id
Many2one → stay.stay
readonly=True
required=True
args: 'stay.stay'
default_get(self, fields_list)
run(self)
active
Boolean
default=True
capacity
Integer
string='Capacity'
code
Char
string='Code'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
required=True
string='Company'
args: 'res.company'
name
Char
required=True
string='Name'
sequence
Integer
default=10
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
active
Boolean
default=True
allow_simultaneous
Boolean
help='This option applies for rooms where bed quantity > 1. You should enable this option if you allow to have several stays at the same time in the room.'
string='Allow simultaneous'
bed_qty
Integer
default=1
string='Number of beds'
building_id
Many2one → stay.building
index=True
ondelete='restrict'
args: 'stay.building'
code
Char
copy=False
string='Code'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
required=True
string='Company'
args: 'res.company'
fire_report_exclude
Boolean
string='Exclude from Fire Report'
fire_report_sequence
Integer
string='Order for Fire Report'
group_id
Many2one → stay.group
check_company=True
domain="[('company_id', '=', company_id)]"
index=True
string='Group'
args: 'stay.group'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
name
Char
copy=False
required=True
string='Name'
notes
Text
sequence
Integer
default=10
to_clean
Char
help='When the field has a value, it means the room must be cleaned (when a stay is terminated, this field is auto-set with the stay description). When the room is cleaned, the field is emptied.'
string='To Clean'
action_archive(self)
mark_as_cleaned(self)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
room_config_change(self)
active
Boolean
related='room_id.active'
store=True
arrival_date
Date
readonly=False
related='stay_id.arrival_date'
store=True
arrival_datetime
Datetime
related='stay_id.arrival_datetime'
store=True
arrival_note
Char
readonly=False
related='stay_id.arrival_note'
store=True
arrival_time
Selection
readonly=False
related='stay_id.arrival_time'
store=True
company_id
Many2one
related='stay_id.company_id'
store=True
conflict_room_ids
Many2many → stay.room
compute='_compute_conflict_room_ids'
string='Conflict Rooms'
args: 'stay.room'
departure_date
Date
readonly=False
related='stay_id.departure_date'
store=True
departure_datetime
Datetime
related='stay_id.departure_datetime'
store=True
departure_note
Char
readonly=False
related='stay_id.departure_note'
store=True
departure_time
Selection
readonly=False
related='stay_id.departure_time'
store=True
group_id
Many2one
related='room_id.group_id'
store=True
guest_qty
Integer
required=True
string='Guest Quantity'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
notes
Text
readonly=False
related='stay_id.notes'
store=True
partner_id
Many2one
related='stay_id.partner_id'
store=True
partner_name
Text
related='stay_id.partner_name'
store=True
room_id
Many2one → stay.room
check_company=True
domain="[('id', 'not in', conflict_room_ids), ('company_id', '=', company_id), ('group_id', 'in', (False, stay_group_id))]"
index=True
ondelete='restrict'
required=True
args: 'stay.room'
state
Selection
related='stay_id.state'
store=True
stay_group_id
Many2one
related='stay_id.group_id'
store=True
string='Stay Group'
stay_id
Many2one → stay.stay
index=True
ondelete='cascade'
args: 'stay.stay'
tag_ids
Many2many
readonly=False
related='stay_id.tag_ids'
name_get(self)
room_id_change(self)
show_stay(self)
assign_type
Selection
default='single'
required=True
string='Assignation'
args: [('single', 'One Guest per Room'), ('full', 'Maximum Capacity')]
company_id
Many2one
related='stay_id.company_id'
conflict_room_ids
Many2many → stay.room
compute='_compute_conflict_room_ids'
string='Conflict Rooms'
args: 'stay.room'
group_id
Many2one
related='stay_id.group_id'
room_ids
Many2many → stay.room
domain="[('id', 'not in', conflict_room_ids), ('company_id', '=', company_id), ('group_id', 'in', (False, group_id))]"
required=True
string='Rooms'
args: 'stay.room'
stay_id
Many2one → stay.stay
readonly=True
args: 'stay.stay'
default_get(self, fields_list)
run(self)
arrival_date
Date
index=True
required=True
string='Arrival Date'
tracking=True
arrival_datetime
Datetime
compute='_compute_arrival_datetime'
inverse='_inverse_arrival_datetime'
store=True
string='Arrival Date and Time'
arrival_note
Char
string='Arrival Note'
arrival_time
Selection
required=True
string='Arrival Time'
tracking=True
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
assign_status
Selection
compute='_compute_room_assignment'
store=True
string='Assign Status'
args: [('none', 'Waiting Assignation'), ('no_night', 'No Nights'), ('partial', 'Partial'), ('assigned', 'Assigned'), ('over-assigned', 'Over Assigned'), ('error', 'Error')]
clash_time_next_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Next stay which arrives before the departure in the same room(s)'
string='Next Stay which arrives before'
args: 'stay.stay'
clash_time_preceding_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Preceding stay which leaves later that the arrival in the same room(s)'
string='Preceding Stay which leaves later'
args: 'stay.stay'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
construction
Boolean
departure_date
Date
index=True
required=True
string='Departure Date'
tracking=True
departure_datetime
Datetime
compute='_compute_departure_datetime'
inverse='_inverse_departure_datetime'
store=True
string='Departure Date and Time'
departure_note
Char
string='Departure Note'
departure_time
Selection
required=True
string='Departure Time'
tracking=True
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening'), ('unknown', 'Unknown')]
group_id
Many2one → stay.group
check_company=True
copy=False
default=<expr>
domain="[('company_id', '=', company_id)]"
ondelete='restrict'
string='Group'
tracking=True
args: 'stay.group'
guest_qty
Integer
default=1
string='Guest Quantity'
tracking=True
guest_qty_to_assign
Integer
compute='_compute_room_assignment'
store=True
line_ids
One2many → stay.line
states={'draft': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Stay Lines'
args: 'stay.line', 'stay_id'
my_stay_group
Boolean
compute='_compute_my_stay_group'
search='_search_my_stay_group'
name
Char
copy=False
default='/'
string='Stay Number'
no_meals
Boolean
compute='_compute_refectory_id'
help='The stay lines generated from this stay will not have breakfast/lunch/dinner by default.'
readonly=False
store=True
string='No Meals'
tracking=True
notes
Text
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
ondelete='restrict'
string='Guest'
args: 'res.partner'
partner_name
Text
compute='_compute_partner_name'
readonly=False
required=True
store=True
string='Guest Names'
tracking=True
refectory_id
Many2one → stay.refectory
check_company=True
compute='_compute_refectory_id'
readonly=False
store=True
string='Refectory'
args: 'stay.refectory'
room_assign_ids
One2many → stay.room.assign
copy=False
states={'cancel': [('readonly', True)]}
string='Room Assignments'
args: 'stay.room.assign', 'stay_id'
rooms_display_name
Char
compute='_compute_room_assignment'
store=True
string='Rooms'
same_time_next_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Next stay which arrives on the same time slot in the same room(s)'
string='Next Stay which arrives on same time slot'
args: 'stay.stay'
same_time_preceding_stay_id
Many2one → stay.stay
compute='_compute_preceding_next_stay_id'
help='Preceding stay which leaves on the same time slot in the same room(s)'
string='Preceding Stay which leaves on same time slot'
args: 'stay.stay'
state
Selection
copy=False
default='draft'
readonly=True
tracking=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('current', 'Current'), ('done', 'Finished'), ('cancel', 'Cancelled')]
tag_ids
Many2many → stay.tag
string='Tags'
args: 'stay.tag'
arrival_date_change(self)
cancel(self)
cancel2draft(self)
create(self, vals)
default_get(self, fields_list)
draft2confirm(self)
guest_has_left(self)
name_get(self)
stay_notify_selection_button(self)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
required=True
string='Company'
args: 'res.company'
end_date
Date
required=True
string='End Date'
file_xlsx
Binary
readonly=True
filename
Char
readonly=True
group_ids
Many2many → stay.group
domain="[('company_id', '=', company_id)]"
string='Groups'
args: 'stay.group'
start_date
Date
required=True
string='Start Date'
default_get(self, fields_list)
prepare_tab(self)
run(self)
active
Boolean
default=True
color
Integer
default=<expr>
name
Char
required=True
sequence
Integer
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
print_report(self)
report_toclean_data(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-abbey |
| GIT | |
| GIT | https://github.com/OCA/vertical-abbey.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-abbey/tree/10.0/stay |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Lodging |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Pedro M. Baeza, Stéphane Bidoul (ACSONE) |
| WEBSITE | |
| WEBSITE | http://www.barroux.org |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:20:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_timeline odoo/odoo: - report - base - web - base_setup - web_kanban - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stayjournalprint |
report_stayjournalprint | ir.ui.view | qweb | New |
stay.report_stayjournalprint_document |
stay.report_stayjournalprint_document | ir.ui.view | qweb | New |
stay_calendar |
stay.calendar | stay.stay | calendar | New |
stay_date_label_calendar |
stay.date.label.calendar | stay.date.label | calendar | New |
stay_date_label_form |
stay.date.label.form | stay.date.label | form | New |
stay_date_label_search |
stay.date.label.search | stay.date.label | search | New |
stay_date_label_tree |
stay.date.label.tree | stay.date.label | tree | New |
stay_form |
stay.form | stay.stay | form | New |
stay_graph |
stay.graph | stay.stay | graph | New |
stay_group_form |
stay.group.form | stay.group | form | New |
stay_group_search |
stay.group.search | stay.group | search | New |
stay_group_tree |
stay.group.tree | stay.group | tree | New |
stay_journal_generate_form |
stay_journal_generate.form | stay.journal.generate | form | New |
stay_journal_print_form |
stay_journal_print.form | stay.journal.print | form | New |
stay_line_form |
stay.line.form | stay.line | form | New |
stay_line_graph |
stay.line.graph | stay.line | graph | New |
stay_line_pivot |
stay.line.pivot | stay.line | pivot | New |
stay_line_search |
stay.line.search | stay.line | search | New |
stay_line_tree |
stay.line.tree | stay.line | tree | New |
stay_pivot |
stay.graph | stay.stay | pivot | New |
stay_refectory_form |
stay.refectory.form | stay.refectory | form | New |
stay_refectory_search |
stay.refectory.search | stay.refectory | search | New |
stay_refectory_tree |
stay.refectory.tree | stay.refectory | tree | New |
stay_room_form |
stay.room.form | stay.room | form | New |
stay_room_search |
stay.room.search | stay.room | search | New |
stay_room_tree |
stay.room.tree | stay.room | tree | New |
stay_search |
stay.search | stay.stay | search | New |
stay_stay_xlsx_form |
stay.stay.xlsx.form | stay.stay.xlsx | form | New |
stay_timeline |
stay.timeline | stay.stay | timeline | New |
stay_tree |
stay.tree | stay.stay | tree | New |
view_general_configuration |
base.config.settings | group | Inherits base_setup.view_general_configuration | |
view_partner_form |
stay.button.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
default_refectory_id
Many2one
related='company_id.default_refectory_id'
string='Default Refectory'
No public methods.
default_refectory_id
Many2one → stay.refectory
string='Default Refectory'
args: 'stay.refectory'
No public methods.
stay_count
Integer
compute='_compute_stay_count'
readonly=True
string='# of Stays'
stay_ids
One2many → stay.stay
string='Stays'
args: 'stay.stay', 'partner_id'
No public methods.
date
Date
index=True
required=True
name
Char
string='Label'
No public methods.
name
Char
required=True
string='Group Name'
notify_user_ids
Many2many → res.users
string='Users Notified by E-mail'
args: 'res.users'
room_ids
One2many → stay.room
string='Rooms'
args: 'stay.room', 'group_id'
sequence
Integer
user_id
Many2one → res.users
string='In Charge'
args: 'res.users'
No public methods.
date
Date
default=_default_date
required=True
string='Date'
generate(self)
date
Date
default=_default_date
required=True
string='Date'
date_label
Char
compute='_compute_date_label'
readonly=True
get_report_by_refectory(self)
print_journal(self)
bed_night_qty
Integer
string='Bed Nights'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
dinner_qty
Integer
string='Dinners'
group_id
Many2one
readonly=True
related='room_id.group_id'
store=True
lunch_qty
Integer
string='Lunches'
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
string='Guest'
args: 'res.partner'
partner_name
Char
required=True
args: 'Guest Name'
refectory_id
Many2one → stay.refectory
default=_default_refectory
string='Refectory'
args: 'stay.refectory'
room_id
Many2one → stay.room
index=True
ondelete='restrict'
string='Room'
args: 'stay.room'
stay_id
Many2one → stay.stay
string='Stay'
args: 'stay.stay'
user_id
Many2one
readonly=True
related='room_id.group_id.user_id'
store=True
No public methods.
active
Boolean
default=True
capacity
Integer
string='Capacity'
code
Char
size=10
string='Code'
display_name
Char
compute='_compute_display_name_field'
readonly=True
store=True
string='Display Name'
name
Char
required=True
string='Name'
No public methods.
active
Boolean
default=True
allow_simultaneous
Boolean
help='This option applies for rooms where bed quantity > 1. You should enable this option if you allow to have several stays at the same time in the room.'
string='Allow simultaneous'
bed_qty
Integer
default=1
string='Number of beds'
code
Char
copy=False
size=10
string='Code'
display_name
Char
compute='_compute_display_name_field'
readonly=True
store=True
string='Display Name'
group_id
Many2one → stay.group
string='Group'
args: 'stay.group'
name
Char
copy=False
required=True
string='Name'
no_meals
Boolean
help='If active, the stays linked to this room will have the same option active by default.'
string='No Meals'
sequence
Integer
user_id
Many2one
readonly=True
related='group_id.user_id'
store=True
No public methods.
arrival_date
Date
index=True
required=True
string='Arrival Date'
track_visibility='onchange'
arrival_datetime
Datetime
compute='_compute_arrival_datetime'
readonly=True
store=True
string='Arrival Date and Time'
arrival_note
Char
string='Arrival Note'
arrival_time
Selection
required=True
string='Arrival Time'
track_visibility='onchange'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening')]
calendar_display_name
Char
compute='_compute_calendar_display_name'
store=False
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
departure_date
Date
index=True
required=True
string='Departure Date'
track_visibility='onchange'
departure_datetime
Datetime
compute='_compute_departure_datetime'
readonly=True
store=True
string='Departure Date and Time'
departure_note
Char
string='Departure Note'
departure_time
Selection
required=True
string='Departure Time'
track_visibility='onchange'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening')]
group_id
Many2one → stay.group
copy=False
ondelete='restrict'
string='Group'
track_visibility='onchange'
args: 'stay.group'
group_id_integer
Integer
readonly=True
related='group_id.id'
guest_qty
Integer
default=1
string='Guest Quantity'
track_visibility='onchange'
line_ids
One2many → stay.line
string='Stay Lines'
args: 'stay.line', 'stay_id'
name
Char
copy=False
default='/'
string='Stay Number'
no_meals
Boolean
help='The stay lines generated from this stay will not have lunchs nor dinners by default.'
string='No Meals'
notes
Text
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
ondelete='restrict'
string='Guest'
args: 'res.partner'
partner_name
Char
required=True
track_visibility='onchange'
args: 'Guest Name'
room_id
Many2one → stay.room
copy=False
index=True
ondelete='restrict'
string='Room'
track_visibility='onchange'
args: 'stay.room'
user_id
Many2one
readonly=True
related='group_id.user_id'
store=True
create(self, vals=None)
group_id_change(self)
name_get(self)
partner_id_change(self)
room_id_change(self)
end_date
Date
required=True
string='End Date'
file_xlsx
Binary
readonly=True
filename
Char
readonly=True
group_ids
Many2many → stay.group
string='Groups'
args: 'stay.group'
start_date
Date
required=True
string='Start Date'
default_get(self, fields_list)
prepare_tab(self)
run(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-abbey |
| GIT | |
| GIT | https://github.com/OCA/vertical-abbey.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-abbey/tree/9.0/stay |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Lodging |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Stéphane Bidoul (ACSONE) |
| WEBSITE | |
| WEBSITE | http://www.barroux.org |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:24 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base - report - base_setup - web_kanban - bus |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stay_journal |
report_stay_journal | ir.ui.view | qweb | New |
stay_form |
stay.form | stay.stay | form | New |
stay_graph |
stay.graph | stay.stay | graph | New |
stay_journal_generate_form |
stay_journal_generate.form | stay.journal.generate | form | New |
stay_journal_print_form |
stay_journal_print.form | stay.journal.print | form | New |
stay_line_form |
stay.line.form | stay.line | form | New |
stay_line_graph |
stay.line.graph | stay.line | graph | New |
stay_line_search |
stay.line.search | stay.line | search | New |
stay_line_tree |
stay.line.tree | stay.line | tree | New |
stay_refectory_form |
stay.refectory.form | stay.refectory | form | New |
stay_refectory_search |
stay.refectory.search | stay.refectory | search | New |
stay_refectory_tree |
stay.refectory.tree | stay.refectory | tree | New |
stay_room_form |
stay.room.form | stay.room | form | New |
stay_room_search |
stay.room.search | stay.room | search | New |
stay_room_tree |
stay.room.tree | stay.room | tree | New |
stay_search |
stay.search | stay.stay | search | New |
stay_tree |
stay.tree | stay.stay | tree | New |
view_company_form |
res.company | group | Inherits base.view_company_form | |
view_partner_form |
stay.button.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
default_refectory_id
Many2one → stay.refectory
string='Default Refectory'
args: 'stay.refectory'
No public methods.
stay_count
Integer
compute='_stay_count'
readonly=True
string='# of Stays'
stay_ids
One2many → stay.stay
string='Stays'
args: 'stay.stay', 'partner_id'
No public methods.
date
Date
default=_default_date
required=True
string='Date'
generate(self)
date
Date
default=_default_date
required=True
string='Date'
print_journal(self)
bed_night_qty
Integer
string='Bed Nights'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date
Date
default=fields.Date.context_today
required=True
string='Date'
dinner_qty
Integer
string='Dinners'
lunch_qty
Integer
string='Lunches'
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
string='Guest'
args: 'res.partner'
partner_name
Char
required=True
args: 'Guest Name'
refectory_id
Many2one → stay.refectory
default=_default_refectory
string='Refectory'
args: 'stay.refectory'
room_id
Many2one → stay.room
ondelete='restrict'
string='Room'
args: 'stay.room'
stay_id
Many2one → stay.stay
string='Stay'
args: 'stay.stay'
No public methods.
active
Boolean
default=True
capacity
Integer
string='Capacity'
code
Char
size=10
string='Code'
display_name
Char
compute='_compute_display_name'
readonly=True
store=True
string='Display Name'
name
Char
required=True
string='Name'
No public methods.
active
Boolean
default=True
bed_qty
Integer
default='1'
string='Number of beds'
code
Char
copy=False
size=10
string='Code'
display_name
Char
compute='_compute_display_name'
readonly=True
store=True
string='Display Name'
name
Char
copy=False
required=True
string='Name'
no_meals
Boolean
help='If active, the stays linked to this room will have the same option active by default.'
string='No Meals'
No public methods.
arrival_date
Date
required=True
string='Arrival Date'
track_visibility='onchange'
arrival_time
Selection
required=True
string='Arrival Time'
track_visibility='onchange'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening')]
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
departure_date
Date
required=True
string='Departure Date'
track_visibility='onchange'
departure_time
Selection
required=True
string='Departure Time'
track_visibility='onchange'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening')]
guest_qty
Integer
default=1
string='Guest Quantity'
track_visibility='onchange'
line_ids
One2many → stay.line
string='Stay Lines'
args: 'stay.line', 'stay_id'
name
Char
default='/'
string='Stay Number'
no_meals
Boolean
help='The stay lines generated from this stay will not have lunchs nor dinners by default.'
string='No Meals'
partner_id
Many2one → res.partner
copy=False
help='If guest is anonymous, leave this field empty.'
ondelete='restrict'
string='Guest'
args: 'res.partner'
partner_name
Char
required=True
track_visibility='onchange'
args: 'Guest Name'
room_id
Many2one → stay.room
copy=False
ondelete='restrict'
string='Room'
track_visibility='onchange'
args: 'stay.room'
copy(self, default=None)
create(self, vals=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-abbey |
| GIT | |
| GIT | https://github.com/OCA/vertical-abbey.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-abbey/tree/8.0/stay |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Lodging |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Barroux Abbey |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Alexis de Lattre, Stéphane Bidoul (ACSONE), Frère Bernard |
| WEBSITE | |
| WEBSITE | http://www.barroux.org |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:27 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - web - base - report - base_setup - web_kanban |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stay_journal |
report_stay_journal | ir.ui.view | qweb | New |
stay_form |
stay.form | stay.stay | form | New |
stay_graph |
stay.graph | stay.stay | graph | New |
stay_journal_generate_form |
stay_journal_generate.form | stay.journal.generate | form | New |
stay_journal_print_form |
stay_journal_print.form | stay.journal.print | form | New |
stay_line_form |
stay.line.form | stay.line | form | New |
stay_line_graph |
stay.line.graph | stay.line | graph | New |
stay_line_search |
stay.line.search | stay.line | search | New |
stay_line_tree |
stay.line.tree | stay.line | tree | New |
stay_refectory_form |
stay.refectory.form | stay.refectory | form | New |
stay_refectory_search |
stay.refectory.search | stay.refectory | search | New |
stay_refectory_tree |
stay.refectory.tree | stay.refectory | tree | New |
stay_room_form |
stay.room.form | stay.room | form | New |
stay_room_search |
stay.room.search | stay.room | search | New |
stay_room_tree |
stay.room.tree | stay.room | tree | New |
stay_search |
stay.search | stay.stay | search | New |
stay_tree |
stay.tree | stay.stay | tree | New |
view_company_form |
res.company | group | Inherits base.view_company_form | |
view_partner_form |
stay.button.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
default_refectory_id
Many2one → stay.refectory
string='Default Refectory'
args: 'stay.refectory'
No public methods.
stay_count
Integer
compute='_stay_count'
readonly=True
string='# of Stays'
stay_ids
One2many → stay.stay
string='Stays'
args: 'stay.stay', 'partner_id'
No public methods.
date
Date
default=_default_date
required=True
string='Date'
generate(self)
date
Date
default=_default_date
required=True
string='Date'
print_journal(self)
bed_night_qty
Integer
string='Bed Nights'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date
Date
default=fields.Date.context_today
required=True
string='Date'
dinner_qty
Integer
string='Dinners'
lunch_qty
Integer
string='Lunches'
partner_id
Many2one → res.partner
help='If guest is anonymous, leave this field empty.'
string='Guest'
args: 'res.partner'
partner_name
Char
required=True
args: 'Guest Name'
refectory_id
Many2one → stay.refectory
default=_default_refectory
string='Refectory'
args: 'stay.refectory'
room_id
Many2one → stay.room
ondelete='restrict'
string='Room'
args: 'stay.room'
stay_id
Many2one → stay.stay
string='Stay'
args: 'stay.stay'
No public methods.
active
Boolean
default=True
capacity
Integer
string='Capacity'
code
Char
size=10
string='Code'
display_name
Char
compute='_compute_display_name'
readonly=True
store=True
string='Display Name'
name
Char
required=True
string='Name'
No public methods.
active
Boolean
default=True
bed_qty
Integer
default='1'
string='Number of beds'
code
Char
copy=False
size=10
string='Code'
display_name
Char
compute='_compute_display_name'
readonly=True
store=True
string='Display Name'
name
Char
copy=False
required=True
string='Name'
no_meals
Boolean
help='If active, the stays linked to this room will have the same option active by default.'
string='No Meals'
No public methods.
arrival_date
Date
required=True
string='Arrival Date'
track_visibility='onchange'
arrival_time
Selection
required=True
string='Arrival Time'
track_visibility='onchange'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening')]
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
departure_date
Date
required=True
string='Departure Date'
track_visibility='onchange'
departure_time
Selection
required=True
string='Departure Time'
track_visibility='onchange'
args: [('morning', 'Morning'), ('afternoon', 'Afternoon'), ('evening', 'Evening')]
guest_qty
Integer
default=1
string='Guest Quantity'
track_visibility='onchange'
line_ids
One2many → stay.line
string='Stay Lines'
args: 'stay.line', 'stay_id'
name
Char
default='/'
string='Stay Number'
no_meals
Boolean
help='The stay lines generated from this stay will not have lunchs nor dinners by default.'
string='No Meals'
partner_id
Many2one → res.partner
copy=False
help='If guest is anonymous, leave this field empty.'
ondelete='restrict'
string='Guest'
args: 'res.partner'
partner_name
Char
required=True
track_visibility='onchange'
args: 'Guest Name'
room_id
Many2one → stay.room
copy=False
ondelete='restrict'
string='Room'
track_visibility='onchange'
args: 'stay.room'
copy(self, default=None)
create(self, vals=None)