effective_events 0.13.0 → 0.13.1
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/effective_event_registrations_datatable.rb +6 -5
- data/app/models/concerns/effective_events_event_registration.rb +24 -10
- data/app/models/effective/event.rb +13 -0
- data/app/views/effective/event_registrants/_fields.html.haml +2 -0
- data/app/views/effective/event_registrants/_fields_member_or_non_member.html.haml +1 -1
- data/app/views/effective/event_registrations/_dashboard.html.haml +28 -11
- data/app/views/effective/event_registrations/_summary.html.haml +5 -0
- data/app/views/effective/event_registrations/addons.html.haml +4 -0
- data/app/views/effective/event_registrations/checkout.html.haml +4 -0
- data/app/views/effective/event_registrations/submitted.html.haml +12 -0
- data/app/views/effective/event_registrations/tickets.html.haml +4 -0
- data/lib/effective_events/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3436a306cb79a123bec79007b2730897d0bb3566dc1c0f2dbd6a31c5eb608a74
|
4
|
+
data.tar.gz: 91c60cfc2122eae660a4fc5151f395bf9709bf00c0ccec0f50915e3a2c84f3a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 972bffdad5a0d13913ec5ab267c82308e1808d5217d0717bd2dba5f823f086974678e32e1c93a9d5ca47165941f006e9877748c2290b681711d5527a9661bbfb
|
7
|
+
data.tar.gz: c268aa57f91a45d32af129d493ebf5a3dfe7dc4941e47cfb13d1efcf02353ce8c7d2fbea1ba01c073d9f1365e8284d2c00e03355deb7e1791ca997440447615c
|
@@ -21,13 +21,9 @@ class EffectiveEventRegistrationsDatatable < Effective::Datatable
|
|
21
21
|
col :orders, action: :show, visible: false, search: :string
|
22
22
|
|
23
23
|
actions_col(actions: []) do |er|
|
24
|
-
if er.draft?
|
25
|
-
dropdown_link_to('Continue', effective_events.event_event_registration_build_path(er.event, er, er.next_step), 'data-turbolinks' => false)
|
26
|
-
dropdown_link_to('Delete', effective_events.event_event_registration_path(er.event, er), 'data-confirm': "Really delete #{er}?", 'data-method': :delete)
|
27
|
-
elsif er.submitted?
|
24
|
+
if er.draft? || er.submitted?
|
28
25
|
dropdown_link_to('Continue', effective_events.event_event_registration_build_path(er.event, er, er.next_step), 'data-turbolinks' => false)
|
29
26
|
elsif er.completed?
|
30
|
-
|
31
27
|
if EffectiveResources.authorized?(self, :update_blank_registrants, er)
|
32
28
|
dropdown_link_to('Continue', effective_events.event_event_registration_path(er.event, er))
|
33
29
|
else
|
@@ -40,6 +36,11 @@ class EffectiveEventRegistrationsDatatable < Effective::Datatable
|
|
40
36
|
dropdown_link_to('Register Again', url)
|
41
37
|
end
|
42
38
|
end
|
39
|
+
|
40
|
+
if EffectiveResources.authorized?(self, :destroy, er)
|
41
|
+
dropdown_link_to('Delete', effective_events.event_event_registration_path(er.event, er), 'data-confirm': "Really delete #{er}?", 'data-method': :delete)
|
42
|
+
end
|
43
|
+
|
43
44
|
end
|
44
45
|
end
|
45
46
|
|
@@ -92,6 +92,9 @@ module EffectiveEventsEventRegistration
|
|
92
92
|
scope :in_progress, -> { where(status: [:draft, :submitted]) }
|
93
93
|
scope :done, -> { where(status: :completed) }
|
94
94
|
|
95
|
+
scope :delayed, -> { where(event_id: Effective::Event.delayed) }
|
96
|
+
scope :not_delayed, -> { where.not(event_id: Effective::Event.delayed) }
|
97
|
+
|
95
98
|
scope :for, -> (user) { where(owner: user) }
|
96
99
|
|
97
100
|
# All Steps validations
|
@@ -125,19 +128,25 @@ module EffectiveEventsEventRegistration
|
|
125
128
|
# If we're submitted. Try to move to completed.
|
126
129
|
before_save(if: -> { submitted? }) { try_completed! }
|
127
130
|
|
128
|
-
def
|
129
|
-
|
131
|
+
def delayed_payment_date_upcoming?
|
132
|
+
event&.delayed_payment_date_upcoming?
|
130
133
|
end
|
131
134
|
|
132
135
|
def can_visit_step?(step)
|
133
136
|
return false if step == :complete && !completed?
|
134
137
|
return true if step == :complete && completed?
|
135
138
|
|
136
|
-
# If
|
137
|
-
if submitted? && !
|
139
|
+
# If submitted with a cheque/phone deferred (but not delayed) processor then lock down the steps.
|
140
|
+
if submitted? && !delayed_payment_date_upcoming?
|
138
141
|
return (step == :submitted)
|
139
142
|
end
|
140
143
|
|
144
|
+
# Add ability to edit registrations up until payment date
|
145
|
+
if submitted? && delayed_payment_date_upcoming?
|
146
|
+
return can_revisit_completed_steps(step)
|
147
|
+
end
|
148
|
+
|
149
|
+
# Default
|
141
150
|
can_revisit_completed_steps(step)
|
142
151
|
end
|
143
152
|
|
@@ -190,6 +199,16 @@ module EffectiveEventsEventRegistration
|
|
190
199
|
completed?
|
191
200
|
end
|
192
201
|
|
202
|
+
def tickets!
|
203
|
+
after_commit { update_submit_fees_and_order! } if submit_order.present?
|
204
|
+
save!
|
205
|
+
end
|
206
|
+
|
207
|
+
def addons!
|
208
|
+
after_commit { update_submit_fees_and_order! } if submit_order.present?
|
209
|
+
save!
|
210
|
+
end
|
211
|
+
|
193
212
|
def try_completed!
|
194
213
|
return false unless submitted?
|
195
214
|
return false unless submit_order&.purchased?
|
@@ -225,12 +244,7 @@ module EffectiveEventsEventRegistration
|
|
225
244
|
if event_registrants.blank?
|
226
245
|
raise('expected owner and event to be present') unless owner && event
|
227
246
|
|
228
|
-
event_registrants.build(
|
229
|
-
first_name: owner.try(:first_name),
|
230
|
-
last_name: owner.try(:last_name),
|
231
|
-
email: owner.try(:email),
|
232
|
-
company: owner.try(:company)
|
233
|
-
)
|
247
|
+
event_registrants.build()
|
234
248
|
end
|
235
249
|
|
236
250
|
event_registrants
|
@@ -131,6 +131,10 @@ module Effective
|
|
131
131
|
scope
|
132
132
|
}
|
133
133
|
|
134
|
+
scope :delayed, -> { where(delayed_payment: true).where.not(delayed_payment_date: nil) }
|
135
|
+
scope :delayed_payment_date_past, -> { delayed.where(arel_table[:delayed_payment_date].lteq(Time.zone.today)) }
|
136
|
+
scope :delayed_payment_date_upcoming, -> { delayed.where(arel_table[:delayed_payment_date].gt(Time.zone.today)) }
|
137
|
+
|
134
138
|
validates :title, presence: true, length: { maximum: 255 }
|
135
139
|
validates :published_at, presence: true, unless: -> { draft? }
|
136
140
|
validates :start_at, presence: true
|
@@ -283,5 +287,14 @@ module Effective
|
|
283
287
|
(registered + quantity) <= event_product.capacity
|
284
288
|
end
|
285
289
|
|
290
|
+
def delayed?
|
291
|
+
delayed_payment? && delayed_payment_date.present?
|
292
|
+
end
|
293
|
+
|
294
|
+
def delayed_payment_date_upcoming?
|
295
|
+
return false unless delayed?
|
296
|
+
delayed_payment_date > Time.zone.now.to_date
|
297
|
+
end
|
298
|
+
|
286
299
|
end
|
287
300
|
end
|
@@ -22,6 +22,8 @@
|
|
22
22
|
= f.check_box :member_registrant, label: 'Yes, this ticket will be for a member'
|
23
23
|
|
24
24
|
= f.show_if(:blank_registrant, false, nested: true) do
|
25
|
+
%hr
|
26
|
+
|
25
27
|
- if ticket.regular?
|
26
28
|
= render('effective/event_registrants/fields_regular', f: f)
|
27
29
|
- elsif ticket.member_only?
|
@@ -1,6 +1,6 @@
|
|
1
1
|
- # Choose member
|
2
2
|
= f.hidden_field :user_type, value: current_user.class.name
|
3
|
-
= f.select :user_id, effective_events_event_registrant_user_collection(f.object),
|
3
|
+
= f.select :user_id, effective_events_event_registrant_user_collection(f.object), hint: effective_events_event_registrant_user_hint()
|
4
4
|
|
5
5
|
= f.show_if(:user_id, '', nested: true) do
|
6
6
|
%p.text-center - or -
|
@@ -6,17 +6,34 @@
|
|
6
6
|
- if registration.present?
|
7
7
|
%h2 In Progress Event Registrations
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
9
|
+
- if registration.draft?
|
10
|
+
%p
|
11
|
+
Your registration for
|
12
|
+
= link_to(registration.event, effective_events.event_path(registration.event))
|
13
|
+
is incomplete
|
14
|
+
|
15
|
+
%p
|
16
|
+
Please
|
17
|
+
= link_to("Continue registration for #{registration.event}", effective_events.event_event_registration_build_path(registration.event, registration, registration.next_step), 'data-turbolinks' => false, class: 'btn btn-primary')
|
18
|
+
or you can
|
19
|
+
= link_to('Abandon registration', effective_events.event_event_registration_path(registration.event, registration), 'data-confirm': "Really delete registration for #{registration.event}?", 'data-method': :delete, class: 'btn btn-danger')
|
20
|
+
to register for another event.
|
21
|
+
|
22
|
+
- if registration.submitted?
|
23
|
+
%p
|
24
|
+
Your registration for
|
25
|
+
= link_to(registration.event, effective_events.event_path(registration.event))
|
26
|
+
has been submitted. You're all done!
|
27
|
+
|
28
|
+
- if registration.submitted? && registration.event.delayed_payment_date_upcoming?
|
29
|
+
%p= registration.submit_order.delayed_payment_info
|
30
|
+
|
31
|
+
- if registration.submitted? && registration.event.delayed_payment_date_upcoming? && registration.can_visit_step?(:tickets)
|
32
|
+
%p
|
33
|
+
You can #{link_to('change your registration', effective_events.event_event_registration_build_path(registration.event, registration, :tickets))} until the payment date
|
34
|
+
or
|
35
|
+
= link_to('abandon registration', effective_events.event_event_registration_path(registration.event, registration), 'data-confirm': "Really delete registration for #{registration.event}?", 'data-method': :delete)
|
36
|
+
to cancel and register for another event.
|
20
37
|
|
21
38
|
%hr
|
22
39
|
|
@@ -16,4 +16,8 @@
|
|
16
16
|
= f.has_many :event_addons, f.object.build_event_addons do |fp|
|
17
17
|
= render('effective/event_addons/fields', f: fp, event: f.object.event)
|
18
18
|
|
19
|
+
- if resource.delayed_payment_date_upcoming? && resource.submit_order.present?
|
20
|
+
.alert.alert-info If the price of your registration changes, your order will be automatically updated.
|
21
|
+
|
22
|
+
%hr
|
19
23
|
= f.save 'Save and Continue'
|
@@ -14,3 +14,7 @@
|
|
14
14
|
= card do
|
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
|
+
|
18
|
+
- if resource.submit_order.delayed? && resource.submit_order.deferred?
|
19
|
+
= link_to 'Save and Continue', wizard_path(:submitted), class: 'btn btn-primary'
|
20
|
+
|
@@ -4,6 +4,9 @@
|
|
4
4
|
- raise('expected a submitted event_registration') unless resource.submitted?
|
5
5
|
- raise('expected a deffered event_registration submit_order') unless resource.submit_order&.deferred?
|
6
6
|
|
7
|
+
- if resource.event.delayed?
|
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
|
9
|
+
|
7
10
|
.mb-4
|
8
11
|
= link_to "Return to Dashboard", return_to_dashboard_path, class: 'btn btn-lg btn-primary btn-block'
|
9
12
|
|
@@ -14,6 +17,15 @@
|
|
14
17
|
%h3 Incomplete Ticket Information
|
15
18
|
= render 'effective/event_registrations/form_blank_registrants', event_registration: resource
|
16
19
|
|
20
|
+
- if resource.delayed_payment_date_upcoming? && resource.can_visit_step?(:tickets)
|
21
|
+
- order = resource.submit_order
|
22
|
+
|
23
|
+
= card do
|
24
|
+
%h3 All done
|
25
|
+
%p Your registration for #{resource.event} has been submitted. You're all done!
|
26
|
+
%p= resource.submit_order.delayed_payment_info
|
27
|
+
%p You can #{link_to('change your registration', wizard_path(:tickets))} until the payment date.
|
28
|
+
|
17
29
|
= render 'effective/event_registrations/event_registration', event_registration: resource
|
18
30
|
= render 'effective/event_registrations/orders', event_registration: resource
|
19
31
|
|
@@ -9,4 +9,8 @@
|
|
9
9
|
= f.has_many :event_registrants, f.object.build_event_registrants do |fr|
|
10
10
|
= render('effective/event_registrants/fields', f: fr, event: f.object.event, namespace: :events)
|
11
11
|
|
12
|
+
- if resource.delayed_payment_date_upcoming? && resource.submit_order.present?
|
13
|
+
.alert.alert-info If the price of your registration changes, your order will be automatically updated.
|
14
|
+
|
15
|
+
%hr
|
12
16
|
= f.save 'Save and Continue'
|
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: 0.13.
|
4
|
+
version: 0.13.1
|
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-
|
11
|
+
date: 2024-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|