spree_cm_commissioner 2.1.3 → 2.1.4.pre.pre2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb +36 -0
- data/app/{models/concerns → interactors}/spree_cm_commissioner/guest_seat_updater.rb +1 -1
- data/app/interactors/spree_cm_commissioner/trip_clone_creator.rb +1 -0
- data/app/interactors/spree_cm_commissioner/variant_block_updater.rb +1 -0
- data/app/mailers/spree_cm_commissioner/guest_mailer.rb +18 -0
- data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +14 -0
- data/app/models/spree_cm_commissioner/block.rb +3 -5
- data/app/models/spree_cm_commissioner/check_in.rb +7 -1
- data/app/models/spree_cm_commissioner/check_in_rule.rb +6 -0
- data/app/models/spree_cm_commissioner/check_in_session.rb +16 -0
- data/app/models/spree_cm_commissioner/guest.rb +26 -1
- data/app/models/spree_cm_commissioner/import.rb +3 -1
- data/app/models/spree_cm_commissioner/line_item_decorator.rb +2 -1
- data/app/models/spree_cm_commissioner/seat_layout.rb +17 -2
- data/app/models/spree_cm_commissioner/seat_section.rb +1 -1
- data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +2 -2
- data/app/models/spree_cm_commissioner/taxon_decorator.rb +13 -0
- data/app/models/spree_cm_commissioner/trip.rb +36 -5
- data/app/models/spree_cm_commissioner/user_decorator.rb +3 -0
- data/app/models/spree_cm_commissioner/variant_decorator.rb +4 -3
- data/app/models/spree_cm_commissioner/vehicle.rb +10 -0
- data/app/serializers/spree/v2/storefront/product_serializer_decorator.rb +5 -0
- data/app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb +3 -0
- data/app/serializers/spree/v2/storefront/user_serializer_decorator.rb +1 -1
- data/app/serializers/spree_cm_commissioner/v2/storefront/block_serializer.rb +1 -1
- data/app/serializers/spree_cm_commissioner/v2/storefront/trip_serializer.rb +1 -0
- data/app/serializers/spree_cm_commissioner/v2/storefront/trip_variant_serializer.rb +0 -2
- data/app/serializers/spree_cm_commissioner/v2/storefront/trip_vehicle_serializer.rb +0 -2
- data/app/services/spree_cm_commissioner/imports/create_order_service.rb +27 -12
- data/app/views/spree/admin/shared/_vectors_option_type_tabs.html.erb +8 -2
- data/app/views/spree/admin/vectors/icons/index.html.erb +11 -7
- data/app/views/spree_cm_commissioner/guest_mailer/_greeting.html.erb +14 -0
- data/app/views/spree_cm_commissioner/guest_mailer/_mailer_stylesheets.html.erb +213 -0
- data/app/views/spree_cm_commissioner/guest_mailer/send_ticket_to_guest.html.erb +15 -0
- data/app/views/spree_cm_commissioner/layouts/guest_mailer.html.erb +35 -0
- data/config/locales/en.yml +2 -0
- data/config/locales/km.yml +2 -0
- data/config/routes.rb +1 -2
- data/db/migrate/20250827022503_create_spree_cm_commissioner_sessions.rb +14 -0
- data/db/migrate/20250827022757_create_spree_cm_commissioner_check_in_rules.rb +13 -0
- data/db/migrate/20250827032901_add_check_in_session_to_check_ins.rb +5 -0
- data/db/migrate/20250827083828_add_unique_index_on_guest_id_check_in_session_id_to_cm_check_ins.rb +11 -0
- data/db/migrate/20250903085931_add_importable_to_cm_imports.rb +5 -0
- data/db/migrate/20250911100738_drop_cm_variant_blocks.rb +5 -0
- data/db/migrate/20250911100835_add_variant_id_to_cm_blocks.rb +5 -0
- data/db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb +11 -0
- data/db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb +11 -0
- data/lib/spree_cm_commissioner/test_helper/factories/check_in_session_factory.rb +11 -0
- data/lib/spree_cm_commissioner/version.rb +1 -1
- metadata +23 -8
- data/app/models/spree_cm_commissioner/variant_block.rb +0 -17
- data/app/serializers/spree_cm_commissioner/v2/storefront/variant_block_serializer.rb +0 -9
- data/lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb +0 -7
@@ -2,7 +2,7 @@
|
|
2
2
|
<li class="nav-item">
|
3
3
|
<%= link_to Spree.t(:variant),
|
4
4
|
admin_vectors_option_values_path(kind: :variant),
|
5
|
-
class: "nav-link #{'active' if kind == "variant"}"
|
5
|
+
class: "nav-link #{'active' if kind == "variant"}"
|
6
6
|
%>
|
7
7
|
</li>
|
8
8
|
<li class="nav-item">
|
@@ -17,5 +17,11 @@
|
|
17
17
|
class: "nav-link #{'active' if kind == "vendor"}"
|
18
18
|
%>
|
19
19
|
</li>
|
20
|
+
<li class="nav-item">
|
21
|
+
<%= link_to Spree.t(:vehicle),
|
22
|
+
admin_vectors_option_values_path(kind: :vehicle),
|
23
|
+
class: "nav-link #{'active' if kind == "vehicle"}"
|
24
|
+
%>
|
25
|
+
</li>
|
20
26
|
<br><br>
|
21
|
-
<% end %>
|
27
|
+
<% end %>
|
@@ -1,17 +1,20 @@
|
|
1
|
+
<% current_path_prefix = params[:path_prefix] || SpreeCmCommissioner::VectorIcon::TYPES.first %>
|
2
|
+
|
1
3
|
<% content_for :page_title do %>
|
2
4
|
<%= Spree.t(:vectors) %>
|
3
5
|
<% end %>
|
6
|
+
|
4
7
|
<%= render partial: 'spree/admin/shared/vectors_tabs', locals: { current: :icons } %>
|
8
|
+
|
5
9
|
<% content_for :page_tabs do %>
|
6
10
|
<% SpreeCmCommissioner::VectorIcon::TYPES.each do |path_prefix| %>
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
</li>
|
13
|
-
<% end %>
|
11
|
+
<% selected = current_path_prefix == path_prefix %>
|
12
|
+
<% default_params = { path_prefix: path_prefix, extension: '', page: 1, per_page: params[:per_page], query: '' } %>
|
13
|
+
<% overrided_params = selected ? default_params : params.merge(default_params).permit(default_params.keys) %>
|
14
|
+
<%= link_to path_prefix.humanize.upcase, overrided_params, class: "nav-link #{'active' if selected}" %>
|
15
|
+
<% end %>
|
14
16
|
<% end %>
|
17
|
+
|
15
18
|
<small class="form-text text-muted">
|
16
19
|
<ul>
|
17
20
|
<% allow_extensions = SpreeCmCommissioner::VectorIcon::ACCEPTED_EXTENSIONS.to_sentence %>
|
@@ -19,6 +22,7 @@
|
|
19
22
|
<li><%= raw I18n.t('vectors.icons.total', total_in_page: @collection.size, total_count: @collection.total_count) %></li>
|
20
23
|
</ul>
|
21
24
|
</small>
|
25
|
+
|
22
26
|
<div class="table-responsive">
|
23
27
|
<table class="table">
|
24
28
|
<tbody class="pb-3">
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="content-cell flex" id="greeting-card">
|
2
|
+
<div>
|
3
|
+
<%= image_tag "mailer/bookme-plus.png", class: "icon-bookme-plus"%>
|
4
|
+
<div class="hello"><%= I18n.t('mail.order_mailer.hello', full_name: user_full_name(order))%></div>
|
5
|
+
<div class="description">
|
6
|
+
<%= I18n.t('mail.order_mailer.booking_event', order_number: line_item.number || 'NA') %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="qr-container">
|
11
|
+
<%= image_tag main_app.url_for("/li/#{line_item.id}"), class: 'qr-code' %>
|
12
|
+
<p>Show your QR to enter</p>
|
13
|
+
</div>
|
14
|
+
</div>
|
@@ -0,0 +1,213 @@
|
|
1
|
+
<style type="text/css" rel="stylesheet" media="all">
|
2
|
+
/* Custom Mailer ------------------------------ */
|
3
|
+
|
4
|
+
#confirm-email {
|
5
|
+
font-family: "Poppins", "Nunito Sans", Helvetica, Arial, sans-serif;
|
6
|
+
font-size: 16px;
|
7
|
+
}
|
8
|
+
#confirm-email p {
|
9
|
+
margin: 0;
|
10
|
+
}
|
11
|
+
#confirm-email h2 {
|
12
|
+
margin-bottom: 24px;
|
13
|
+
font-size: 22px;
|
14
|
+
font-weight: 700;
|
15
|
+
line-height: 28px;
|
16
|
+
}
|
17
|
+
#confirm-email hr {
|
18
|
+
height: 1.5px;
|
19
|
+
background-color: #dddfe2;
|
20
|
+
border: none;
|
21
|
+
margin: 24px 0;
|
22
|
+
}
|
23
|
+
.email-body_inner {
|
24
|
+
background-color: transparent;
|
25
|
+
padding-top: 40px;
|
26
|
+
}
|
27
|
+
#confirm-email .content-cell {
|
28
|
+
padding: 24px;
|
29
|
+
margin-bottom: 24px;
|
30
|
+
border-radius: 25px;
|
31
|
+
border: 1px solid #dddfe2;
|
32
|
+
}
|
33
|
+
|
34
|
+
#confirm-email .flex {
|
35
|
+
display: flex;
|
36
|
+
}
|
37
|
+
#confirm-email .mtb-24 {
|
38
|
+
margin: 24px 0;
|
39
|
+
}
|
40
|
+
#confirm-email .mb-24 {
|
41
|
+
margin-bottom: 24px;
|
42
|
+
}
|
43
|
+
#confirm-email .mb-16 {
|
44
|
+
margin-bottom: 16px;
|
45
|
+
}
|
46
|
+
#confirm-email .f-14 {
|
47
|
+
font-size: 14px;
|
48
|
+
}
|
49
|
+
#confirm-email .view-map {
|
50
|
+
text-decoration: none;
|
51
|
+
color: #6444D8;
|
52
|
+
}
|
53
|
+
#confirm-email #greeting-card {
|
54
|
+
color: #fff;
|
55
|
+
margin-top: 40px;
|
56
|
+
background: url(<%= image_path("mailer/line_item-mailer-bg.png") %>),
|
57
|
+
#35ace0;
|
58
|
+
}
|
59
|
+
#confirm-email #greeting-card p,
|
60
|
+
#confirm-email #greeting-card .hello,
|
61
|
+
#confirm-email #greeting-card .description {
|
62
|
+
color: #fff;
|
63
|
+
}
|
64
|
+
#confirm-email .align-right {
|
65
|
+
vertical-align: top;
|
66
|
+
}
|
67
|
+
#confirm-email .icon-bookme-plus {
|
68
|
+
width: 212px;
|
69
|
+
margin-bottom: 56px;
|
70
|
+
margin-top: 20px;
|
71
|
+
}
|
72
|
+
#confirm-email #greeting-card .hello {
|
73
|
+
font-size: 22px;
|
74
|
+
font-style: normal;
|
75
|
+
font-weight: 700;
|
76
|
+
line-height: 28px;
|
77
|
+
margin-bottom: 12px;
|
78
|
+
}
|
79
|
+
#confirm-email .qr-container {
|
80
|
+
padding: 20px 20px 0;
|
81
|
+
text-align: center;
|
82
|
+
}
|
83
|
+
#confirm-email .qr-container .qr-code {
|
84
|
+
width: 200px;
|
85
|
+
border-radius: 26px;
|
86
|
+
background-color: #fff;
|
87
|
+
margin-bottom: 12px;
|
88
|
+
}
|
89
|
+
#confirm-email .purchase_image {
|
90
|
+
padding: 0 10px 0 0;
|
91
|
+
}
|
92
|
+
#confirm-email .purchase_item_price {
|
93
|
+
margin-bottom: 8px;
|
94
|
+
}
|
95
|
+
#confirm-email .purchase-summary-item {
|
96
|
+
margin-top: 10px;
|
97
|
+
}
|
98
|
+
.purchase_total {
|
99
|
+
font-weight: normal;
|
100
|
+
text-align: left;
|
101
|
+
}
|
102
|
+
#confirm-email .purchase-summary_sub_total {
|
103
|
+
margin-bottom: 14px;
|
104
|
+
}
|
105
|
+
#confirm-email .purchase_footer {
|
106
|
+
border-top: none;
|
107
|
+
}
|
108
|
+
.purchase_total--label {
|
109
|
+
text-align: left;
|
110
|
+
}
|
111
|
+
#confirm-email .vertical-separater {
|
112
|
+
margin: 0 18px;
|
113
|
+
width: 2px;
|
114
|
+
height: auto;
|
115
|
+
background: #F2F2F2;
|
116
|
+
}
|
117
|
+
#confirm-email .two-columns .two-columns-item {
|
118
|
+
width: 45%;
|
119
|
+
}
|
120
|
+
#confirm-email .two-columns .two-columns-item_left {
|
121
|
+
width: 43%;
|
122
|
+
}
|
123
|
+
#confirm-email .two-columns .two-columns-item_detail {
|
124
|
+
margin-bottom: 16px;
|
125
|
+
}
|
126
|
+
#confirm-email .two-columns_icon {
|
127
|
+
min-width: 48px;
|
128
|
+
height: 48px;
|
129
|
+
background: #f1f1f1;
|
130
|
+
border-radius: 50%;
|
131
|
+
display: flex;
|
132
|
+
}
|
133
|
+
#confirm-email .two-columns_icon .vendor-logo {
|
134
|
+
max-width: 48px;
|
135
|
+
border-radius: 50%;
|
136
|
+
}
|
137
|
+
#confirm-email .two-columns_text-container {
|
138
|
+
margin-left: 14px;
|
139
|
+
}
|
140
|
+
#confirm-email .two-columns_title {
|
141
|
+
color: #49454F;
|
142
|
+
font-size: 16px;
|
143
|
+
font-style: normal;
|
144
|
+
font-weight: 400;
|
145
|
+
line-height: 24px;
|
146
|
+
letter-spacing: 0.1px;
|
147
|
+
}
|
148
|
+
#confirm-email .two-columns_description {
|
149
|
+
color: #000;
|
150
|
+
font-size: 16px;
|
151
|
+
font-style: normal;
|
152
|
+
font-weight: 400;
|
153
|
+
line-height: 24px;
|
154
|
+
letter-spacing: 0.1px;
|
155
|
+
}
|
156
|
+
#confirm-email .email-footer {
|
157
|
+
padding: 24px;
|
158
|
+
}
|
159
|
+
#confirm-email .email-footer .email-footer_inner {
|
160
|
+
color: #49454F;
|
161
|
+
text-align: center;
|
162
|
+
font-size: 16px;
|
163
|
+
font-style: normal;
|
164
|
+
font-weight: 400;
|
165
|
+
line-height: 24px;
|
166
|
+
letter-spacing: 0.1px;
|
167
|
+
}
|
168
|
+
.email-footer .email-footer_inner h2 {
|
169
|
+
text-align: center;
|
170
|
+
}
|
171
|
+
#confirm-email .email-footer .social_icons {
|
172
|
+
display: inline-block;
|
173
|
+
text-align: center;
|
174
|
+
}
|
175
|
+
#confirm-email .email-footer .social_icon {
|
176
|
+
background: #fff;
|
177
|
+
border-radius: 50%;
|
178
|
+
display: inline-block;
|
179
|
+
padding: 12px;
|
180
|
+
}
|
181
|
+
#confirm-email .email-footer .social_icon i {
|
182
|
+
color: #939393;
|
183
|
+
font-size: 22px;
|
184
|
+
}
|
185
|
+
#confirm-email .email-footer .email-footer_links a {
|
186
|
+
color: #6444D8;
|
187
|
+
text-decoration: none;
|
188
|
+
}
|
189
|
+
#confirm-email .notice-info .description {
|
190
|
+
padding-left: 12px;
|
191
|
+
}
|
192
|
+
#confirm-email .notice-info a {
|
193
|
+
color: #6444D8;
|
194
|
+
text-decoration: none;
|
195
|
+
}
|
196
|
+
|
197
|
+
@media (prefers-color-scheme: dark) {
|
198
|
+
#confirm-email .content-cell {
|
199
|
+
background-color: #333333;
|
200
|
+
}
|
201
|
+
}
|
202
|
+
.mail-icon {
|
203
|
+
width: 24px;
|
204
|
+
height: 24px;
|
205
|
+
margin: auto;
|
206
|
+
}
|
207
|
+
|
208
|
+
@media only screen and (max-width: 600px) {
|
209
|
+
.content-cell {
|
210
|
+
padding: 34px 15px !important;
|
211
|
+
}
|
212
|
+
}
|
213
|
+
</style>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= render 'spree_cm_commissioner/guest_mailer/mailer_stylesheets' %>
|
2
|
+
|
3
|
+
<table class="email-body" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
4
|
+
<tr>
|
5
|
+
<td align="center">
|
6
|
+
<table class="email-body_inner" width="570" cellpadding="0" cellspacing="0" role="presentation">
|
7
|
+
<tr>
|
8
|
+
<td id="confirm-email">
|
9
|
+
<%= render 'spree_cm_commissioner/guest_mailer/greeting', order: @order, line_item: @line_item, guest: @guest %>
|
10
|
+
</td>
|
11
|
+
</tr>
|
12
|
+
</table>
|
13
|
+
</td>
|
14
|
+
</tr>
|
15
|
+
</table>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
5
|
+
<meta name="x-apple-disable-message-reformatting"/>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
7
|
+
<link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
|
8
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
9
|
+
<%= render partial: 'spree/shared/base_mailer_stylesheets' %>
|
10
|
+
<%= render partial: 'spree_cm_commissioner/guest_mailer/mailer_stylesheets' %>
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<table class="email-wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation" id="confirm-email">
|
14
|
+
<tr>
|
15
|
+
<td align="center">
|
16
|
+
<table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
17
|
+
<!-- Email Body -->
|
18
|
+
<%= yield%>
|
19
|
+
</table>
|
20
|
+
</td>
|
21
|
+
</tr>
|
22
|
+
<tr>
|
23
|
+
<td height="60px">
|
24
|
+
<table class="email-footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
|
25
|
+
<tr>
|
26
|
+
<td>
|
27
|
+
<%= render 'spree_cm_commissioner/order_mailer/footer', store: @order.store%>
|
28
|
+
</td>
|
29
|
+
</tr>
|
30
|
+
</table>
|
31
|
+
</td>
|
32
|
+
</tr>
|
33
|
+
</table>
|
34
|
+
</body>
|
35
|
+
</html>
|
data/config/locales/en.yml
CHANGED
data/config/locales/km.yml
CHANGED
data/config/routes.rb
CHANGED
@@ -547,8 +547,6 @@ Spree::Core::Engine.add_routes do
|
|
547
547
|
end
|
548
548
|
|
549
549
|
namespace :storefront do
|
550
|
-
resources :inventory_item
|
551
|
-
|
552
550
|
resources :waiting_room_sessions, only: :create
|
553
551
|
resources :vattanac_banks, only: %i[create]
|
554
552
|
resource :cart, controller: :cart, only: %i[show create destroy] do
|
@@ -658,6 +656,7 @@ Spree::Core::Engine.add_routes do
|
|
658
656
|
resources :anonymous_line_items, path: 'a', only: %i[show]
|
659
657
|
resources :anonymous_orders, path: 'o', only: %i[show]
|
660
658
|
|
659
|
+
resources :seat_layouts, only: %i[show]
|
661
660
|
resources :inventory_items, only: %i[index]
|
662
661
|
namespace :transit do
|
663
662
|
resources :draft_orders, only: %i[create]
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateSpreeCmCommissionerSessions < ActiveRecord::Migration[7.0]
|
2
|
+
def change
|
3
|
+
create_table :cm_check_in_sessions, if_not_exists: true do |t|
|
4
|
+
t.string :name
|
5
|
+
t.text :description
|
6
|
+
t.integer :position
|
7
|
+
t.references :event, foreign_key: { to_table: :spree_taxons }
|
8
|
+
t.datetime :start_time
|
9
|
+
t.datetime :end_time
|
10
|
+
t.boolean :is_archived, default: false
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateSpreeCmCommissionerCheckInRules < ActiveRecord::Migration[7.0]
|
2
|
+
def change
|
3
|
+
create_table :cm_check_in_rules, if_not_exists: true do |t|
|
4
|
+
t.references :check_in_session, foreign_key: { to_table: :cm_check_in_sessions }
|
5
|
+
t.string :ruleable_type
|
6
|
+
t.integer :ruleable_id
|
7
|
+
t.jsonb :preferences, default: {}
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :cm_check_in_rules, [:ruleable_type, :ruleable_id], if_not_exists: true
|
12
|
+
end
|
13
|
+
end
|
data/db/migrate/20250827083828_add_unique_index_on_guest_id_check_in_session_id_to_cm_check_ins.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddUniqueIndexOnGuestIdCheckInSessionIdToCmCheckIns < ActiveRecord::Migration[7.0]
|
2
|
+
def change
|
3
|
+
unless index_exists?(:cm_check_ins, [:guest_id, :check_in_session_id], unique: true)
|
4
|
+
add_index :cm_check_ins, [:guest_id, :check_in_session_id], unique: true, name: "index_check_ins_on_guest_and_check_in_session"
|
5
|
+
end
|
6
|
+
|
7
|
+
unless index_exists?(:cm_check_ins, :guest_id, unique: true, where: "check_in_session_id IS NULL")
|
8
|
+
add_index :cm_check_ins, :guest_id, unique: true, where: "check_in_session_id IS NULL", name: "index_check_ins_on_guest_when_check_in_session_null"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddMetadataColumnsToCmVehicles < ActiveRecord::Migration[7.0]
|
2
|
+
def up
|
3
|
+
add_column :cm_vehicles, :public_metadata, :jsonb, default: '{}', if_not_exists: true
|
4
|
+
add_column :cm_vehicles, :private_metadata, :jsonb, default: '{}', if_not_exists: true
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
remove_column :cm_vehicles, :public_metadata, if_exists: true
|
9
|
+
remove_column :cm_vehicles, :private_metadata, if_exists: true
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddMetadataColumnsToCmTrips < ActiveRecord::Migration[7.0]
|
2
|
+
def up
|
3
|
+
add_column :cm_trips, :public_metadata, :jsonb, default: '{}', if_not_exists: true
|
4
|
+
add_column :cm_trips, :private_metadata, :jsonb, default: '{}', if_not_exists: true
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
remove_column :cm_trips, :public_metadata, if_exists: true
|
9
|
+
remove_column :cm_trips, :private_metadata, if_exists: true
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :cm_check_in_session, class: SpreeCmCommissioner::CheckInSession do
|
3
|
+
name { "Test Check In Session" }
|
4
|
+
description { "Description" }
|
5
|
+
position { 1 }
|
6
|
+
is_archived { false }
|
7
|
+
start_time { 1.hour.from_now }
|
8
|
+
end_time { 2.hours.from_now }
|
9
|
+
association :event, factory: :cm_taxon_event
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_cm_commissioner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.4.pre.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- You
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-09-
|
11
|
+
date: 2025-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree
|
@@ -943,6 +943,7 @@ files:
|
|
943
943
|
- app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb
|
944
944
|
- app/controllers/spree/api/v2/storefront/reset_passwords_controller.rb
|
945
945
|
- app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
|
946
|
+
- app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb
|
946
947
|
- app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
|
947
948
|
- app/controllers/spree/api/v2/storefront/transit/draft_orders_controller.rb
|
948
949
|
- app/controllers/spree/api/v2/storefront/trip_places_controller.rb
|
@@ -1142,6 +1143,7 @@ files:
|
|
1142
1143
|
- app/interactors/spree_cm_commissioner/firebase_id_token_provider.rb
|
1143
1144
|
- app/interactors/spree_cm_commissioner/google_places_fetcher.rb
|
1144
1145
|
- app/interactors/spree_cm_commissioner/guest_id_card_manager.rb
|
1146
|
+
- app/interactors/spree_cm_commissioner/guest_seat_updater.rb
|
1145
1147
|
- app/interactors/spree_cm_commissioner/host_matcher.rb
|
1146
1148
|
- app/interactors/spree_cm_commissioner/id_card_image_updater.rb
|
1147
1149
|
- app/interactors/spree_cm_commissioner/image_saver.rb
|
@@ -1285,11 +1287,11 @@ files:
|
|
1285
1287
|
- app/mailers/spree_cm_commissioner/application_mailer.rb
|
1286
1288
|
- app/mailers/spree_cm_commissioner/crew_invite_mailer.rb
|
1287
1289
|
- app/mailers/spree_cm_commissioner/event_transactional_mailer.rb
|
1290
|
+
- app/mailers/spree_cm_commissioner/guest_mailer.rb
|
1288
1291
|
- app/mailers/spree_cm_commissioner/pin_code_mailer.rb
|
1289
1292
|
- app/mailers/spree_cm_commissioner/team_invite_mailer.rb
|
1290
1293
|
- app/models/.gitkeep
|
1291
1294
|
- app/models/concerns/spree_cm_commissioner/event_check_in_flowable.rb
|
1292
|
-
- app/models/concerns/spree_cm_commissioner/guest_seat_updater.rb
|
1293
1295
|
- app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
|
1294
1296
|
- app/models/concerns/spree_cm_commissioner/json_preference_validator.rb
|
1295
1297
|
- app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
|
@@ -1334,6 +1336,8 @@ files:
|
|
1334
1336
|
- app/models/spree_cm_commissioner/check_in.rb
|
1335
1337
|
- app/models/spree_cm_commissioner/check_in_ability.rb
|
1336
1338
|
- app/models/spree_cm_commissioner/check_in_record.rb
|
1339
|
+
- app/models/spree_cm_commissioner/check_in_rule.rb
|
1340
|
+
- app/models/spree_cm_commissioner/check_in_session.rb
|
1337
1341
|
- app/models/spree_cm_commissioner/classification_decorator.rb
|
1338
1342
|
- app/models/spree_cm_commissioner/cms_page_decorator.rb
|
1339
1343
|
- app/models/spree_cm_commissioner/configuration.rb
|
@@ -1494,7 +1498,6 @@ files:
|
|
1494
1498
|
- app/models/spree_cm_commissioner/user_place.rb
|
1495
1499
|
- app/models/spree_cm_commissioner/user_profile.rb
|
1496
1500
|
- app/models/spree_cm_commissioner/user_taxon.rb
|
1497
|
-
- app/models/spree_cm_commissioner/variant_block.rb
|
1498
1501
|
- app/models/spree_cm_commissioner/variant_decorator.rb
|
1499
1502
|
- app/models/spree_cm_commissioner/variant_guest_card_class.rb
|
1500
1503
|
- app/models/spree_cm_commissioner/variant_options.rb
|
@@ -1838,7 +1841,6 @@ files:
|
|
1838
1841
|
- app/serializers/spree_cm_commissioner/v2/storefront/trip_vendor_serializer.rb
|
1839
1842
|
- app/serializers/spree_cm_commissioner/v2/storefront/user_contact_serializer.rb
|
1840
1843
|
- app/serializers/spree_cm_commissioner/v2/storefront/user_identity_provider_serializer.rb
|
1841
|
-
- app/serializers/spree_cm_commissioner/v2/storefront/variant_block_serializer.rb
|
1842
1844
|
- app/serializers/spree_cm_commissioner/v2/storefront/vendor_include_product_serializer.rb
|
1843
1845
|
- app/serializers/spree_cm_commissioner/v2/storefront/video_serializer.rb
|
1844
1846
|
- app/serializers/spree_cm_commissioner/v2/storefront/waiting_room_session_serializer.rb
|
@@ -2310,8 +2312,12 @@ files:
|
|
2310
2312
|
- app/views/spree_cm_commissioner/event_transactional_mailer/send_to_organizer.html.erb
|
2311
2313
|
- app/views/spree_cm_commissioner/event_transactional_mailer/send_to_participant.html.erb
|
2312
2314
|
- app/views/spree_cm_commissioner/guest_cards/show.html.erb
|
2315
|
+
- app/views/spree_cm_commissioner/guest_mailer/_greeting.html.erb
|
2316
|
+
- app/views/spree_cm_commissioner/guest_mailer/_mailer_stylesheets.html.erb
|
2317
|
+
- app/views/spree_cm_commissioner/guest_mailer/send_ticket_to_guest.html.erb
|
2313
2318
|
- app/views/spree_cm_commissioner/layouts/crew_invite_mailer.html.erb
|
2314
2319
|
- app/views/spree_cm_commissioner/layouts/event_transactional_mailer.html.erb
|
2320
|
+
- app/views/spree_cm_commissioner/layouts/guest_mailer.html.erb
|
2315
2321
|
- app/views/spree_cm_commissioner/layouts/line_item_mailer.html.erb
|
2316
2322
|
- app/views/spree_cm_commissioner/layouts/order_mailer.html.erb
|
2317
2323
|
- app/views/spree_cm_commissioner/layouts/team_invite_mailer.html.erb
|
@@ -2728,6 +2734,15 @@ files:
|
|
2728
2734
|
- db/migrate/20250812121745_add_data_fill_stage_phase_to_cm_guests.rb
|
2729
2735
|
- db/migrate/20250814073854_add_call_to_action_to_spree_products.rb
|
2730
2736
|
- db/migrate/20250826013549_add_delete_at_to_cm_customer_notifications.rb
|
2737
|
+
- db/migrate/20250827022503_create_spree_cm_commissioner_sessions.rb
|
2738
|
+
- db/migrate/20250827022757_create_spree_cm_commissioner_check_in_rules.rb
|
2739
|
+
- db/migrate/20250827032901_add_check_in_session_to_check_ins.rb
|
2740
|
+
- db/migrate/20250827083828_add_unique_index_on_guest_id_check_in_session_id_to_cm_check_ins.rb
|
2741
|
+
- db/migrate/20250903085931_add_importable_to_cm_imports.rb
|
2742
|
+
- db/migrate/20250911100738_drop_cm_variant_blocks.rb
|
2743
|
+
- db/migrate/20250911100835_add_variant_id_to_cm_blocks.rb
|
2744
|
+
- db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb
|
2745
|
+
- db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb
|
2731
2746
|
- docker-compose.yml
|
2732
2747
|
- docs/option_types/attr_types.md
|
2733
2748
|
- docs/private_key.pem
|
@@ -2763,6 +2778,7 @@ files:
|
|
2763
2778
|
- lib/spree_cm_commissioner/test_helper/factories/blazer_query_factory.rb
|
2764
2779
|
- lib/spree_cm_commissioner/test_helper/factories/block_factory.rb
|
2765
2780
|
- lib/spree_cm_commissioner/test_helper/factories/check_in_factory.rb
|
2781
|
+
- lib/spree_cm_commissioner/test_helper/factories/check_in_session_factory.rb
|
2766
2782
|
- lib/spree_cm_commissioner/test_helper/factories/cms_page_factory.rb
|
2767
2783
|
- lib/spree_cm_commissioner/test_helper/factories/country_factory.rb
|
2768
2784
|
- lib/spree_cm_commissioner/test_helper/factories/customer_factory.rb
|
@@ -2828,7 +2844,6 @@ files:
|
|
2828
2844
|
- lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
|
2829
2845
|
- lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
|
2830
2846
|
- lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb
|
2831
|
-
- lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb
|
2832
2847
|
- lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb
|
2833
2848
|
- lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb
|
2834
2849
|
- lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb
|
@@ -2887,9 +2902,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
2887
2902
|
version: '2.7'
|
2888
2903
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
2889
2904
|
requirements:
|
2890
|
-
- - "
|
2905
|
+
- - ">"
|
2891
2906
|
- !ruby/object:Gem::Version
|
2892
|
-
version:
|
2907
|
+
version: 1.3.1
|
2893
2908
|
requirements:
|
2894
2909
|
- none
|
2895
2910
|
rubygems_version: 3.4.1
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class VariantBlock < Base
|
3
|
-
belongs_to :variant, class_name: 'Spree::Variant', optional: false
|
4
|
-
belongs_to :trip, class_name: 'SpreeCmCommissioner::Trip', optional: false
|
5
|
-
belongs_to :block, class_name: 'SpreeCmCommissioner::Block', optional: false
|
6
|
-
|
7
|
-
validates :block_id, uniqueness: { scope: %i[variant_id trip_id] }
|
8
|
-
|
9
|
-
before_validation :set_trip, if: -> { trip_id.blank? }
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def set_trip
|
14
|
-
self.trip = variant&.product&.trip
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|