effective_events 3.0.3 → 3.0.5
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_event_registrants_datatable.rb +4 -4
- data/app/datatables/admin/effective_events_datatable.rb +9 -2
- data/app/helpers/effective_events_helper.rb +18 -6
- data/app/models/effective/event.rb +17 -1
- data/app/models/effective/event_registrant.rb +9 -7
- data/app/models/effective/event_ticket.rb +9 -1
- 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: 4eb3150ad18bc1c994de1545d102ccbca5141f255be86911677869525f806ad8
|
4
|
+
data.tar.gz: 6bf2a2a8f338c76ab78bbcd58ce098eb4c0497da04a77664c065da834e7ba654
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 764efbc68f7b22ac04583815a05ed4e4b4c4168c7a8784884a787b68ed6d6dda1e28b1ec18782055799fc1b75894f81cad0a71e966099daa3e7547c4938739ce
|
7
|
+
data.tar.gz: b97ddb5c7e8957ac126f3328c2117f741d687e6cbcc873853f9ee072bf14c6445ff25b8fdab4b11caef5b0f34c4f56ac2ddcd95e1b4c93a48fe7cf8b31eb4fdd
|
@@ -21,11 +21,11 @@ module Admin
|
|
21
21
|
|
22
22
|
col :event
|
23
23
|
|
24
|
-
col :owner
|
24
|
+
col :owner
|
25
25
|
col :event_registration, visible: false
|
26
26
|
|
27
27
|
if defined?(EffectiveMemberships) && EffectiveMemberships.Organization.respond_to?(:sponsors)
|
28
|
-
col :sponsorship, search: EffectiveMemberships.Organization::SPONSORSHIPS do |er|
|
28
|
+
col :sponsorship, search: EffectiveMemberships.Organization::SPONSORSHIPS, visible: false do |er|
|
29
29
|
er.user.try(:sponsorship)
|
30
30
|
end
|
31
31
|
end
|
@@ -59,9 +59,9 @@ module Admin
|
|
59
59
|
elsif er.first_name.present?
|
60
60
|
"#{er.first_name} #{er.last_name}"
|
61
61
|
elsif er.owner.present?
|
62
|
-
|
62
|
+
'Pending Name'
|
63
63
|
else
|
64
|
-
'
|
64
|
+
'Pending Name'
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -27,8 +27,15 @@ module Admin
|
|
27
27
|
|
28
28
|
col :draft?, as: :boolean, visible: false
|
29
29
|
col :published?, as: :boolean
|
30
|
-
col :published_start_at, label: "Published start", as: :datetime
|
31
|
-
col :published_end_at, label: "Published end", as: :datetime
|
30
|
+
col :published_start_at, label: "Published start", as: :datetime, visible: false
|
31
|
+
col :published_end_at, label: "Published end", as: :datetime, visible: false
|
32
|
+
|
33
|
+
# TODO
|
34
|
+
# col :total_capacity, label: 'Capacity' do |event|
|
35
|
+
# if event.event_tickets_with_capacity.present?
|
36
|
+
# "#{event.total_capacity_taken}/#{event.total_capacity}"
|
37
|
+
# end
|
38
|
+
# end
|
32
39
|
|
33
40
|
col :excerpt, visible: false
|
34
41
|
|
@@ -48,14 +48,26 @@ module EffectiveEventsHelper
|
|
48
48
|
guest_of_member = (ticket.guest_of_member? && (current_user.try(:membership_present?) || current_user.is_any?(:member)))
|
49
49
|
|
50
50
|
prices = if event.early_bird? && ticket.early_bird_price.present?
|
51
|
-
|
51
|
+
{
|
52
|
+
ticket.early_bird_price => badge('Early Bird', 'badge-warning')
|
53
|
+
}
|
52
54
|
elsif ticket.members?
|
53
|
-
|
55
|
+
{
|
56
|
+
ticket.member_price => badge('Member'),
|
57
|
+
(ticket.guest_of_member_price if guest_of_member) => badge('Guest of Member')
|
58
|
+
}
|
54
59
|
elsif ticket.anyone?
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
60
|
+
{
|
61
|
+
ticket.member_price => badge('Member'),
|
62
|
+
(ticket.guest_of_member_price if guest_of_member) => badge('Guest of Member'),
|
63
|
+
(ticket.non_member_price unless guest_of_member) => badge('Non-member'),
|
64
|
+
}
|
65
|
+
end.delete_if { |price| price.blank? }.sort_by { |price| price }
|
66
|
+
|
67
|
+
prices
|
68
|
+
.map { |price, badge| [(price == 0 ? '$0' : price_to_currency(price)), badge].join(' ') }
|
69
|
+
.to_sentence(last_word_connector: ' or ', two_words_connector: ' or ')
|
70
|
+
.html_safe
|
59
71
|
end
|
60
72
|
|
61
73
|
def effective_events_event_tickets_collection(event, namespace = nil)
|
@@ -89,7 +89,7 @@ module Effective
|
|
89
89
|
scope :for_sitemap, -> { published }
|
90
90
|
|
91
91
|
scope :deep, -> {
|
92
|
-
base = includes(:event_registrants, :
|
92
|
+
base = includes(:event_registrants, :rich_texts, event_tickets: :event_registrants)
|
93
93
|
base = base.includes(:pg_search_document) if defined?(PgSearch)
|
94
94
|
base
|
95
95
|
}
|
@@ -283,6 +283,22 @@ module Effective
|
|
283
283
|
start_at
|
284
284
|
end
|
285
285
|
|
286
|
+
def event_tickets_with_capacity
|
287
|
+
event_tickets.reject(&:archived?).select { |et| et.capacity.present? }
|
288
|
+
end
|
289
|
+
|
290
|
+
def total_capacity_available
|
291
|
+
event_tickets_with_capacity.sum { |et| et.capacity_available }
|
292
|
+
end
|
293
|
+
|
294
|
+
def total_capacity_taken
|
295
|
+
event_tickets_with_capacity.sum { |et| et.capacity_taken }
|
296
|
+
end
|
297
|
+
|
298
|
+
def total_capacity
|
299
|
+
event_tickets_with_capacity.sum { |et| et.capacity }
|
300
|
+
end
|
301
|
+
|
286
302
|
# The amount of tickets that can be purchased except ones from an event registration
|
287
303
|
def capacity_selectable(event_ticket:, event_registration: nil)
|
288
304
|
return 0 if event_ticket.archived?
|
@@ -190,9 +190,9 @@ module Effective
|
|
190
190
|
if first_name.present?
|
191
191
|
"#{first_name} #{last_name}"
|
192
192
|
elsif owner.present?
|
193
|
-
|
193
|
+
'Pending Name'
|
194
194
|
else
|
195
|
-
'
|
195
|
+
'Pending Name'
|
196
196
|
end
|
197
197
|
end
|
198
198
|
|
@@ -205,9 +205,9 @@ module Effective
|
|
205
205
|
("<small>#{email}</small>" if email.present?)
|
206
206
|
].compact.join('<br>').html_safe
|
207
207
|
elsif owner.present?
|
208
|
-
|
208
|
+
'Pending Name'
|
209
209
|
else
|
210
|
-
'
|
210
|
+
'Pending Name'
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
@@ -229,7 +229,7 @@ module Effective
|
|
229
229
|
end
|
230
230
|
|
231
231
|
def last_first_name
|
232
|
-
(first_name.present? && last_name.present?) ? "#{last_name}, #{first_name}" : "
|
232
|
+
(first_name.present? && last_name.present?) ? "#{last_name}, #{first_name}" : "Pending Name"
|
233
233
|
end
|
234
234
|
|
235
235
|
# Anyone or Members tickets
|
@@ -442,8 +442,10 @@ module Effective
|
|
442
442
|
|
443
443
|
if early_bird?
|
444
444
|
event_ticket.early_bird_price
|
445
|
-
elsif blank_registrant?
|
446
|
-
event_ticket.
|
445
|
+
elsif blank_registrant? && owner.try(:membership_present?)
|
446
|
+
event_ticket.blank_registrant_member_price
|
447
|
+
elsif blank_registrant? && !owner.try(:membership_present?)
|
448
|
+
event_ticket.blank_registrant_non_member_price
|
447
449
|
elsif member?
|
448
450
|
event_ticket.member_price
|
449
451
|
elsif guest_of_member?
|
@@ -142,8 +142,16 @@ module Effective
|
|
142
142
|
event&.early_bird_end_at.present?
|
143
143
|
end
|
144
144
|
|
145
|
+
def blank_registrant_member_price
|
146
|
+
[member_price, (guest_of_member? ? guest_of_member_price : non_member_price)].compact.max
|
147
|
+
end
|
148
|
+
|
149
|
+
def blank_registrant_non_member_price
|
150
|
+
[member_price, non_member_price].compact.max
|
151
|
+
end
|
152
|
+
|
145
153
|
def maximum_price
|
146
|
-
[
|
154
|
+
[member_price, (guest_of_member_price if guest_of_member?), non_member_price].compact.max
|
147
155
|
end
|
148
156
|
|
149
157
|
# “Anyone” can buy tickets have: Member, Non-member, and Guest of Member pricing. Member and Non-member are always required.
|
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: 3.0.
|
4
|
+
version: 3.0.5
|
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-
|
11
|
+
date: 2025-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|