Skip to content

Commit 68aa1c9

Browse files
committed
[ADD] booking_engine,hotel: implementation of the hotel industry using an new module booking_engine
task-3765249
1 parent 8fa3dc6 commit 68aa1c9

File tree

82 files changed

+4171
-679
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+4171
-679
lines changed

.tx/config

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ resource_name = billboard_rental
109109
replace_edited_strings = false
110110
keep_translations = false
111111

112+
[o:odoo:p:odoo-s18-4:r:booking_engine]
113+
file_filter = booking_engine/i18n/<lang>.po
114+
source_file = booking_engine/i18n/booking_engine.pot
115+
type = PO
116+
minimum_perc = 0
117+
resource_name = booking_engine
118+
replace_edited_strings = false
119+
keep_translations = false
120+
112121
[o:odoo:p:odoo-s18-4:r:bookstore]
113122
file_filter = bookstore/i18n/<lang>.po
114123
source_file = bookstore/i18n/bookstore.pot
@@ -397,6 +406,15 @@ resource_name = headhunter
397406
replace_edited_strings = false
398407
keep_translations = false
399408

409+
[o:odoo:p:odoo-s18-4:r:hotel]
410+
file_filter = hotel/i18n/<lang>.po
411+
source_file = hotel/i18n/hotel.pot
412+
type = PO
413+
minimum_perc = 0
414+
resource_name = hotel
415+
replace_edited_strings = false
416+
keep_translations = false
417+
400418
[o:odoo:p:odoo-s18-4:r:hvac_services]
401419
file_filter = hvac_services/i18n/<lang>.po
402420
source_file = hvac_services/i18n/hvac_services.pot

booking_engine/__manifest__.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
'name': 'Booking Engine',
3+
'version': '1.0',
4+
'category': 'Hidden/Tools',
5+
'author': 'Odoo S.A.',
6+
'depends': [
7+
'base_automation',
8+
'contacts',
9+
'knowledge',
10+
'sale_project',
11+
'sale_renting_planning',
12+
'web_studio',
13+
'website_appointment',
14+
'website_sale_renting',
15+
],
16+
'data': [
17+
'data/res_config_settings.xml',
18+
'data/ir_model_fields.xml',
19+
'data/account_tax.xml',
20+
'data/ir_actions_server.xml',
21+
'data/base_automation.xml',
22+
'data/ir_ui_view.xml',
23+
'data/ir_actions_act_window.xml',
24+
'data/ir_ui_menu.xml',
25+
'data/sale_temporal_recurrence.xml',
26+
'data/website_view.xml',
27+
'data/website_menu.xml',
28+
'data/resource_calendar_data.xml',
29+
'data/product_category.xml',
30+
'data/product_attribute.xml',
31+
'data/product_attribute_value.xml',
32+
],
33+
'demo': [
34+
'demo/payment_provider_demo.xml',
35+
],
36+
'license': 'OPL-1',
37+
'cloc_exclude': [
38+
'data/website_view.xml',
39+
],
40+
}
File renamed without changes.
File renamed without changes.

