Skip to content

Commit 2476565

Browse files
committed
[IMP] customer_check_in: add almost all specs features
1 parent 9e176a0 commit 2476565

12 files changed

+422
-4
lines changed

.weblate.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,11 @@
161161
"filemask": "custom_furniture/i18n/*.po",
162162
"new_base": "custom_furniture/i18n/custom_furniture.pot"
163163
},
164+
{
165+
"name": "customer_check_in",
166+
"filemask": "customer_check_in/i18n/*.po",
167+
"new_base": "customer_check_in/i18n/customer_check_in.pot"
168+
},
164169
{
165170
"name": "diy_workshops",
166171
"filemask": "diy_workshops/i18n/*.po",

customer_check_in/__manifest__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,23 @@
44
'category': 'Hospitality',
55
'depends': [
66
'base_industry_data',
7+
'event_booth',
78
'event_sale',
89
'knowledge',
910
'website_event',
11+
'website_event_exhibitor',
12+
'website_event_track_gantt',
13+
'web_studio',
1014
],
1115
'data': [
16+
'data/ir_model.xml',
17+
'data/ir_model_access.xml',
1218
'data/ir_model_fields.xml',
19+
'data/ir_default.xml',
20+
'data/ir_actions_server.xml',
21+
'data/base_automation.xml',
1322
'data/ir_actions_act_window.xml',
23+
'data/ir_actions_act_url.xml',
1424
'data/ir_ui_view.xml',
1525
'data/ir_ui_menu.xml',
1626
],
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="base_automation_on_registration_remaining_entries_change" model="base.automation">
4+
<field name="name">On Registration Remaining Entries Change</field>
5+
<field name="action_server_ids" eval="[(6, 0, [ref('action_set_registration_done')])]"/>
6+
<field name="model_id" ref="event.model_event_registration"/>
7+
<field name="on_change_field_ids" eval="[(6, 0, [ref('x_remaining_entries_field_event_registration')])]"/>
8+
<field name="filter_domain">[('id', '!=', False), ('x_remaining_entries', '&lt;=', 0), ('state', 'in', ['open'])]</field>
9+
<field name="trigger">on_change</field>
10+
</record>
11+
<!-- Comment le faire tourner également si la date limite est dépassée ?-->
12+
</odoo>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="action_url_open_registration_desk" model="ir.actions.act_url">
4+
<field name="name">Registration Desk</field>
5+
<field name="url">/odoo/registration-desk</field>
6+
<field name="target">self</field>
7+
</record>
8+
</odoo>

customer_check_in/data/ir_actions_act_window.xml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,19 @@
33
<record id="action_window_stations_view" model="ir.actions.act_window">
44
<field name="name">Stations</field>
55
<field name="res_model">event.event</field>
6-
<!-- <field name="domain">[('x_address', '!=', False)]</field> -->
7-
<field name="view_mode">list,form</field>
6+
<field name="domain">[('x_recurring_access', '!=', False)]</field>
7+
<field name="view_mode">kanban,list,form,search</field>
8+
<field name="context">{'default_x_recurring_access': True}</field>
9+
</record>
10+
<record id="action_window_attendances_view" model="ir.actions.act_window">
11+
<field name="name">Attendances</field>
12+
<field name="res_model">x_attendance</field>
13+
<field name="view_mode">list,search</field>
14+
</record>
15+
<record id="action_window_redirect_attendances_filtered_view" model="ir.actions.act_window">
16+
<field name="name">Attendances Today Redirected From Event</field>
17+
<field name="res_model">x_attendance</field>
18+
<field name="view_mode">list,search</field>
19+
<field name="context">{'search_default_x_event_id': active_id, 'search_default_date_today_filter_x_attendance': 1}</field>
820
</record>
921
</odoo>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="action_set_registration_done" model="ir.actions.server">
4+
<field name="code"><![CDATA[
5+
record['name'] = 'Fully registered'
6+
record.action_set_done()
7+
]]></field>
8+
<field name="model_id" ref="event.model_event_registration"/>
9+
<field name="state">code</field>
10+
<field name="name">Execute Code</field>
11+
</record>
12+
</odoo>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo noupdate="1">
3+
<!-- Make the field value false so you can see the placeholder -->
4+
<!-- <record id="default_x_allowed_entries_event_event_ticket" model="ir.default">
5+
<field name="field_id" ref="x_allowed_entries_field_event_event_ticket"/>
6+
<field name="json_value">false</field>
7+
</record> -->
8+
</odoo>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="x_attendance_model" model="ir.model">
4+
<field name="name">Attendance</field>
5+
<field name="model">x_attendance</field>
6+
</record>
7+
</odoo>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="x_attendance_user_access" model="ir.model.access">
4+
<field name="group_id" ref="base.group_user"/>
5+
<field name="model_id" ref="x_attendance_model"/>
6+
<field name="name">x_attendance_user_access</field>
7+
<field name="perm_create" eval="True"/>
8+
<field name="perm_read" eval="True"/>
9+
<field name="perm_unlink" eval="True"/>
10+
<field name="perm_write" eval="True"/>
11+
</record>
12+
</odoo>

customer_check_in/data/ir_model_fields.xml

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
3+
<!-- Event event fields -->
34
<record id="x_recurring_access_field_event_event" model="ir.model.fields">
45
<field name="name">x_recurring_access</field>
56
<field name="ttype">boolean</field>
@@ -9,4 +10,122 @@
910
When enabled, the ticket type can be configured for either unlimited access until an expiry date, or a fixed number of available entrances.
1011
</field>
1112
</record>
13+
14+
<!-- <record id="event.field_event_event__date_end" model="ir.model.fields">
15+
<field name="required" eval="False"/>
16+
</record> -->
17+
18+
<!-- Event ticket fields -->
19+
<record id="x_allowed_entries_field_event_event_ticket" model="ir.model.fields">
20+
<field name="name">x_allowed_entries</field>
21+
<field name="ttype">integer</field>
22+
<field name="field_description">Allowed Entries</field>
23+
<field name="model_id" ref="event.model_event_event_ticket"/>
24+
</record>
25+
26+
<!-- x_attendance fields -->
27+
<record id="x_event_registration_id_field_x_attendance" model="ir.model.fields">
28+
<field name="name">x_event_registration_id</field>
29+
<field name="ttype">many2one</field>
30+
<field name="field_description">Event Registration</field>
31+
<field name="model_id" ref="x_attendance_model"/>
32+
<field name="relation">event.registration</field>
33+
</record>
34+
<record id="x_attendance_date_field_x_attendance" model="ir.model.fields">
35+
<field name="name">x_attendance_date</field>
36+
<field name="ttype">datetime</field>
37+
<field name="field_description">Attendance Date</field>
38+
<field name="model_id" ref="x_attendance_model"/>
39+
</record>
40+
<record id="x_date_attendance_date_field_x_attendance" model="ir.model.fields">
41+
<field name="name">x_date_attendance_date</field>
42+
<field name="ttype">date</field>
43+
<field name="field_description">Date Attendance Date</field>
44+
<field name="model_id" ref="x_attendance_model"/>
45+
<field name="depends">x_attendance_date</field>
46+
<field name="compute"><![CDATA[
47+
for record in self:
48+
if record.x_attendance_date: record['x_date_attendance_date'] = record.x_attendance_date.date()
49+
else: record['x_attendance_date'] = False
50+
]]></field>
51+
</record>
52+
<record id="x_event_id_field_x_attendance" model="ir.model.fields">
53+
<field name="name">x_event_id</field>
54+
<field name="ttype">many2one</field>
55+
<field name="field_description">Related Event</field>
56+
<field name="model_id" ref="x_attendance_model"/>
57+
<field name="related">x_event_registration_id.event_id</field>
58+
<field name="relation">event.event</field>
59+
</record>
60+
<record id="x_address_id_field_x_attendance" model="ir.model.fields">
61+
<field name="name">x_address_id</field>
62+
<field name="ttype">many2one</field>
63+
<field name="field_description">Venue</field>
64+
<field name="model_id" ref="x_attendance_model"/>
65+
<field name="related">x_event_registration_id.event_id.address_id</field>
66+
<field name="relation">res.partner</field>
67+
</record>
68+
<record id="x_responsible_id_field_x_attendance" model="ir.model.fields">
69+
<field name="name">x_responsible_id</field>
70+
<field name="ttype">many2one</field>
71+
<field name="field_description">Responsible</field>
72+
<field name="model_id" ref="x_attendance_model"/>
73+
<field name="related">x_event_registration_id.event_id.user_id</field>
74+
<field name="relation">res.users</field>
75+
</record>
76+
<record id="x_company_name_field_x_attendance" model="ir.model.fields">
77+
<field name="name">x_company_name</field>
78+
<field name="ttype">char</field>
79+
<field name="field_description">Company</field>
80+
<field name="model_id" ref="x_attendance_model"/>
81+
<field name="related">x_event_registration_id.company_name</field>
82+
</record>
83+
84+
<record id="x_attendances_registered_today_ids_field_event_event" model="ir.model.fields">
85+
<field name="name">x_attendances_registered_today_ids</field>
86+
<field name="ttype">one2many</field>
87+
<field name="field_description">Attendances Registered Today</field>
88+
<field name="model_id" ref="event.model_event_event"/>
89+
<field name="relation">x_attendance</field>
90+
<field name="relation_field">x_event_id</field>
91+
<field name="domain" eval="[('x_date_attendance_date', '=', 'today')]"/>
92+
</record>
93+
<record id="x_attendances_registered_today_amount_field_event_event" model="ir.model.fields">
94+
<field name="name">x_attendances_registered_today_amount</field>
95+
<field name="ttype">integer</field>
96+
<field name="field_description">Attendances Registered Today Amount</field>
97+
<field name="model_id" ref="event.model_event_event"/>
98+
<field name="depends">x_attendances_registered_today_ids</field>
99+
<field name="compute"><![CDATA[
100+
for record in self: record['x_attendances_registered_today_amount'] = len(record.x_attendances_registered_today_ids)
101+
]]></field>
102+
</record>
103+
104+
<!-- Event registration fields -->
105+
<record id="x_attendances_ids_field_event_registration" model="ir.model.fields"> <!-- Add automatically when registration scanned -->
106+
<field name="name">x_attendances_ids</field>
107+
<field name="ttype">one2many</field>
108+
<field name="field_description">Attendances</field>
109+
<field name="model_id" ref="event.model_event_registration"/>
110+
<field name="relation">x_attendance</field>
111+
<field name="relation_field">x_event_registration_id</field>
112+
</record>
113+
<record id="x_remaining_entries_field_event_registration" model="ir.model.fields">
114+
<field name="name">x_remaining_entries</field>
115+
<field name="ttype">integer</field>
116+
<field name="field_description">Remaining Entries</field>
117+
<field name="model_id" ref="event.model_event_registration"/>
118+
<field name="depends">x_attendances_ids,event_ticket_id</field>
119+
<field name="compute"><![CDATA[
120+
for record in self:
121+
record['x_remaining_entries'] = record.event_ticket_id.x_allowed_entries - len(record.x_attendances_ids)
122+
]]></field>
123+
</record>
124+
<record id="x_registration_valid_until_field_event_registration" model="ir.model.fields">
125+
<field name="name">x_registration_valid_until</field>
126+
<field name="ttype">datetime</field>
127+
<field name="field_description">Valid until</field>
128+
<field name="model_id" ref="event.model_event_registration"/>
129+
<field name="related">event_id.date_end</field>
130+
</record>
12131
</odoo>

0 commit comments

Comments
 (0)