effective_events 2.30.0 → 2.30.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a00e6d6e6fce1100f98e19f6d9a0e5d1a9ba66ebfadf33de9b65f73127c859fa
4
- data.tar.gz: 0abd39dd425fe5aa03a4aca9bc3e23e35319b829eb8136ac274a06531297f098
3
+ metadata.gz: 32f5674dd0103143460a411264938785c8b8fe264caf401aa3ac7c39c4118be6
4
+ data.tar.gz: a0298a712e199e4b3e6fcef70aa1f11e9feb3d27d75266cdabb6d418b36e5518
5
5
  SHA512:
6
- metadata.gz: 53bb80da8ecd9e1cedea4f489c9e3cd48a8d76ec839655480e7ed7e238a7e5daf1586830e68c3e79c5744d50d3e81a095a9c3296c5105545fd57965cd36e92d9
7
- data.tar.gz: ab519af6f7760009617670f236a8983189112931d9ab3eb50b292fe419f52921e6b1009c5f6fecc8610376c28989d2b7c9ff3c457527ca50f99ee5d3447955ea
6
+ metadata.gz: 7631eec53e65b21d0546a009fe233989eefe5e448f34fe50c83562993ea2e01ea405c5b0f6f9dee9de5e4c5e3ca41c6e30aad6e640d5fab904fecc454bf7cdc8
7
+ data.tar.gz: b972ba664a0d9312a5fd66d04bd4442b521badb1ce34aabff9f8933e5c2b1e51b8235c37cc2d8999c4e8778769ca47cc58fcb1610e8db14675569e2bfac5e974
@@ -21,6 +21,7 @@ module Effective
21
21
  return if resource.event.blank?
22
22
  return if resource.submit_order&.deferred?
23
23
  return if resource.event.registerable? && !resource.event.sold_out?(except: resource)
24
+ return if resource.event.registerable_when_impersonating? && view_context.try(:impersonating?)
24
25
  return if resource.just_let_them_edit_tickets_and_register_anyway?
25
26
 
26
27
  flash[:danger] = "Your selected event is not available for registration. This event registration not available."
@@ -33,6 +34,7 @@ module Effective
33
34
  return if resource.event.blank?
34
35
  return if resource.selection_not_expired?
35
36
  return if resource.orders.any? { |order| order.declined? && order.delayed? }
37
+ return if resource.event.registerable_when_impersonating? && view_context.try(:impersonating?)
36
38
  return if resource.just_let_them_edit_tickets_and_register_anyway?
37
39
 
38
40
  resource.ticket_selection_expired!
@@ -86,7 +86,11 @@ module Admin
86
86
  col :response2
87
87
  col :response3
88
88
 
89
- actions_col
89
+ actions_col do |registrant|
90
+ if EffectiveResources.authorized?(self, :impersonate, registrant.owner)
91
+ dropdown_link_to("Impersonate", "/admin/users/#{registrant.owner_id}/impersonate", data: { confirm: "Really impersonate #{registrant.owner}?", method: :post, remote: true })
92
+ end
93
+ end
90
94
  end
91
95
 
92
96
  collection do
@@ -1,54 +1,77 @@
1
1
  module Admin
2
2
  class EffectiveEventTicketsDatatable < Effective::Datatable
3
- filters do
4
- scope :unarchived, label: "All"
5
- scope :archived
6
- end
7
-
8
3
  datatable do
9
4
  reorder :position
10
5
 
11
6
  col :updated_at, visible: false
12
7
  col :created_at, visible: false
13
8
  col :id, visible: false
14
- col :archived, visible: false
9
+ col :archived
15
10
 
16
- col :event
17
11
 
12
+ col :event
18
13
  col :title
19
14
  col :category, visible: false
15
+ col :waitlist, visible: false
20
16
 
21
- col :early_bird_price, as: :price, visible: event&.early_bird_end_at.present?
22
- col :regular_price, as: :price
23
- col :member_price, as: :price
17
+ col :early_bird_price, as: :price, visible: false
18
+ col :regular_price, as: :price, visible: false
19
+ col :member_price, as: :price, visible: false
24
20
 
25
- col :waitlist
26
- col :capacity_available, visible: false
27
- col :capacity, label: 'Capacity Total', visible: false
21
+ col :prices do |ticket|
22
+ prices = ""
23
+
24
+ if event&.early_bird_end_at.present?
25
+ prices += "#{price_to_currency(ticket.early_bird_price || 0)} early<br />"
26
+ end
28
27
 
29
- col :capacity_to_s, label: 'Capacity' do |ticket|
30
- if ticket.capacity.present? && ticket.waitlist?
31
- "#{ticket.capacity_available} remaining / #{ticket.capacity} total. #{ticket.waitlisted_event_registrants_count} waitlisted."
32
- elsif ticket.capacity.present?
33
- "#{ticket.capacity_available} remaining / #{ticket.capacity} total"
28
+ if ticket.category == "Member Only"
29
+ prices += "#{price_to_currency(ticket.member_price)} member"
30
+ elsif ticket.category == "Regular"
31
+ prices += "#{price_to_currency(ticket.regular_price)} regular"
32
+ elsif ticket.category == ("Member or Non-Member" || "Regular")
33
+ prices +=
34
+ "
35
+ #{price_to_currency(ticket.regular_price)} regular<br />
36
+ #{price_to_currency(ticket.member_price)} member
37
+ "
38
+ else
39
+ "Invalid ticket category"
40
+ end
41
+
42
+ prices
43
+ end
44
+
45
+ col :capacity_available, visible: false
46
+ col :capacity, label: 'Capacity total', visible: false
47
+
48
+ col :registrations, label: 'Registrations' do |ticket|
49
+ if ticket.capacity.present?
50
+ "
51
+ #{ticket.capacity} capacity<br />
52
+ #{ticket.non_waitlisted_event_registrants_count.count} registered<br />
53
+ #{ticket.capacity_available} available<br />
54
+ #{ticket.waitlisted_event_registrants_count} waitlisted
55
+ "
56
+ else
57
+ "#{ticket.non_waitlisted_event_registrants_count.count} registered"
34
58
  end