guest_house/data/ir_actions_act_window.xml renamed to booking_engine/data/ir_actions_act_window.xml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,65 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
3-
<record id="guest_house_rooms_schedule_action" model="ir.actions.act_window">
3+
<record id="booking_engine_rooms_schedule_action" model="ir.actions.act_window">
44
<field name="domain">[("role_id", "ilike", ""), ("role_id.x_is_a_room_offer", "=", True)]</field>
55
<field name="context">{'search_default_group_by_employee': 1, 'planning_expand_employee': 1, 'planning_expand_role': 1, 'planning_expand_sale_line_id': 1, 'planning_expand_resource': 1}</field>
66
<field name="name">Schedule</field>
77
<field name="res_model">planning.slot</field>
88
<field name="view_mode">gantt,calendar,list,kanban,form</field>
9-
<field name="search_view_id" ref="planning_search_view"/>
109
<field name="view_ids" eval="[
1110
(5, 0, 0),
12-
(0, 0, {'view_mode': 'gantt', 'view_id': ref('guest_house_planning_gantt_view')}),
13-
(0, 0, {'view_mode': 'form', 'view_id': ref('guest_house_schedule_form')}),
14-
(0, 0, {'view_mode': 'list', 'view_id': ref('guest_house_planning_list_view')}),
11+
(0, 0, {'view_mode': 'gantt', 'view_id': ref('booking_engine_planning_gantt_view')}),
12+
(0, 0, {'view_mode': 'form', 'view_id': ref('booking_engine_schedule_form')}),
13+
(0, 0, {'view_mode': 'list', 'view_id': ref('booking_engine_planning_list_view')}),
14+
1515
]"/>
1616
</record>
17-
<record id="guest_house_rooms_order_action" model="ir.actions.act_window">
17+
<record id="booking_engine_rooms_order_action" model="ir.actions.act_window">
1818
<field name="domain">[("x_order_involves_room", "=", True)]</field>
1919
<field name="context">{'in_rental_app': 1, 'search_default_from_rental': 1}</field>
2020
<field name="name">Orders</field>
2121
<field name="res_model">sale.order</field>
2222
<field name="view_mode">kanban,list,form</field>
23-
<field name="search_view_id" ref="guest_house_order_search"/>
23+
<field name="search_view_id" ref="booking_engine_order_search"/>
2424
<field name="view_ids" eval="[
2525
(5, 0, 0),
26-
(0, 0, {'view_mode': 'kanban', 'view_id': ref('guest_house_orders_kanban')}),
26+
(0, 0, {'view_mode': 'kanban', 'view_id': ref('booking_engine_orders_kanban')}),
2727
(0, 0, {'view_mode': 'list', 'view_id': ref('sale_renting.rental_order_view_tree')}),
2828
(0, 0, {'view_mode': 'form', 'view_id': ref('sale_renting.rental_order_primary_form_view')}),
2929
]"/>
3030
</record>
31-
<record id="guest_house_rooms_offers_action" model="ir.actions.act_window">
31+
<record id="booking_engine_rooms_offers_action" model="ir.actions.act_window">
3232
<field name="name">Room Offers</field>
3333
<field name="res_model">product.template</field>
3434
<field name="domain">[("x_is_a_room_offer", "=", True)]</field>
3535
<field name="context">{'default_x_is_a_room_offer': True, 'default_purchase_ok': False, 'default_sale_ok': True, 'default_rent_ok': True, 'default_type': 'service', 'default_planning_enabled': True}</field>
3636
<field name="view_mode">kanban,list,form</field>
37-
<field name="search_view_id" ref="guest_house_offers_search"/>
37+
<field name="search_view_id" ref="booking_engine_offers_search"/>
3838
<field name="view_ids" eval="[
3939
(5, 0, 0),
40-
(0, 0, {'view_mode': 'kanban', 'view_id': ref('guest_house_offers_kanban')}),
41-
(0, 0, {'view_mode': 'list', 'view_id': ref('guest_house_offers_list')}),
40+
(0, 0, {'view_mode': 'kanban', 'view_id': ref('booking_engine_offers_kanban')}),
41+
(0, 0, {'view_mode': 'list', 'view_id': ref('booking_engine_offers_list')}),
4242
]"/>
4343
</record>
44-
<record id="guest_house_rooms_roles_action" model="ir.actions.act_window">
44+
<record id="booking_engine_rooms_roles_action" model="ir.actions.act_window">
4545
<field name="name">Room Roles</field>
4646
<field name="res_model">planning.role</field>
4747
<field name="domain">[("x_is_a_room_offer", "=", True)]</field>
4848
<field name="context">{'default_x_is_a_room_offer': True, 'default_sync_shift_rental': True}</field>
4949
<field name="view_mode">list,form</field>
50-
<field name="search_view_id" ref="guest_house_planning_role_view_search"/>
50+
<field name="search_view_id" ref="booking_engine_planning_role_view_search"/>
5151
<field name="view_ids" eval="[
5252
(5, 0, 0),
5353
(0, 0, {'view_mode': 'list', 'view_id': ref('planning.planning_role_view_tree')}),
5454
]"/>
5555
</record>
56-
<record id="guest_house_rooms_resources_action" model="ir.actions.act_window">
56+
<record id="booking_engine_rooms_resources_action" model="ir.actions.act_window">
5757
<field name="name">Room Resources</field>
5858
<field name="res_model">resource.resource</field>
5959
<field name="context">{'default_resource_type': 'material'}</field>
6060
<field name="domain">[("resource_type", "=", "material"), ("role_ids.x_is_a_room_offer", "=", True)]</field>
6161
<field name="view_mode">list,kanban,form</field>
62-
<field name="search_view_id" ref="guest_house_planning_resource_view_search"/>
62+
<field name="search_view_id" ref="booking_engine_planning_resource_view_search"/>
6363
<field name="view_ids" eval="[
6464
(5, 0, 0),
6565
(0, 0, {'view_mode': 'list', 'view_id': ref('planning.resource_resource_tree_view_inherit')}),
File renamed without changes.

