diff --git a/.weblate.json b/.weblate.json index ab81c2af8b..f4ec20cf51 100644 --- a/.weblate.json +++ b/.weblate.json @@ -161,6 +161,11 @@ "filemask": "custom_furniture/i18n/*.po", "new_base": "custom_furniture/i18n/custom_furniture.pot" }, + { + "name": "customer_check_in", + "filemask": "customer_check_in/i18n/*.po", + "new_base": "customer_check_in/i18n/customer_check_in.pot" + }, { "name": "diy_workshops", "filemask": "diy_workshops/i18n/*.po", diff --git a/customer_check_in/__init__.py b/customer_check_in/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/customer_check_in/__manifest__.py b/customer_check_in/__manifest__.py new file mode 100644 index 0000000000..3099259a9c --- /dev/null +++ b/customer_check_in/__manifest__.py @@ -0,0 +1,36 @@ +{ + 'name': 'Customer Check In', + 'version': '1.0', + 'category': 'Hospitality', + 'depends': [ + 'base_industry_data', + 'event_booth', + 'event_sale', + 'knowledge', + 'website_event', + 'website_event_exhibitor', + 'website_event_track_gantt', + 'web_studio', + ], + 'data': [ + 'data/ir_model.xml', + 'data/ir_model_access.xml', + 'data/ir_model_fields.xml', + 'data/ir_default.xml', + 'data/ir_actions_server.xml', + 'data/base_automation.xml', + 'data/ir_actions_act_window.xml', + 'data/ir_actions_act_url.xml', + 'data/ir_ui_view.xml', + 'data/ir_ui_menu.xml', + ], + 'demo': [ + + ], + 'license': 'OPL-1', + 'author': 'Odoo S.A.', + "cloc_exclude": [ + + ], + 'images': [], +} diff --git a/customer_check_in/data/base_automation.xml b/customer_check_in/data/base_automation.xml new file mode 100644 index 0000000000..3abd41ce37 --- /dev/null +++ b/customer_check_in/data/base_automation.xml @@ -0,0 +1,12 @@ + + + + On Registration Remaining Entries Change + + + + [('id', '!=', False), ('x_remaining_entries', '<=', 0), ('state', 'in', ['open'])] + on_change + + + diff --git a/customer_check_in/data/ir_actions_act_url.xml b/customer_check_in/data/ir_actions_act_url.xml new file mode 100644 index 0000000000..4a449f83bb --- /dev/null +++ b/customer_check_in/data/ir_actions_act_url.xml @@ -0,0 +1,8 @@ + + + + Registration Desk + /odoo/registration-desk + self + + diff --git a/customer_check_in/data/ir_actions_act_window.xml b/customer_check_in/data/ir_actions_act_window.xml new file mode 100644 index 0000000000..29ba17aadb --- /dev/null +++ b/customer_check_in/data/ir_actions_act_window.xml @@ -0,0 +1,21 @@ + + + + Stations + event.event + [('x_recurring_access', '!=', False)] + kanban,list,form,search + {'default_x_recurring_access': True} + + + Attendances + x_attendance + list,search + + + Attendances Today Redirected From Event + x_attendance + list,search + {'search_default_x_event_id': active_id, 'search_default_date_today_filter_x_attendance': 1} + + diff --git a/customer_check_in/data/ir_actions_server.xml b/customer_check_in/data/ir_actions_server.xml new file mode 100644 index 0000000000..5c80f46e81 --- /dev/null +++ b/customer_check_in/data/ir_actions_server.xml @@ -0,0 +1,12 @@ + + + + + + code + Execute Code + + diff --git a/customer_check_in/data/ir_default.xml b/customer_check_in/data/ir_default.xml new file mode 100644 index 0000000000..026a2f289e --- /dev/null +++ b/customer_check_in/data/ir_default.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/customer_check_in/data/ir_model.xml b/customer_check_in/data/ir_model.xml new file mode 100644 index 0000000000..f18dec5481 --- /dev/null +++ b/customer_check_in/data/ir_model.xml @@ -0,0 +1,7 @@ + + + + Attendance + x_attendance + + diff --git a/customer_check_in/data/ir_model_access.xml b/customer_check_in/data/ir_model_access.xml new file mode 100644 index 0000000000..16308a9d8c --- /dev/null +++ b/customer_check_in/data/ir_model_access.xml @@ -0,0 +1,12 @@ + + + + + + x_attendance_user_access + + + + + + diff --git a/customer_check_in/data/ir_model_fields.xml b/customer_check_in/data/ir_model_fields.xml new file mode 100644 index 0000000000..3967208661 --- /dev/null +++ b/customer_check_in/data/ir_model_fields.xml @@ -0,0 +1,131 @@ + + + + + x_recurring_access + boolean + Recurring Access + + Enables the system to track multiple entries. + When enabled, the ticket type can be configured for either unlimited access until an expiry date, or a fixed number of available entrances. + + + + + + + + x_allowed_entries + integer + Allowed Entries + + + + + + x_event_registration_id + many2one + Event Registration + + event.registration + + + x_attendance_date + datetime + Attendance Date + + + + x_date_attendance_date + date + Date Attendance Date + + x_attendance_date + + + + x_event_id + many2one + Related Event + + x_event_registration_id.event_id + event.event + + + x_address_id + many2one + Venue + + x_event_registration_id.event_id.address_id + res.partner + + + x_responsible_id + many2one + Responsible + + x_event_registration_id.event_id.user_id + res.users + + + x_company_name + char + Company + + x_event_registration_id.company_name + + + + x_attendances_registered_today_ids + one2many + Attendances Registered Today + + x_attendance + x_event_id + + + + x_attendances_registered_today_amount + integer + Attendances Registered Today Amount + + x_attendances_registered_today_ids + + + + + + x_attendances_ids + one2many + Attendances + + x_attendance + x_event_registration_id + + + x_remaining_entries + integer + Remaining Entries + + x_attendances_ids,event_ticket_id + + + + x_registration_valid_until + datetime + Valid until + + event_id.date_end + + diff --git a/customer_check_in/data/ir_ui_menu.xml b/customer_check_in/data/ir_ui_menu.xml new file mode 100644 index 0000000000..c3a813cffe --- /dev/null +++ b/customer_check_in/data/ir_ui_menu.xml @@ -0,0 +1,27 @@ + + + + Check In + + + + + Stations + + + + + Attendees + + + + Configuration + + + + + Attendees + + + + diff --git a/customer_check_in/data/ir_ui_view.xml b/customer_check_in/data/ir_ui_view.xml new file mode 100644 index 0000000000..2722e2e453 --- /dev/null +++ b/customer_check_in/data/ir_ui_view.xml @@ -0,0 +1,226 @@ + + + + + Event event form view extended customer check in + + extension + event.event + 160 + form + + + + x_recurring_access + + + x_recurring_access + + + + + + Event event form view extended website_event_exhibitor customer check in + + extension + event.event + 8 + form + + + + true + + + + + Event event form view extended website_event_track customer check in + + extension + event.event + 165 + form + + + + true + + + + + Event event form view extended event_booth customer check in + + extension + event.event + 5 + form + + + + true + + + + + + + Event event form view Stations customer check in + + primary + event.event + 170 + form + + + + Station Name + + + + + + Event event kanban view Stations customer check in + event.event + 160 + kanban + + + + + + + + + + + + Open Registration Desk + + + + registered today + + + + + + + + + + Event event list view Stations customer check in + + primary + event.event + 160 + list + + + + Station + + + + + + + + + + Station search view + event.event + + search + + + + + + + + + + + + + + Event event tickets list form view extended customer check in + + extension + event.event.ticket + 160 + list + + + + + + + + + + + Event registration form view extension customer check in + + extension + event.registration + 160 + form + + + + + + + + + + + + + + + + + + + + + Attendances list view + x_attendance + + + + + + + + + + + + + + Attendances search view + x_attendance + + search + + + + + + + + + + + diff --git a/customer_check_in/static/description/icon.png b/customer_check_in/static/description/icon.png new file mode 100644 index 0000000000..653cb58424 Binary files /dev/null and b/customer_check_in/static/description/icon.png differ diff --git a/customer_check_in/static/description/index.html b/customer_check_in/static/description/index.html new file mode 100644 index 0000000000..e69de29bb2