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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test_and_build_gem.yml +1 -1
  3. data/Gemfile.lock +1 -1
  4. data/app/controllers/concerns/spree/api/v2/product_list_includes_decorator.rb +37 -0
  5. data/app/controllers/spree/api/v2/storefront/active_homepage_events_controller.rb +6 -1
  6. data/app/controllers/spree/api/v2/storefront/homepage_sections_controller.rb +41 -4
  7. data/app/controllers/spree/api/v2/storefront/invite_guests_controller.rb +11 -2
  8. data/app/controllers/spree/api/v2/storefront/products_controller_decorator.rb +27 -0
  9. data/app/controllers/spree/api/v2/storefront/taxons_controller_decorator.rb +92 -0
  10. data/app/controllers/spree_cm_commissioner/application_controller_decorator.rb +0 -2
  11. data/app/jobs/spree_cm_commissioner/line_items/sync_event_date_job.rb +10 -0
  12. data/app/models/concerns/spree_cm_commissioner/line_item_durationable.rb +30 -23
  13. data/app/models/concerns/spree_cm_commissioner/variant_options_concern.rb +47 -6
  14. data/app/models/spree/stock/quantifier_decorator.rb +26 -0
  15. data/app/models/spree_cm_commissioner/export.rb +1 -3
  16. data/app/models/spree_cm_commissioner/guest.rb +3 -3
  17. data/app/models/spree_cm_commissioner/taxon_decorator.rb +27 -1
  18. data/app/serializers/spree/v2/storefront/product_serializer_decorator.rb +36 -7
  19. data/app/services/spree_cm_commissioner/line_items/sync_event_date.rb +22 -0
  20. data/app/services/spree_cm_commissioner/trips/create_single_leg.rb +14 -19
  21. data/app/services/spree_cm_commissioner/trips/update_single_leg.rb +2 -4
  22. data/app/services/spree_cm_commissioner/trips/variants/create.rb +6 -6
  23. data/config/routes.rb +0 -27
  24. data/lib/spree_cm_commissioner/transit/route_stop_collection.rb +0 -28
  25. data/lib/spree_cm_commissioner/transit/trip_form.rb +0 -24
  26. data/lib/spree_cm_commissioner/transit/trip_stop_form.rb +1 -5
  27. data/lib/spree_cm_commissioner/version.rb +1 -1
  28. data/lib/spree_cm_commissioner.rb +0 -1
  29. metadata +8 -33
  30. data/app/controllers/concerns/spree_cm_commissioner/events/role_authorization.rb +0 -36
  31. data/app/controllers/spree/events/base_controller.rb +0 -35
  32. data/app/controllers/spree/events/check_ins_controller.rb +0 -23
  33. data/app/controllers/spree/events/data_exports_controller.rb +0 -41
  34. data/app/controllers/spree/events/errors_controller.rb +0 -19
  35. data/app/controllers/spree/events/guests_controller.rb +0 -139
  36. data/app/controllers/spree/events/state_changes_controller.rb +0 -11
  37. data/app/errors/spree_cm_commissioner/unauthorized_event_error.rb +0 -4
  38. data/app/interactors/spree_cm_commissioner/event_line_items_date_syncer.rb +0 -19
  39. data/app/jobs/spree_cm_commissioner/event_line_items_date_syncer_job.rb +0 -8
  40. data/app/jobs/spree_cm_commissioner/export_csv_job.rb +0 -7
  41. data/app/models/spree_cm_commissioner/exports/export_guest_csv.rb +0 -33
  42. data/app/services/spree_cm_commissioner/exports/export_guest_csv_service.rb +0 -48
  43. data/app/views/spree/events/check_ins/index.html.erb +0 -59
  44. data/app/views/spree/events/data_exports/index.html.erb +0 -54
  45. data/app/views/spree/events/errors/_error.html.erb +0 -7
  46. data/app/views/spree/events/errors/forbidden.html.erb +0 -1
  47. data/app/views/spree/events/errors/resource_not_found.html.erb +0 -1
  48. data/app/views/spree/events/guests/_check_in_status.html.erb +0 -44
  49. data/app/views/spree/events/guests/_form.html.erb +0 -37
  50. data/app/views/spree/events/guests/_swap_guest_bib_number.html.erb +0 -18
  51. data/app/views/spree/events/guests/edit.html.erb +0 -86
  52. data/app/views/spree/events/guests/index.html.erb +0 -102
  53. data/app/views/spree/events/shared/_event_switcher.html.erb +0 -39
  54. data/app/views/spree/events/shared/_filters.html.erb +0 -50
  55. data/app/views/spree/events/shared/_guest_tabs.html.erb +0 -19
  56. data/app/views/spree/events/shared/_header.html.erb +0 -10
  57. data/app/views/spree/events/shared/_main_menu.html.erb +0 -22
  58. data/app/views/spree/events/state_changes/index.html.erb +0 -48
  59. data/lib/spree_cm_commissioner/test_helper/factories/export_guest_csv_factory.rb +0 -9
  60. 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.seat_layout&.total_seats || vehicle_type.number_of_seats
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 StandardError, result.error unless result.success?
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
- origin_place_id: locations[first_stop.location_id.to_i].place_id,
74
- destination_place_id: locations[last_stop.location_id.to_i].place_id,
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, vendor_places)
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, vendor_places)
82
+ def create_trip_stops(trip, trip_form, locations, stops)
90
83
  previous_departure = nil
91
- Array(trip_form.trip_stops).each do |ts|
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: vendor_places[ts.stop_id.to_i].place,
95
- location_place: locations[ts.location_id.to_i].place,
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 StandardError, res.error unless res.success?
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, e)
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 StandardError, 'Failed to update service calendar' unless result.success?
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 = branches(vendor, trip_form)
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&.name} - #{last_stop&.name}",
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 branches(vendor, trip_form)
63
- vendor.branches.where(id: trip_form.trip_stops.map(&:stop_id)).index_by(&:id)
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)
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.5.2.pre.pre2'.freeze
2
+ VERSION = '2.5.2-pre3'.freeze
3
3
 
4
4
  module_function
5
5
 
@@ -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.pre2
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-29 00:00:00.000000000 Z
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