guest_house/data/ir_model_fields.xml renamed to booking_engine/data/ir_model_fields.xml

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<field name="model_id" ref="base.model_res_partner"/>
3131
<field name="name">x_document_number</field>
3232
</record>
33-
<record id="sale_model_sale_order_x_guests" model="ir.model.fields">
33+
<record id="sale_model_sale_order_x_guests_field" model="ir.model.fields">
3434
<field name="ttype">many2many</field>
3535
<field name="copied" eval="True"/>
3636
<field name="field_description">Guests</field>
@@ -47,7 +47,7 @@
4747
record['x_identity_check'] = 'ok'
4848
else:
4949
record['x_identity_check'] = 'invalid'
50-
]]></field>
50+
]]></field>
5151
<field name="ttype">selection</field>
5252
<field name="selection">[('na', 'NA'), ('ok', 'OK'), ('invalid', 'Invalid')]</field>
5353
<field name="depends">x_nationality, x_document_type, x_document_number</field>
@@ -111,8 +111,40 @@
111111
<field name="ttype">integer</field>
112112
<field name="field_description">Guests count</field>
113113
<field name="model_id" ref="base.model_res_partner"/>
114-
<field name="name">x_guests_count</field>
115114
<field name="selectable" eval="False"/>
116115
<field name="store" eval="False"/>
116+
<field name="name">x_guests_count</field>
117+
</record>
118+
<record id="resource_x_on_going_booking" model="ir.model.fields">
119+
<field name="ttype">one2many</field>
120+
<field name="domain">[('sale_line_id.qty_delivered', '&gt;', 0), ('sale_line_id.qty_returned', '=', 0)]</field>
121+
<field name="field_description">Ongoing Booking</field>
122+
<field name="model_id" ref="resource.model_resource_resource"/>
123+
<field name="on_delete" eval="False"/>
124+
<field name="relation">planning.slot</field>
125+
<field name="relation_field">resource_id</field>
126+
<field name="name">x_ongoing_booking</field>
127+
</record>
128+
<record id="resource_x_occupant" model="ir.model.fields">
129+
<field name="name">x_occupant</field>
130+
<field name="field_description">Occupant</field>
131+
<field name="ttype">many2one</field>
132+
<field name="model_id" ref="resource.model_resource_resource"/>
133+
<field name="relation">res.partner</field>
134+
<field name="readonly" eval="True"/>
135+
<field name="depends">x_ongoing_booking.partner_id</field>
136+
<field name="compute"><![CDATA[for record in self:
137+
booking = record.x_ongoing_booking
138+
record['x_occupant'] = booking[0].partner_id.id if booking else False
139+
]]></field>
140+
</record>
141+
<record id="res_partner_x_ongoing_bookings" model="ir.model.fields">
142+
<field name="ttype">one2many</field>
143+
<field name="field_description">Ongoing Bookings</field>
144+
<field name="model_id" ref="base.model_res_partner"/>
145+
<field name="relation">resource.resource</field>
146+
<field name="relation_field">x_occupant</field>
147+
<field name="readonly" eval="True"/>
148+
<field name="name">x_ongoing_bookings</field>
117149
</record>
118150
</odoo>

booking_engine/data/ir_ui_menu.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo auto_sequence="1">
3+
<menuitem id="booking_engine_menu_root" name="Booking" sequence="2">
4+
<menuitem id="booking_engine_schedule_menu" name="Schedule" action="booking_engine_rooms_schedule_action"/>
5+
<menuitem id="booking_engine_orders_menu" name="Orders" action="booking_engine_rooms_order_action"/>
6+
<menuitem id="booking_engine_rooms_menu" name="Rooms">
7+
<menuitem id="booking_engine_rooms_offers_menu" name="Offers" action="booking_engine_rooms_offers_action"/>
8+
<menuitem id="booking_engine_rooms_roles_menu" name="Roles" action="booking_engine_rooms_roles_action"/>
9+
<menuitem id="booking_engine_rooms_resources_menu" name="Resources" action="booking_engine_rooms_resources_action"/>
10+
<menuitem id="booking_engine_rooms_attributes_menu" name="Attributes" action="product.attribute_action"/>
11+
</menuitem>
12+
</menuitem>
13+
</odoo>

0 commit comments

Comments
 (0)