35
59
  end
36
60
 
37
61
  col :category, visible: false
38
62
 
39
- col :registered_event_registrants_count, label: 'Registered' do |event|
63
+ col :registered_event_registrants_count, label: 'Registered', visible: false, as: :integer do |event|
40
64
  event.event_registrants.registered.count
41
65
  end
42
66
 
43
- col :purchased_event_registrants_count, label: 'Deferred', visible: false do |event|
67
+ col :purchased_event_registrants_count, label: 'Deferred', visible: false, as: :integer do |event|
44
68
  event.event_registrants.deferred.count
45
69
  end
46
70
 
47
- col :purchased_event_registrants_count, label: 'Purchased', visible: false do |event|
71
+ col :purchased_event_registrants_count, label: 'Purchased', visible: false, as: :integer do |event|
48
72
  event.event_registrants.purchased.count
49
73
  end
50
74
 
51
-
52
75
  col :question1, visible: false
53
76
  col :question2, visible: false
54
77
  col :question3, visible: false
@@ -22,8 +22,8 @@ module Admin
22
22
 
23
23
  col :draft?, as: :boolean, visible: false
24
24
  col :published?, as: :boolean
25
- col :published_start_at, as: "Published start"
26
- col :published_end_at, as: "Published end"
25
+ col :published_start_at, label: "Published start", as: :datetime
26
+ col :published_end_at, label: "Published end", as: :datetime
27
27
 
28
28
  col :start_at, label: 'Start', visible: false
29
29
  col :end_at, label: 'End', visible: false
@@ -32,7 +32,7 @@ class EffectiveEventRegistrationsDatatable < Effective::Datatable
32
32
  end
33
33
 
34
34
  # Register Again
35
- if er.event.registerable? && !er.event.sold_out?
35
+ if (er.event.registerable? && !er.event.sold_out?) || (er.event.registerable_when_impersonating? && impersonating?)
36
36
  url = er.event.external_registration_url.presence || effective_events.new_event_event_registration_path(er.event)
37
37
  dropdown_link_to('Register Again', url)
38
38
  end
@@ -197,6 +197,10 @@ module Effective
197
197
  (external_registration? && external_registration_url.present?) || event_tickets.present?
198
198
  end
199
199
 
200
+ def registerable_when_impersonating?
201
+ (external_registration? && external_registration_url.present?) || event_tickets.present?
202
+ end
203
+
200
204
  def registration_available?
201
205
  return false if registration_start_at.blank? || registration_end_at.blank?
202
206
  (registration_start_at..registration_end_at).cover?(Time.zone.now)
@@ -358,8 +358,11 @@ module Effective
358
358
 
359
359
  # Manual admin action only
360
360
  def send_confirmation_email!
361
- order = event_registration&.submit_order
362
- order.send_order_emails!
361
+ send_order_emails!
362
+ end
363
+
364
+ def send_order_emails!
365
+ event_registration&.submit_order&.send_order_emails!
363
366
  end
364
367
 
365
368
  def event_registration_submit_order
@@ -4,7 +4,7 @@
4
4
 
5
5
  - if resource.submit_order.deferred?
6
6
  = render_checkout_step2(resource.submit_order, purchased_url: wizard_path(:complete), deferred_url: wizard_path(:submitted), declined_url: wizard_path(:checkout))
7
- - elsif resource.just_let_them_edit_tickets_and_register_anyway?
7
+ - elsif resource.just_let_them_edit_tickets_and_register_anyway? || (resource.event.registerable_when_impersonating? && impersonating?)
8
8
  = card do
9
9
  = render_checkout_step2(resource.submit_order, purchased_url: wizard_path(:complete), deferred_url: wizard_path(:submitted), declined_url: wizard_path(:checkout))
10
10
  - elsif resource.event.registerable? == false
@@ -14,7 +14,7 @@
14
14
  - if @event.closed?
15
15
  .alert.alert-warning.mb-3 This event is no longer available.
16
16
 
17
- - if @event.registerable?
17
+ - if @event.registerable? || (impersonating? && @event.registerable_when_impersonating?)
18
18
  .register.mb-4
19
19
  - url = @event.external_registration_url.presence || effective_events.new_event_event_registration_path(@event)
20
20
  = link_to 'Register', url, class: 'btn btn-lg btn-primary'
data/config/routes.rb CHANGED
@@ -51,6 +51,7 @@ EffectiveEvents::Engine.routes.draw do
51
51
  post :unarchive, on: :member
52
52
 
53
53
  post :send_confirmation_email, on: :member
54
+ post :send_order_emails, on: :member
54
55
  end
55
56
 
56
57
  resources :event_addons, except: [:show] do
@@ -1,3 +1,3 @@
1
1
  module EffectiveEvents
2
- VERSION = '2.30.0'.freeze
2
+ VERSION = '2.30.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_events
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.30.0
4
+ version: 2.30.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-18 00:00:00.000000000 Z
11
+ date: 2025-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails