effective_events 2.25.0 → 2.26.0
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/app/datatables/admin/effective_events_datatable.rb +3 -0
- data/app/datatables/effective_event_registrants_datatable.rb +2 -19
- data/app/mailers/effective/events_mailer.rb +36 -0
- data/app/models/concerns/effective_events_event_registration.rb +35 -1
- data/app/models/effective/event.rb +1 -0
- data/app/models/effective/event_registrant.rb +24 -0
- data/app/views/admin/events/_form.html.haml +4 -4
- data/app/views/admin/events/_form_content.html.haml +2 -0
- data/app/views/effective/event_registrations/checkout.html.haml +3 -1
- data/app/views/effective/event_registrations/submitted.html.haml +1 -1
- data/app/views/effective/events_mailer/event_registrant_confirmation.html.haml +22 -0
- data/app/views/effective/events_mailer/event_registration_confirmation.html.haml +45 -0
- data/config/routes.rb +2 -0
- data/lib/effective_events/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 93702d0f34b53536a8534ad5d983be17e75f66bf133e8cd67c46e3d38f6ec5dc
|
|
4
|
+
data.tar.gz: 243eb4b9796e5b0752ec0bfa4d121508253550e5765a62be4252e2835a6391d8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 408c0a3b0d923e692e1c853945e0b2899e83d02743049cc7d834ccb1163f00ca6e941b5291e9ece8abe98177f4d475b99eeaa15c9d3f047aa153f0e0f94cfc15
|
|
7
|
+
data.tar.gz: d1d0ddeb5f16cfd4d803e76222b27c5450f584f45adc9f63961fe7f0c033490554f1ab2780d964fcea91113d8553ce1e53d55c4de5afc744e0dddd5075b5f178
|
|
@@ -41,6 +41,9 @@ module Admin
|
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
col :delayed_payment, visible: false
|
|
45
|
+
col :delayed_payment_date, visible: false
|
|
46
|
+
|
|
44
47
|
# These show too much information to be useful to admins, rely on the edit screen
|
|
45
48
|
# col :event_tickets, search: :string
|
|
46
49
|
# col :event_products, search: :string
|
|
@@ -4,20 +4,7 @@ class EffectiveEventRegistrantsDatatable < Effective::Datatable
|
|
|
4
4
|
datatable do
|
|
5
5
|
order :id
|
|
6
6
|
|
|
7
|
-
col :
|
|
8
|
-
if er.first_name.present?
|
|
9
|
-
[
|
|
10
|
-
"#{er.first_name} #{er.last_name}",
|
|
11
|
-
("<small>#{er.organization || er.company}</small>" if er.organization || er.company.present?),
|
|
12
|
-
("<small>#{er.email}</small>" if er.email.present?)
|
|
13
|
-
].compact.join('<br>').html_safe
|
|
14
|
-
elsif er.owner.present?
|
|
15
|
-
er.owner.to_s + ' - GUEST'
|
|
16
|
-
else
|
|
17
|
-
'Unknown'
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
7
|
+
col :full_name, label: 'Name'
|
|
21
8
|
col :id, visible: false
|
|
22
9
|
|
|
23
10
|
col :event_ticket, search: :string, label: 'Ticket' do |er|
|
|
@@ -36,11 +23,7 @@ class EffectiveEventRegistrantsDatatable < Effective::Datatable
|
|
|
36
23
|
col :response2, visible: false
|
|
37
24
|
col :response3, visible: false
|
|
38
25
|
|
|
39
|
-
col :responses, label: 'Details'
|
|
40
|
-
[registrant.response1.presence, registrant.response2.presence, registrant.response3.presence].compact.map do |response|
|
|
41
|
-
content_tag(:div, response)
|
|
42
|
-
end.join.html_safe
|
|
43
|
-
end
|
|
26
|
+
col :responses, label: 'Details'
|
|
44
27
|
|
|
45
28
|
col :price, as: :price
|
|
46
29
|
col :archived, visible: false
|
|
@@ -4,6 +4,10 @@ module Effective
|
|
|
4
4
|
include EffectiveMailer
|
|
5
5
|
include EffectiveEmailTemplatesMailer
|
|
6
6
|
|
|
7
|
+
helper EffectiveEventsHelper
|
|
8
|
+
helper EffectiveOrdersHelper
|
|
9
|
+
|
|
10
|
+
# For the notifications. No longer used.
|
|
7
11
|
def event_registrant_purchased(resource, opts = {})
|
|
8
12
|
raise('expected an Effective::EventRegistrant') unless resource.kind_of?(Effective::EventRegistrant)
|
|
9
13
|
|
|
@@ -11,6 +15,38 @@ module Effective
|
|
|
11
15
|
mail(to: resource.email, **headers_for(resource, opts))
|
|
12
16
|
end
|
|
13
17
|
|
|
18
|
+
# Sent on registration purchase
|
|
19
|
+
# Sent on delayed payment date registration submitted
|
|
20
|
+
# Sent on delayed payment date registration update
|
|
21
|
+
# Sent on update blank registrants
|
|
22
|
+
def event_registration_confirmation(resource, opts = {})
|
|
23
|
+
raise('expected an event registration') unless resource.class.try(:effective_events_event_registration?)
|
|
24
|
+
|
|
25
|
+
@event_registration = resource
|
|
26
|
+
@event = resource.event
|
|
27
|
+
@event_registrants = resource.event_registrants
|
|
28
|
+
@event_addons = resource.event_addons
|
|
29
|
+
|
|
30
|
+
subject = subject_for(__method__, "Event Confirmation - #{@event}", resource, opts)
|
|
31
|
+
headers = headers_for(resource, opts)
|
|
32
|
+
|
|
33
|
+
mail(to: resource.owner.email, subject: subject, **headers)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Sent manually by an admin to one registrant
|
|
37
|
+
def event_registrant_confirmation(resource, opts = {})
|
|
38
|
+
raise('expected an event registrant') unless resource.kind_of?(Effective::EventRegistrant)
|
|
39
|
+
|
|
40
|
+
@event_registrant = resource
|
|
41
|
+
@event = resource.event
|
|
42
|
+
@event_registration = resource.event_registration # Optional
|
|
43
|
+
|
|
44
|
+
subject = subject_for(__method__, "Event Registrant Confirmation - #{@event}", resource, opts)
|
|
45
|
+
headers = headers_for(resource, opts)
|
|
46
|
+
|
|
47
|
+
mail(to: resource.email, subject: subject, **headers)
|
|
48
|
+
end
|
|
49
|
+
|
|
14
50
|
protected
|
|
15
51
|
|
|
16
52
|
def assigns_for(resource)
|
|
@@ -220,6 +220,7 @@ module EffectiveEventsEventRegistration
|
|
|
220
220
|
|
|
221
221
|
def after_submit_deferred!
|
|
222
222
|
update_deferred_event_registration!
|
|
223
|
+
send_event_registration_confirmation!
|
|
223
224
|
end
|
|
224
225
|
|
|
225
226
|
def after_submit_purchased!
|
|
@@ -227,12 +228,14 @@ module EffectiveEventsEventRegistration
|
|
|
227
228
|
|
|
228
229
|
notifications = event.event_notifications.select(&:registrant_purchased?)
|
|
229
230
|
notifications.each { |notification| notification.notify!(event_registrants: event_registrants) }
|
|
231
|
+
|
|
232
|
+
send_event_registration_confirmation! unless submit_order&.delayed?
|
|
230
233
|
end
|
|
231
234
|
end
|
|
232
235
|
|
|
233
236
|
# Instance Methods
|
|
234
237
|
def to_s
|
|
235
|
-
|
|
238
|
+
event.present? ? "Event registration - #{event}" : model_name.human
|
|
236
239
|
end
|
|
237
240
|
|
|
238
241
|
def in_progress?
|
|
@@ -342,6 +345,14 @@ module EffectiveEventsEventRegistration
|
|
|
342
345
|
save!
|
|
343
346
|
end
|
|
344
347
|
|
|
348
|
+
def details!
|
|
349
|
+
after_commit do
|
|
350
|
+
update_submit_fees_and_order! if submit_order.present?
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
save!
|
|
354
|
+
end
|
|
355
|
+
|
|
345
356
|
def addons!
|
|
346
357
|
after_commit do
|
|
347
358
|
update_submit_fees_and_order! if submit_order.present?
|
|
@@ -350,6 +361,17 @@ module EffectiveEventsEventRegistration
|
|
|
350
361
|
save!
|
|
351
362
|
end
|
|
352
363
|
|
|
364
|
+
# Not involved in money processing
|
|
365
|
+
# This will only be called when the order is previously delayed and deferred
|
|
366
|
+
# And we're going through the registration again with a saved card
|
|
367
|
+
def checkout!
|
|
368
|
+
if submit_order.present? && submit_order.delayed? && submit_order.deferred?
|
|
369
|
+
send_event_registration_confirmation!
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
save!
|
|
373
|
+
end
|
|
374
|
+
|
|
353
375
|
def try_completed!
|
|
354
376
|
return false unless submitted?
|
|
355
377
|
return false unless submit_order&.purchased?
|
|
@@ -454,9 +476,21 @@ module EffectiveEventsEventRegistration
|
|
|
454
476
|
|
|
455
477
|
update_submit_fees_and_order! if submit_order.present? && !submit_order.purchased?
|
|
456
478
|
|
|
479
|
+
after_commit do
|
|
480
|
+
send_event_registration_confirmation!
|
|
481
|
+
end
|
|
482
|
+
|
|
457
483
|
true
|
|
458
484
|
end
|
|
459
485
|
|
|
486
|
+
# Sent on registration purchase
|
|
487
|
+
# Sent on delayed payment date registration submitted
|
|
488
|
+
# Sent on delayed payment date registration update
|
|
489
|
+
# Sent on update blank registrants
|
|
490
|
+
def send_event_registration_confirmation!
|
|
491
|
+
EffectiveEvents.send_email(:event_registration_confirmation, self)
|
|
492
|
+
end
|
|
493
|
+
|
|
460
494
|
private
|
|
461
495
|
|
|
462
496
|
def update_deferred_event_registration!
|
|
@@ -178,6 +178,21 @@ module Effective
|
|
|
178
178
|
end
|
|
179
179
|
end
|
|
180
180
|
|
|
181
|
+
# Used in email and tickets datatable
|
|
182
|
+
def full_name
|
|
183
|
+
if first_name.present?
|
|
184
|
+
[
|
|
185
|
+
name,
|
|
186
|
+
("<small>#{organization || company}</small>" if organization || company.present?),
|
|
187
|
+
("<small>#{email}</small>" if email.present?)
|
|
188
|
+
].compact.join('<br>').html_safe
|
|
189
|
+
elsif owner.present?
|
|
190
|
+
owner.to_s + ' - GUEST'
|
|
191
|
+
else
|
|
192
|
+
'GUEST'
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
181
196
|
def details
|
|
182
197
|
[
|
|
183
198
|
(content_tag(:span, 'Member', class: 'badge badge-warning') if member_ticket?),
|
|
@@ -186,6 +201,10 @@ module Effective
|
|
|
186
201
|
].compact.join(' ').html_safe
|
|
187
202
|
end
|
|
188
203
|
|
|
204
|
+
def responses
|
|
205
|
+
[response1.presence, response2.presence, response3.presence].compact.join('<br>').html_safe
|
|
206
|
+
end
|
|
207
|
+
|
|
189
208
|
def purchasable_name
|
|
190
209
|
["#{event_ticket} - #{name}", details.presence].compact.join('<br>').html_safe
|
|
191
210
|
end
|
|
@@ -321,6 +340,11 @@ module Effective
|
|
|
321
340
|
(waitlisted? && !promoted?)
|
|
322
341
|
end
|
|
323
342
|
|
|
343
|
+
# Manual admin action only
|
|
344
|
+
def send_confirmation_email!
|
|
345
|
+
EffectiveEvents.send_email(:event_registrant_confirmation, self)
|
|
346
|
+
end
|
|
347
|
+
|
|
324
348
|
private
|
|
325
349
|
|
|
326
350
|
def build_user
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
= tab 'Wizard' do
|
|
32
32
|
= render '/admin/events/form_event_registration_content', event: event
|
|
33
33
|
|
|
34
|
-
= tab 'Email' do
|
|
35
|
-
|
|
34
|
+
-# = tab 'Email' do
|
|
35
|
+
-# %p Click New to add one or more emails.
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
-# - datatable = Admin::EffectiveEventNotificationsDatatable.new(event_id: event.id)
|
|
38
|
+
-# = render_datatable(datatable, inline: true, simple: true)
|
|
39
39
|
|
|
40
40
|
= tab 'Access' do
|
|
41
41
|
= render '/admin/events/form_access', event: event
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
- if defined?(EffectiveArticleEditor)
|
|
5
5
|
= f.article_editor :rich_text_excerpt, label: 'Excerpt', hint: 'Will be used for the events excerpt on index pages.'
|
|
6
6
|
= f.article_editor :rich_text_body, label: 'Body', hint: 'The main body of your event'
|
|
7
|
+
= f.article_editor :rich_text_confirmation_email, label: 'Confirmation email', hint: 'Include this content in the event registration confirmation email'
|
|
7
8
|
- else
|
|
8
9
|
= f.rich_text_area :rich_text_excerpt, label: 'Excerpt', hint: 'Will be used for the events excerpt on index pages.'
|
|
9
10
|
= f.rich_text_area :rich_text_body, label: 'Body', hint: 'The main body of your event'
|
|
11
|
+
= f.rich_text_area :rich_text_confirmation_email, label: 'Confirmation email', hint: 'Include this content in the event registration confirmation email'
|
|
10
12
|
|
|
11
13
|
= f.submit
|
|
@@ -15,5 +15,7 @@
|
|
|
15
15
|
= render_checkout_step2(resource.submit_order, purchased_url: wizard_path(:complete), deferred_url: wizard_path(:submitted), declined_url: wizard_path(:checkout))
|
|
16
16
|
|
|
17
17
|
- if resource.submit_order.delayed? && resource.submit_order.deferred?
|
|
18
|
-
=
|
|
18
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
|
19
|
+
= f.hidden_field :id
|
|
20
|
+
= f.save 'Save and Continue'
|
|
19
21
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
= render 'effective/event_registrations/content', resource: resource
|
|
3
3
|
|
|
4
4
|
- raise('expected a submitted event_registration') unless resource.submitted?
|
|
5
|
-
- raise('expected a deffered event_registration submit_order') unless resource.submit_order&.
|
|
5
|
+
- raise('expected a deffered event_registration submit_order') unless resource.submit_order&.was_deferred?
|
|
6
6
|
|
|
7
7
|
-# - if resource.event.delayed?
|
|
8
8
|
-# - raise('expected event delayed_payment_date to match order delayed_payment_date') unless resource.event.delayed_payment_date == resource.submit_order.delayed_payment_date
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
%h2 Event Registrant Confirmation
|
|
2
|
+
|
|
3
|
+
%p Event: #{@event.title}
|
|
4
|
+
%p Date: #{effective_events_event_schedule(@event)}
|
|
5
|
+
%p Ticket: #{@event_registrant.purchasable_name.gsub('<br>', ' - ').html_safe} - #{price_to_currency(@event_registrant.price)}
|
|
6
|
+
|
|
7
|
+
- if @event_registrant.responses.present?
|
|
8
|
+
%p= @event_registrant.responses
|
|
9
|
+
|
|
10
|
+
- if @event_registration.present? && @event_registrant.user == @event_registration.owner
|
|
11
|
+
%p= link_to('View your registration', effective_events.event_event_registration_url(@event, @event_registration))
|
|
12
|
+
|
|
13
|
+
- if @event.rich_text_confirmation_email.present?
|
|
14
|
+
%hr
|
|
15
|
+
= @event.rich_text_confirmation_email.to_s.html_safe
|
|
16
|
+
|
|
17
|
+
- if @event.delayed_payment?
|
|
18
|
+
%strong Please note:
|
|
19
|
+
%ul
|
|
20
|
+
%li Credit card payment will be processed on #{@event.delayed_payment_date.strftime("%A, %B %d, %Y")}
|
|
21
|
+
%li Changes and cancellations must be made before this date.
|
|
22
|
+
%li A receipt will be sent to you after the transaction is completed.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
%h2 Event Registration Confirmation
|
|
2
|
+
|
|
3
|
+
%p Event: #{@event.title}
|
|
4
|
+
%p Date: #{effective_events_event_schedule(@event)}
|
|
5
|
+
%p= link_to('View your registration', effective_events.event_event_registration_url(@event, @event_registration))
|
|
6
|
+
|
|
7
|
+
- if @event.rich_text_confirmation_email.present?
|
|
8
|
+
%hr
|
|
9
|
+
= @event.rich_text_confirmation_email.to_s.html_safe
|
|
10
|
+
|
|
11
|
+
- if @event.delayed_payment?
|
|
12
|
+
%strong Please note:
|
|
13
|
+
%ul
|
|
14
|
+
%li Credit card payment will be processed on #{@event.delayed_payment_date.strftime("%A, %B %d, %Y")}
|
|
15
|
+
%li Changes and cancellations must be made before this date.
|
|
16
|
+
%li A receipt will be sent to you after the transaction is completed.
|
|
17
|
+
|
|
18
|
+
%hr
|
|
19
|
+
|
|
20
|
+
- responses = Array(@event_registrants).any? { |er| er.responses.present? }
|
|
21
|
+
|
|
22
|
+
%table.table
|
|
23
|
+
%thead
|
|
24
|
+
%tr
|
|
25
|
+
%th Qty
|
|
26
|
+
%th Ticket
|
|
27
|
+
- if responses
|
|
28
|
+
%th Details
|
|
29
|
+
%th Price
|
|
30
|
+
%tbody
|
|
31
|
+
- Array(@event_registrants).each do |er|
|
|
32
|
+
%tr
|
|
33
|
+
%td 1
|
|
34
|
+
%td= er.purchasable_name
|
|
35
|
+
- if responses
|
|
36
|
+
%td= er.responses
|
|
37
|
+
%td= price_to_currency(er.price)
|
|
38
|
+
|
|
39
|
+
- Array(@event_addons).each do |ea|
|
|
40
|
+
%tr
|
|
41
|
+
%td 1
|
|
42
|
+
%td= ea.purchasable_name
|
|
43
|
+
- if responses
|
|
44
|
+
%td= ea.notes
|
|
45
|
+
%td= price_to_currency(ea.price)
|
data/config/routes.rb
CHANGED
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.
|
|
4
|
+
version: 2.26.0
|
|
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: 2024-12-
|
|
11
|
+
date: 2024-12-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -296,7 +296,9 @@ files:
|
|
|
296
296
|
- app/views/effective/events/_sidebar.html.haml
|
|
297
297
|
- app/views/effective/events/index.html.haml
|
|
298
298
|
- app/views/effective/events/show.html.haml
|
|
299
|
+
- app/views/effective/events_mailer/event_registrant_confirmation.html.haml
|
|
299
300
|
- app/views/effective/events_mailer/event_registrant_purchased.liquid
|
|
301
|
+
- app/views/effective/events_mailer/event_registration_confirmation.html.haml
|
|
300
302
|
- app/views/simple_calendar/_month_calendar.html.haml
|
|
301
303
|
- config/effective_events.rb
|
|
302
304
|
- config/locales/effective_events.en.yml
|