spree_cm_commissioner 2.5.2.pre.pre2 → 2.5.2.pre.pre3
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/.github/workflows/test_and_build_gem.yml +1 -1
- data/Gemfile.lock +1 -1
- data/app/controllers/concerns/spree/api/v2/product_list_includes_decorator.rb +37 -0
- data/app/controllers/spree/api/v2/storefront/active_homepage_events_controller.rb +6 -1
- data/app/controllers/spree/api/v2/storefront/homepage_sections_controller.rb +41 -4
- data/app/controllers/spree/api/v2/storefront/invite_guests_controller.rb +11 -2
- data/app/controllers/spree/api/v2/storefront/products_controller_decorator.rb +27 -0
- data/app/controllers/spree/api/v2/storefront/taxons_controller_decorator.rb +92 -0
- data/app/controllers/spree_cm_commissioner/application_controller_decorator.rb +0 -2
- data/app/jobs/spree_cm_commissioner/line_items/sync_event_date_job.rb +10 -0
- data/app/models/concerns/spree_cm_commissioner/line_item_durationable.rb +30 -23
- data/app/models/concerns/spree_cm_commissioner/variant_options_concern.rb +47 -6
- data/app/models/spree/stock/quantifier_decorator.rb +26 -0
- data/app/models/spree_cm_commissioner/export.rb +1 -3
- data/app/models/spree_cm_commissioner/guest.rb +3 -3
- data/app/models/spree_cm_commissioner/taxon_decorator.rb +27 -1
- data/app/serializers/spree/v2/storefront/product_serializer_decorator.rb +36 -7
- data/app/services/spree_cm_commissioner/line_items/sync_event_date.rb +22 -0
- data/app/services/spree_cm_commissioner/trips/create_single_leg.rb +14 -19
- data/app/services/spree_cm_commissioner/trips/update_single_leg.rb +2 -4
- data/app/services/spree_cm_commissioner/trips/variants/create.rb +6 -6
- data/config/routes.rb +0 -27
- data/lib/spree_cm_commissioner/transit/route_stop_collection.rb +0 -28
- data/lib/spree_cm_commissioner/transit/trip_form.rb +0 -24
- data/lib/spree_cm_commissioner/transit/trip_stop_form.rb +1 -5
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/lib/spree_cm_commissioner.rb +0 -1
- metadata +8 -33
- data/app/controllers/concerns/spree_cm_commissioner/events/role_authorization.rb +0 -36
- data/app/controllers/spree/events/base_controller.rb +0 -35
- data/app/controllers/spree/events/check_ins_controller.rb +0 -23
- data/app/controllers/spree/events/data_exports_controller.rb +0 -41
- data/app/controllers/spree/events/errors_controller.rb +0 -19
- data/app/controllers/spree/events/guests_controller.rb +0 -139
- data/app/controllers/spree/events/state_changes_controller.rb +0 -11
- data/app/errors/spree_cm_commissioner/unauthorized_event_error.rb +0 -4
- data/app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb +0 -19
- data/app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb +0 -8
- data/app/jobs/spree_cm_commissioner/export_csv_job.rb +0 -7
- data/app/models/spree_cm_commissioner/exports/export_guest_csv.rb +0 -33
- data/app/services/spree_cm_commissioner/exports/export_guest_csv_service.rb +0 -48
- data/app/views/spree/events/check_ins/index.html.erb +0 -59
- data/app/views/spree/events/data_exports/index.html.erb +0 -54
- data/app/views/spree/events/errors/_error.html.erb +0 -7
- data/app/views/spree/events/errors/forbidden.html.erb +0 -1
- data/app/views/spree/events/errors/resource_not_found.html.erb +0 -1
- data/app/views/spree/events/guests/_check_in_status.html.erb +0 -44
- data/app/views/spree/events/guests/_form.html.erb +0 -37
- data/app/views/spree/events/guests/_swap_guest_bib_number.html.erb +0 -18
- data/app/views/spree/events/guests/edit.html.erb +0 -86
- data/app/views/spree/events/guests/index.html.erb +0 -102
- data/app/views/spree/events/shared/_event_switcher.html.erb +0 -39
- data/app/views/spree/events/shared/_filters.html.erb +0 -50
- data/app/views/spree/events/shared/_guest_tabs.html.erb +0 -19
- data/app/views/spree/events/shared/_header.html.erb +0 -10
- data/app/views/spree/events/shared/_main_menu.html.erb +0 -22
- data/app/views/spree/events/state_changes/index.html.erb +0 -48
- data/lib/spree_cm_commissioner/test_helper/factories/export_guest_csv_factory.rb +0 -9
- data/lib/spree_cm_commissioner/transit/service_calendar_form.rb +0 -51
|
@@ -36,10 +36,7 @@ module SpreeCmCommissioner
|
|
|
36
36
|
def create_variant!(vendor, trip_form)
|
|
37
37
|
first_stop = trip_form.trip_stops.first
|
|
38
38
|
vehicle_type = SpreeCmCommissioner::VehicleType.find(first_stop.vehicle_type_id)
|
|
39
|
-
capacity = vehicle_type.
|
|
40
|
-
|
|
41
|
-
raise StandardError, 'Vehicle type must be selected' if vehicle_type.blank?
|
|
42
|
-
raise StandardError, 'Vehicle type seat capacity must be greater than 0' if capacity <= 0
|
|
39
|
+
capacity = vehicle_type.number_of_seats
|
|
43
40
|
|
|
44
41
|
result = SpreeCmCommissioner::Trips::Variants::Create.call(
|
|
45
42
|
vendor: vendor,
|
|
@@ -48,7 +45,7 @@ module SpreeCmCommissioner
|
|
|
48
45
|
capacity: capacity
|
|
49
46
|
)
|
|
50
47
|
|
|
51
|
-
raise
|
|
48
|
+
raise result.error unless result.success?
|
|
52
49
|
|
|
53
50
|
result.value[:variant]
|
|
54
51
|
end
|
|
@@ -60,18 +57,14 @@ module SpreeCmCommissioner
|
|
|
60
57
|
last_stop = trip_form.trip_stops.last
|
|
61
58
|
|
|
62
59
|
locations = vendor.locations.where(id: trip_form.trip_stops.map(&:location_id)).index_by(&:id)
|
|
63
|
-
|
|
64
|
-
# vendor_places are either stops or branches
|
|
65
|
-
vendor_places = SpreeCmCommissioner::VendorPlace
|
|
66
|
-
.where(id: trip_form.trip_stops.map(&:stop_id), vendor: vendor)
|
|
67
|
-
.index_by(&:id)
|
|
60
|
+
stops = vendor.stops.where(id: trip_form.trip_stops.map(&:stop_id)).index_by(&:id)
|
|
68
61
|
|
|
69
62
|
trip = vendor.trips.create!(
|
|
70
63
|
product: variant.product,
|
|
71
64
|
vehicle_type: SpreeCmCommissioner::VehicleType.find_by(id: first_stop.vehicle_type_id),
|
|
72
65
|
vehicle: SpreeCmCommissioner::Vehicle.find_by(id: first_stop.vehicle_id),
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
origin_place: locations[first_stop.location_id].place,
|
|
67
|
+
destination_place: locations[last_stop.location_id].place,
|
|
75
68
|
route: vendor.routes.find(trip_form.route_id),
|
|
76
69
|
departure_time: first_stop.departure_time,
|
|
77
70
|
duration: trip_form.total_duration_seconds,
|
|
@@ -80,21 +73,23 @@ module SpreeCmCommissioner
|
|
|
80
73
|
route_type: trip_form.route_type || vendor.routes.find(trip_form.route_id)&.route_type
|
|
81
74
|
)
|
|
82
75
|
|
|
83
|
-
create_trip_stops(trip, trip_form, locations,
|
|
76
|
+
create_trip_stops(trip, trip_form, locations, stops)
|
|
84
77
|
trip
|
|
85
78
|
end
|
|
86
79
|
|
|
87
80
|
# Creates individual trip stops based on the trip form stops.
|
|
88
81
|
# Each stop includes arrival/departure times and boarding/drop-off permissions.
|
|
89
|
-
def create_trip_stops(trip, trip_form, locations,
|
|
82
|
+
def create_trip_stops(trip, trip_form, locations, stops)
|
|
90
83
|
previous_departure = nil
|
|
91
|
-
|
|
84
|
+
|
|
85
|
+
trip_form.trip_stops.each do |ts|
|
|
92
86
|
arrival_time = previous_departure || ts.departure_time
|
|
87
|
+
|
|
93
88
|
trip.trip_stops.create!(
|
|
94
|
-
stop_place:
|
|
95
|
-
location_place: locations[ts.location_id
|
|
89
|
+
stop_place: stops[ts.stop_id].place,
|
|
90
|
+
location_place: locations[ts.location_id].place,
|
|
96
91
|
allow_boarding: ts.allow_boarding?,
|
|
97
|
-
allow_drop_off: ts.allow_drop_off
|
|
92
|
+
allow_drop_off: ts.allow_drop_off,
|
|
98
93
|
arrival_time: arrival_time,
|
|
99
94
|
departure_time: ts.departure_time
|
|
100
95
|
)
|
|
@@ -114,7 +109,7 @@ module SpreeCmCommissioner
|
|
|
114
109
|
exception_rules: calendar_form.exception_rules || []
|
|
115
110
|
)
|
|
116
111
|
|
|
117
|
-
raise
|
|
112
|
+
raise res.error unless res.success?
|
|
118
113
|
|
|
119
114
|
res.value[:calendar]
|
|
120
115
|
end
|
|
@@ -25,7 +25,7 @@ module SpreeCmCommissioner
|
|
|
25
25
|
error_message: e.message
|
|
26
26
|
}
|
|
27
27
|
)
|
|
28
|
-
failure(nil,
|
|
28
|
+
failure(nil, 'Failed to update trip')
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
private
|
|
@@ -47,8 +47,6 @@ module SpreeCmCommissioner
|
|
|
47
47
|
|
|
48
48
|
# Iterates through stops and applies updates only if attributes are present.
|
|
49
49
|
def update_trip_stops(trip, trip_form)
|
|
50
|
-
return if trip_form.trip_stops.blank?
|
|
51
|
-
|
|
52
50
|
trip.trip_stops.each_with_index do |stop, idx|
|
|
53
51
|
ts_form = trip_form.trip_stops[idx]
|
|
54
52
|
next unless ts_form
|
|
@@ -73,7 +71,7 @@ module SpreeCmCommissioner
|
|
|
73
71
|
exception_rules: calendar_form.exception_rules || []
|
|
74
72
|
)
|
|
75
73
|
|
|
76
|
-
raise
|
|
74
|
+
raise result.error unless result.success?
|
|
77
75
|
|
|
78
76
|
result.value[:calendar]
|
|
79
77
|
end
|
|
@@ -40,12 +40,12 @@ module SpreeCmCommissioner
|
|
|
40
40
|
# Creates a transit product with name based on stops, assigns vendor, type, and options.
|
|
41
41
|
# Includes seat-type option type and default store association.
|
|
42
42
|
def create_product!(vendor, trip_form)
|
|
43
|
-
vendor_stops =
|
|
44
|
-
first_stop = vendor_stops[trip_form.trip_stops.first.stop_id]
|
|
45
|
-
last_stop = vendor_stops[trip_form.trip_stops.last.stop_id]
|
|
43
|
+
vendor_stops = stops(vendor, trip_form)
|
|
44
|
+
first_stop = vendor_stops[trip_form.trip_stops.first.stop_id].place
|
|
45
|
+
last_stop = vendor_stops[trip_form.trip_stops.last.stop_id].place
|
|
46
46
|
|
|
47
47
|
Spree::Product.create!(
|
|
48
|
-
name: trip_form.name.presence || "#{first_stop
|
|
48
|
+
name: trip_form.name.presence || "#{first_stop.name} - #{last_stop.name}",
|
|
49
49
|
short_name: trip_form.short_name,
|
|
50
50
|
vendor: vendor,
|
|
51
51
|
product_type: 'transit',
|
|
@@ -59,8 +59,8 @@ module SpreeCmCommissioner
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
# Retrieves and indexes stops from the vendor for the trip form's stop IDs.
|
|
62
|
-
def
|
|
63
|
-
vendor.
|
|
62
|
+
def stops(vendor, trip_form)
|
|
63
|
+
vendor.stops.where(id: trip_form.trip_stops.map(&:stop_id)).index_by(&:id)
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
# Sets up or finds the seat-type option type and creates normal option value.
|
data/config/routes.rb
CHANGED
|
@@ -308,33 +308,6 @@ Spree::Core::Engine.add_routes do
|
|
|
308
308
|
resources :trip_blazer_queries
|
|
309
309
|
end
|
|
310
310
|
|
|
311
|
-
resources :events, controller: 'events/base' do
|
|
312
|
-
root to: 'events/guests#index'
|
|
313
|
-
resources :guests, only: %i[index show edit update], controller: 'events/guests' do
|
|
314
|
-
post :send_email, on: :member, as: :send_email
|
|
315
|
-
post :generate_guest_bib_number, on: :member
|
|
316
|
-
patch :swap_guest_bib_number, on: :member
|
|
317
|
-
collection do
|
|
318
|
-
post :generate_guest_csv
|
|
319
|
-
end
|
|
320
|
-
member do
|
|
321
|
-
post :check_in
|
|
322
|
-
post :uncheck_in
|
|
323
|
-
end
|
|
324
|
-
resources :state_changes, only: %i[index], controller: 'events/state_changes'
|
|
325
|
-
end
|
|
326
|
-
resources :check_ins, only: %i[index], controller: 'events/check_ins'
|
|
327
|
-
resources :data_exports, controller: 'events/data_exports' do
|
|
328
|
-
member do
|
|
329
|
-
post :download
|
|
330
|
-
end
|
|
331
|
-
end
|
|
332
|
-
collection do
|
|
333
|
-
get '/forbidden', to: 'events/errors#forbidden'
|
|
334
|
-
get '/resource_not_found', to: 'events/errors#resource_not_found'
|
|
335
|
-
end
|
|
336
|
-
end
|
|
337
|
-
|
|
338
311
|
namespace :telegram do
|
|
339
312
|
resources :orders, only: %i[show update] do
|
|
340
313
|
member do
|
|
@@ -97,34 +97,6 @@ module SpreeCmCommissioner::Transit
|
|
|
97
97
|
grouped
|
|
98
98
|
end
|
|
99
99
|
|
|
100
|
-
def by_location_id_with_data
|
|
101
|
-
return {} if @stops.empty?
|
|
102
|
-
|
|
103
|
-
# Extract unique vendor_place_ids from all stops
|
|
104
|
-
vendor_place_ids = @stops.map(&:vendor_place_id).compact.uniq
|
|
105
|
-
return {} if vendor_place_ids.empty?
|
|
106
|
-
|
|
107
|
-
# Single query: fetch all vendor places with their locations
|
|
108
|
-
# index_by(:id) creates a hash for O(1) lookup: { vendor_place_id => vendor_place_obj }
|
|
109
|
-
vendor_places = SpreeCmCommissioner::VendorPlace.where(id: vendor_place_ids).includes(:location).index_by(&:id)
|
|
110
|
-
|
|
111
|
-
grouped = {}
|
|
112
|
-
@stops.each do |stop|
|
|
113
|
-
# Set the vendor_place object on the stop for later use
|
|
114
|
-
stop.vendor_place = vendor_places[stop.vendor_place_id]
|
|
115
|
-
|
|
116
|
-
# Get the location from the vendor_place (e.g., "Bangkok" location)
|
|
117
|
-
location = stop.vendor_place&.location
|
|
118
|
-
next if location.nil?
|
|
119
|
-
|
|
120
|
-
# Group stops by location id
|
|
121
|
-
grouped[location.id] ||= []
|
|
122
|
-
grouped[location.id] << stop
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
grouped
|
|
126
|
-
end
|
|
127
|
-
|
|
128
100
|
# Groups route stops by their location in sequence order
|
|
129
101
|
# Returns an array of hashes where each hash contains:
|
|
130
102
|
# - location: the VendorPlace representing the location
|
|
@@ -12,30 +12,6 @@ module SpreeCmCommissioner::Transit
|
|
|
12
12
|
:trip_stops, # TripStopForm[]
|
|
13
13
|
:service_calendar # monday, tuesday, wednesday, thursday, friday, saturday, sunday, start_date, end_date
|
|
14
14
|
|
|
15
|
-
# Convert params hashes into TripStopForm objects
|
|
16
|
-
def trip_stops_attributes=(arr)
|
|
17
|
-
items = arr.is_a?(Hash) ? arr.values : Array(arr)
|
|
18
|
-
@trip_stops = items.map do |h|
|
|
19
|
-
h = h.to_h.symbolize_keys
|
|
20
|
-
TripStopForm.new.tap do |ts|
|
|
21
|
-
ts.location_id = h[:location_id]
|
|
22
|
-
ts.stop_id = h[:stop_id]
|
|
23
|
-
ts.departure_time = h[:departure_time]
|
|
24
|
-
ts.duration_in_hours = h[:duration_in_hours]
|
|
25
|
-
ts.route_type = h[:route_type]
|
|
26
|
-
ts.vehicle_type_id = h[:vehicle_type_id]
|
|
27
|
-
ts.vehicle_id = h[:vehicle_id]
|
|
28
|
-
ts.board_to_trip_id = h[:board_to_trip_id]
|
|
29
|
-
ts.allow_boarding = h[:allow_boarding]
|
|
30
|
-
ts.allow_drop_off = h[:allow_drop_off]
|
|
31
|
-
ts.allow_seat_selection = h[:allow_seat_selection]
|
|
32
|
-
ts.allow_booking = h[:allow_booking]
|
|
33
|
-
ts.sequence = h[:sequence]
|
|
34
|
-
ts.vendor_id = h[:vendor_id]
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
15
|
def multi_leg?
|
|
40
16
|
trip_stops.map(&:location_id).uniq.size > 2
|
|
41
17
|
end
|
|
@@ -46,11 +46,7 @@ module SpreeCmCommissioner::Transit
|
|
|
46
46
|
:sequence,
|
|
47
47
|
#
|
|
48
48
|
# set from create service
|
|
49
|
-
:vendor_id
|
|
50
|
-
# branch or stop
|
|
51
|
-
:stop_type,
|
|
52
|
-
# (optional) for view lookup
|
|
53
|
-
:vendor_place
|
|
49
|
+
:vendor_id
|
|
54
50
|
|
|
55
51
|
def allow_boarding?
|
|
56
52
|
ActiveModel::Type::Boolean.new.cast(allow_boarding)
|
|
@@ -27,7 +27,6 @@ require 'spree_cm_commissioner/transit/route_stop'
|
|
|
27
27
|
require 'spree_cm_commissioner/transit/route_stop_collection'
|
|
28
28
|
require 'spree_cm_commissioner/transit/trip_form'
|
|
29
29
|
require 'spree_cm_commissioner/transit/trip_stop_form'
|
|
30
|
-
require 'spree_cm_commissioner/transit/service_calendar_form'
|
|
31
30
|
require 'spree_cm_commissioner/intercity_taxi/map_place'
|
|
32
31
|
require 'spree_cm_commissioner/distance'
|
|
33
32
|
|
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.5.2.pre.
|
|
4
|
+
version: 2.5.2.pre.pre3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- You
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-01-
|
|
11
|
+
date: 2026-01-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: spree
|
|
@@ -817,12 +817,12 @@ files:
|
|
|
817
817
|
- app/controllers/.gitkeep
|
|
818
818
|
- app/controllers/blazer/base_controller_decorator.rb
|
|
819
819
|
- app/controllers/blazer/queries_controller_decorator.rb
|
|
820
|
+
- app/controllers/concerns/spree/api/v2/product_list_includes_decorator.rb
|
|
820
821
|
- app/controllers/concerns/spree/billing/order_parents_concern.rb
|
|
821
822
|
- app/controllers/concerns/spree/billing/payment_creatable.rb
|
|
822
823
|
- app/controllers/concerns/spree/billing/payment_fireable.rb
|
|
823
824
|
- app/controllers/concerns/spree_cm_commissioner/billing/role_authorization.rb
|
|
824
825
|
- app/controllers/concerns/spree_cm_commissioner/content_cachable.rb
|
|
825
|
-
- app/controllers/concerns/spree_cm_commissioner/events/role_authorization.rb
|
|
826
826
|
- app/controllers/concerns/spree_cm_commissioner/exception_notificable.rb
|
|
827
827
|
- app/controllers/concerns/spree_cm_commissioner/order_concern.rb
|
|
828
828
|
- app/controllers/concerns/spree_cm_commissioner/waiting_room_authorization.rb
|
|
@@ -980,6 +980,7 @@ files:
|
|
|
980
980
|
- app/controllers/spree/api/v2/storefront/pin_code_otp_checkers_controller.rb
|
|
981
981
|
- app/controllers/spree/api/v2/storefront/pin_code_otp_generators_controller.rb
|
|
982
982
|
- app/controllers/spree/api/v2/storefront/popular_route_places_controller.rb
|
|
983
|
+
- app/controllers/spree/api/v2/storefront/products_controller_decorator.rb
|
|
983
984
|
- app/controllers/spree/api/v2/storefront/profile_images_controller.rb
|
|
984
985
|
- app/controllers/spree/api/v2/storefront/provinces_controller.rb
|
|
985
986
|
- app/controllers/spree/api/v2/storefront/qr_urls_controller.rb
|
|
@@ -989,6 +990,7 @@ files:
|
|
|
989
990
|
- app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
|
|
990
991
|
- app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb
|
|
991
992
|
- app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
|
|
993
|
+
- app/controllers/spree/api/v2/storefront/taxons_controller_decorator.rb
|
|
992
994
|
- app/controllers/spree/api/v2/storefront/tenants_controller.rb
|
|
993
995
|
- app/controllers/spree/api/v2/storefront/transit/draft_orders_controller.rb
|
|
994
996
|
- app/controllers/spree/api/v2/storefront/trip_places_controller.rb
|
|
@@ -1077,12 +1079,6 @@ files:
|
|
|
1077
1079
|
- app/controllers/spree/billing/users_controller.rb
|
|
1078
1080
|
- app/controllers/spree/billing/variants_controller.rb
|
|
1079
1081
|
- app/controllers/spree/billing/vendors_controller.rb
|
|
1080
|
-
- app/controllers/spree/events/base_controller.rb
|
|
1081
|
-
- app/controllers/spree/events/check_ins_controller.rb
|
|
1082
|
-
- app/controllers/spree/events/data_exports_controller.rb
|
|
1083
|
-
- app/controllers/spree/events/errors_controller.rb
|
|
1084
|
-
- app/controllers/spree/events/guests_controller.rb
|
|
1085
|
-
- app/controllers/spree/events/state_changes_controller.rb
|
|
1086
1082
|
- app/controllers/spree/telegram/base_controller.rb
|
|
1087
1083
|
- app/controllers/spree/telegram/errors_controller.rb
|
|
1088
1084
|
- app/controllers/spree/telegram/orders_controller.rb
|
|
@@ -1135,7 +1131,6 @@ files:
|
|
|
1135
1131
|
- app/errors/spree_cm_commissioner/seats/blocks_are_reserved_by_same_guest_error.rb
|
|
1136
1132
|
- app/errors/spree_cm_commissioner/seats/unable_to_save_reserved_block_record_error.rb
|
|
1137
1133
|
- app/errors/spree_cm_commissioner/unauthorization_error.rb
|
|
1138
|
-
- app/errors/spree_cm_commissioner/unauthorized_event_error.rb
|
|
1139
1134
|
- app/errors/spree_cm_commissioner/unauthorized_vendor_error.rb
|
|
1140
1135
|
- app/exception_notifier/spree_cm_commissioner/telegram_notifier.rb
|
|
1141
1136
|
- app/factory/spree_cm_commissioner/invite_guest_claimed_telegram_message_factory.rb
|
|
@@ -1201,7 +1196,6 @@ files:
|
|
|
1201
1196
|
- app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb
|
|
1202
1197
|
- app/interactors/spree_cm_commissioner/enqueue_cart/add_item_status_marker.rb
|
|
1203
1198
|
- app/interactors/spree_cm_commissioner/ensure_correct_product_type.rb
|
|
1204
|
-
- app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb
|
|
1205
1199
|
- app/interactors/spree_cm_commissioner/event_qr_generator.rb
|
|
1206
1200
|
- app/interactors/spree_cm_commissioner/existing_account_checker.rb
|
|
1207
1201
|
- app/interactors/spree_cm_commissioner/fetch_facebook_user_data.rb
|
|
@@ -1328,8 +1322,6 @@ files:
|
|
|
1328
1322
|
- app/jobs/spree_cm_commissioner/ensure_correct_product_type_job.rb
|
|
1329
1323
|
- app/jobs/spree_cm_commissioner/ensure_event_for_product_line_item_guests_job.rb
|
|
1330
1324
|
- app/jobs/spree_cm_commissioner/ensure_event_id_for_guests_job.rb
|
|
1331
|
-
- app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb
|
|
1332
|
-
- app/jobs/spree_cm_commissioner/export_csv_job.rb
|
|
1333
1325
|
- app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
|
|
1334
1326
|
- app/jobs/spree_cm_commissioner/guests/preload_check_in_session_ids_job.rb
|
|
1335
1327
|
- app/jobs/spree_cm_commissioner/import_order_job.rb
|
|
@@ -1338,6 +1330,7 @@ files:
|
|
|
1338
1330
|
- app/jobs/spree_cm_commissioner/integrations/polling_scheduler_job.rb
|
|
1339
1331
|
- app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
|
|
1340
1332
|
- app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
|
|
1333
|
+
- app/jobs/spree_cm_commissioner/line_items/sync_event_date_job.rb
|
|
1341
1334
|
- app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
|
|
1342
1335
|
- app/jobs/spree_cm_commissioner/option_value_variants_public_metadata_updater_job.rb
|
|
1343
1336
|
- app/jobs/spree_cm_commissioner/order_complete_telegram_sender_job.rb
|
|
@@ -1421,6 +1414,7 @@ files:
|
|
|
1421
1414
|
- app/models/concerns/spree_cm_commissioner/vendor_promotable.rb
|
|
1422
1415
|
- app/models/concerns/spree_cm_commissioner/video_on_demand_bitwise.rb
|
|
1423
1416
|
- app/models/concerns/spree_cm_commissioner/webhooks/subscriber_rulable.rb
|
|
1417
|
+
- app/models/spree/stock/quantifier_decorator.rb
|
|
1424
1418
|
- app/models/spree_cm_commissioner.rb
|
|
1425
1419
|
- app/models/spree_cm_commissioner/ability_decorator.rb
|
|
1426
1420
|
- app/models/spree_cm_commissioner/address_decorator.rb
|
|
@@ -1453,7 +1447,6 @@ files:
|
|
|
1453
1447
|
- app/models/spree_cm_commissioner/dynamic_field_option.rb
|
|
1454
1448
|
- app/models/spree_cm_commissioner/event_ticket_google_wallet.rb
|
|
1455
1449
|
- app/models/spree_cm_commissioner/export.rb
|
|
1456
|
-
- app/models/spree_cm_commissioner/exports/export_guest_csv.rb
|
|
1457
1450
|
- app/models/spree_cm_commissioner/feature_image.rb
|
|
1458
1451
|
- app/models/spree_cm_commissioner/front_image.rb
|
|
1459
1452
|
- app/models/spree_cm_commissioner/google_wallet.rb
|
|
@@ -2006,7 +1999,6 @@ files:
|
|
|
2006
1999
|
- app/services/spree_cm_commissioner/checkout/update_decorator.rb
|
|
2007
2000
|
- app/services/spree_cm_commissioner/completion_steps/mark_line_item_as_completed.rb
|
|
2008
2001
|
- app/services/spree_cm_commissioner/completion_steps/regenerate_for_line_items.rb
|
|
2009
|
-
- app/services/spree_cm_commissioner/exports/export_guest_csv_service.rb
|
|
2010
2002
|
- app/services/spree_cm_commissioner/exports/export_order_csv_service.rb
|
|
2011
2003
|
- app/services/spree_cm_commissioner/feed.rb
|
|
2012
2004
|
- app/services/spree_cm_commissioner/feed/taxon_include_product.rb
|
|
@@ -2052,6 +2044,7 @@ files:
|
|
|
2052
2044
|
- app/services/spree_cm_commissioner/intercity_taxi_order/create.rb
|
|
2053
2045
|
- app/services/spree_cm_commissioner/intercity_taxi_order/update.rb
|
|
2054
2046
|
- app/services/spree_cm_commissioner/line_items/apply_pricing_models.rb
|
|
2047
|
+
- app/services/spree_cm_commissioner/line_items/sync_event_date.rb
|
|
2055
2048
|
- app/services/spree_cm_commissioner/metafields/product_metadata_service.rb
|
|
2056
2049
|
- app/services/spree_cm_commissioner/order_params_checker.rb
|
|
2057
2050
|
- app/services/spree_cm_commissioner/orders/bulk_archive_inactive_orders.rb
|
|
@@ -2437,22 +2430,6 @@ files:
|
|
|
2437
2430
|
- app/views/spree/billing/variants/new.html.erb
|
|
2438
2431
|
- app/views/spree/billing/vendors/_form.html.erb
|
|
2439
2432
|
- app/views/spree/billing/vendors/edit.html.erb
|
|
2440
|
-
- app/views/spree/events/check_ins/index.html.erb
|
|
2441
|
-
- app/views/spree/events/data_exports/index.html.erb
|
|
2442
|
-
- app/views/spree/events/errors/_error.html.erb
|
|
2443
|
-
- app/views/spree/events/errors/forbidden.html.erb
|
|
2444
|
-
- app/views/spree/events/errors/resource_not_found.html.erb
|
|
2445
|
-
- app/views/spree/events/guests/_check_in_status.html.erb
|
|
2446
|
-
- app/views/spree/events/guests/_form.html.erb
|
|
2447
|
-
- app/views/spree/events/guests/_swap_guest_bib_number.html.erb
|
|
2448
|
-
- app/views/spree/events/guests/edit.html.erb
|
|
2449
|
-
- app/views/spree/events/guests/index.html.erb
|
|
2450
|
-
- app/views/spree/events/shared/_event_switcher.html.erb
|
|
2451
|
-
- app/views/spree/events/shared/_filters.html.erb
|
|
2452
|
-
- app/views/spree/events/shared/_guest_tabs.html.erb
|
|
2453
|
-
- app/views/spree/events/shared/_header.html.erb
|
|
2454
|
-
- app/views/spree/events/shared/_main_menu.html.erb
|
|
2455
|
-
- app/views/spree/events/state_changes/index.html.erb
|
|
2456
2433
|
- app/views/spree/layouts/billing.html.erb
|
|
2457
2434
|
- app/views/spree/layouts/error_template.html.erb
|
|
2458
2435
|
- app/views/spree/layouts/event.html.erb
|
|
@@ -3067,7 +3044,6 @@ files:
|
|
|
3067
3044
|
- lib/spree_cm_commissioner/test_helper/factories/customer_notification_factory.rb
|
|
3068
3045
|
- lib/spree_cm_commissioner/test_helper/factories/customers_taxons_factory.rb
|
|
3069
3046
|
- lib/spree_cm_commissioner/test_helper/factories/device_token_factory.rb
|
|
3070
|
-
- lib/spree_cm_commissioner/test_helper/factories/export_guest_csv_factory.rb
|
|
3071
3047
|
- lib/spree_cm_commissioner/test_helper/factories/front_image_factory.rb
|
|
3072
3048
|
- lib/spree_cm_commissioner/test_helper/factories/guest_factory.rb
|
|
3073
3049
|
- lib/spree_cm_commissioner/test_helper/factories/homepage_background_app_image_factory.rb
|
|
@@ -3151,7 +3127,6 @@ files:
|
|
|
3151
3127
|
- lib/spree_cm_commissioner/transit/route_stop.rb
|
|
3152
3128
|
- lib/spree_cm_commissioner/transit/route_stop_collection.rb
|
|
3153
3129
|
- lib/spree_cm_commissioner/transit/seat_selection.rb
|
|
3154
|
-
- lib/spree_cm_commissioner/transit/service_calendar_form.rb
|
|
3155
3130
|
- lib/spree_cm_commissioner/transit/trip_form.rb
|
|
3156
3131
|
- lib/spree_cm_commissioner/transit/trip_stop_form.rb
|
|
3157
3132
|
- lib/spree_cm_commissioner/trip_query_result.rb
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module SpreeCmCommissioner
|
|
2
|
-
module Events
|
|
3
|
-
module RoleAuthorization
|
|
4
|
-
extend ActiveSupport::Concern
|
|
5
|
-
|
|
6
|
-
included do
|
|
7
|
-
rescue_from SpreeCmCommissioner::UnauthorizedEventError, with: :redirect_unauthorized_access
|
|
8
|
-
rescue_from ActiveRecord::RecordNotFound, with: :resource_not_found
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def authorize_role!
|
|
12
|
-
raise SpreeCmCommissioner::UnauthorizedEventError unless authorize?
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# overrided
|
|
16
|
-
def authorize_admin
|
|
17
|
-
authorize_role!
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def authorize?
|
|
21
|
-
return false if spree_current_user.blank?
|
|
22
|
-
|
|
23
|
-
spree_current_user.organizer?
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def resource_not_found
|
|
27
|
-
redirect_to resource_not_found_events_path
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# overrided
|
|
31
|
-
def redirect_unauthorized_access
|
|
32
|
-
redirect_to forbidden_events_path
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Events
|
|
3
|
-
class BaseController < Spree::Admin::ResourceController
|
|
4
|
-
include SpreeCmCommissioner::Events::RoleAuthorization
|
|
5
|
-
|
|
6
|
-
layout 'spree/layouts/event'
|
|
7
|
-
|
|
8
|
-
before_action :required_user_event!
|
|
9
|
-
|
|
10
|
-
helper_method :current_event
|
|
11
|
-
|
|
12
|
-
def default_url_options
|
|
13
|
-
super.merge(event_id: params[:event_id] || events.first&.slug)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def events
|
|
17
|
-
@events ||= spree_current_user.events
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def current_event
|
|
21
|
-
if params[:event_id].blank?
|
|
22
|
-
@current_event = events.first
|
|
23
|
-
else
|
|
24
|
-
@current_event ||= events.find_by!(slug: params[:event_id])
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def required_user_event!
|
|
29
|
-
return if current_event.present?
|
|
30
|
-
|
|
31
|
-
raise SpreeCmCommissioner::UnauthorizedEventError
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Events
|
|
3
|
-
class CheckInsController < Spree::Events::BaseController
|
|
4
|
-
helper SpreeCmCommissioner::Admin::GuestHelper
|
|
5
|
-
|
|
6
|
-
def collection_url
|
|
7
|
-
event_check_ins_url
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def model_class
|
|
11
|
-
SpreeCmCommissioner::CheckIn
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
def collection
|
|
17
|
-
scope = current_event.check_ins
|
|
18
|
-
|
|
19
|
-
@collection = scope.page(params[:page]).per(params[:per_page])
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Events
|
|
3
|
-
class DataExportsController < Spree::Events::BaseController
|
|
4
|
-
rescue_from ActiveRecord::RecordNotFound, with: :record_not_found
|
|
5
|
-
# override
|
|
6
|
-
def model_class
|
|
7
|
-
SpreeCmCommissioner::Export
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# POST: /data_exports/:id/download
|
|
11
|
-
def download
|
|
12
|
-
export = SpreeCmCommissioner::Export.find_by(uuid: params[:id])
|
|
13
|
-
|
|
14
|
-
raise ActiveRecord::RecordNotFound, 'Export file is not attached. Please try to generate again.' unless export.exported_file.attached?
|
|
15
|
-
|
|
16
|
-
redirect_to main_app.rails_blob_url(export.exported_file, expires_in: 3600.seconds)
|
|
17
|
-
# HOST/events/events-tedxphnompenh-2024/data_exports/9313a0c9-5d1f-4c26-983a-f8b796ec141f/download
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
# override
|
|
23
|
-
def collection
|
|
24
|
-
@collection = model_class.all
|
|
25
|
-
.page(params[:page])
|
|
26
|
-
.per(params[:per_page])
|
|
27
|
-
.order(created_at: :desc)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# override
|
|
31
|
-
def collection_actions
|
|
32
|
-
super << :download
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def record_not_found(exception)
|
|
36
|
-
flash[:error] = exception.message
|
|
37
|
-
redirect_to event_data_exports_path
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Events
|
|
3
|
-
class ErrorsController < Spree::Admin::BaseController
|
|
4
|
-
layout 'spree/layouts/error_template'
|
|
5
|
-
|
|
6
|
-
# override
|
|
7
|
-
def authorize_admin; end
|
|
8
|
-
|
|
9
|
-
def forbidden
|
|
10
|
-
@error = 'Forbidden Access'
|
|
11
|
-
@message = "You're either not a organizer or the event isn't belonging to you."
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def resource_not_found
|
|
15
|
-
@message = 'Resources you are looking are not found.'
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|