effective_events 3.2.9 → 3.2.11

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: 3a20e23c2d1f6ff1fc2e33cfa799e6455d2c82263ff910a2c920de564d68588d
4
- data.tar.gz: bd7fda0dabec7029fd0eea28edd2beef18a21aa25dae34789d6ad16607a4672c
3
+ metadata.gz: 9c4d14430b3a1197b810f95aa457a8ddc248f2e464e72b78fa39eb4f79b8418b
4
+ data.tar.gz: dcb24ff04fecbb4806d2627f474a11addcbfc31582c9b274741d80f4e1a5db30
5
5
  SHA512:
6
- metadata.gz: d19a7f0d3f1971aa9d93cb50422623c473efc84a0b2b9fae580a1f42212b4e6487841638820cdcf69434b89a62f2a7b83f5df3de3fe6efa61f9a3e063f49e8f7
7
- data.tar.gz: b5f65bbc418de37eba98bdb4e3e5437703d2012020e8ec770b12aa5f848a19356b983e828519224166df86aaa2b074f05f478a5f24a21946a86fd569583afbbe
6
+ metadata.gz: 8ac4337b712ed5f1071fbe75c818344f346fd69721287b3a9a8bf0b0859f1724bb9896ed81946dffdbf50b4b1ad07c4a856aca0af60c3a4036a4870415f3d9f4
7
+ data.tar.gz: d229d1cf992b268af7db6430b37df49753849edc52e2a255317235fba74ee4f15d7fe862bcf84b4236ec6e533e962450cf434219072b5deb50c32035df689a65
@@ -135,7 +135,7 @@ module EffectiveEventsEventRegistration
135
135
  validate(if: -> { current_step == :tickets }) do
136
136
  unavailable_event_tickets.each do |event_ticket|
137
137
  errors.add(:base, "The requested number of #{event_ticket} tickets are not available")
138
- event_ticket_selections.find { |ets| ets.event_ticket == event_ticket }.errors.add(:quantity, "not available")
138
+ event_ticket_selections.find { |ets| ets.event_ticket == event_ticket }&.errors&.add(:quantity, "not available")
139
139
  end
140
140
  end
141
141
 
@@ -408,10 +408,14 @@ module EffectiveEventsEventRegistration
408
408
  def waitlist_event_registrants
409
409
  present_event_registrants.group_by { |er| er.event_ticket }.each do |event_ticket, event_registrants|
410
410
  if event_ticket.waitlist?
411
- existing = event_registrants.find { |er| er.persisted? && er.waitlisted_not_promoted? }
411
+ existing = event_registrants.find { |er| er.persisted? && er.waitlisted_not_promoted? }.present?
412
412
  capacity = event.capacity_available(event_ticket: event_ticket, event_registration: self)
413
413
 
414
- event_registrants.reject(&:registered?).each_with_index { |er, index| er.assign_attributes(waitlisted: (existing || index >= capacity)) }
414
+ # Count already-registered non-waitlisted registrants in this registration
415
+ registered = event_registrants.count { |er| er.registered? && !er.waitlisted? }
416
+ available = [capacity - registered, 0].max
417
+
418
+ event_registrants.reject(&:registered?).each_with_index { |er, index| er.assign_attributes(waitlisted: (existing || index >= available)) }
415
419
  else
416
420
  event_registrants.each { |er| er.assign_attributes(waitlisted: false) }
417
421
  end
@@ -493,8 +497,9 @@ module EffectiveEventsEventRegistration
493
497
 
494
498
  # Find or build
495
499
  def event_ticket_selection(event_ticket:, quantity: 0)
496
- selection = event_ticket_selections.find { |ets| ets.event_ticket == event_ticket }
497
- selection || event_ticket_selections.build(event_ticket: event_ticket, quantity: quantity)
500
+ selection = event_ticket_selections.find { |ets| ets.event_ticket == event_ticket } || event_ticket_selections.build(event_ticket: event_ticket)
501
+ selection.assign_attributes(quantity: quantity)
502
+ selection
498
503
  end
499
504
 
500
505
  # This builds the default event addons used by the wizard form
@@ -95,7 +95,7 @@ module Effective
95
95
  end
96
96
 
97
97
  before_validation(if: -> { user.blank? && first_name.present? && last_name.present? && email.present? }) do
98
- build_user() if EffectiveEvents.create_users
98
+ build_user()
99
99
  build_organization_and_representative() if EffectiveEvents.organization_enabled?
100
100
  end
101
101
 
@@ -575,7 +575,7 @@ module Effective
575
575
  if EffectiveEvents.organization_enabled? && user_klass.try(:effective_memberships_organization_user?)
576
576
  assign_attributes(organization: existing_user.organizations.first) if existing_user.organizations.present?
577
577
  end
578
- else
578
+ elsif EffectiveEvents.create_users
579
579
  # Otherwise create a new user
580
580
  new_user = user_klass.create(
581
581
  first_name: first_name.strip,
@@ -587,7 +587,7 @@ module Effective
587
587
  assign_attributes(user: new_user)
588
588
  end
589
589
 
590
- user.valid?
590
+ user&.valid?
591
591
  end
592
592
 
593
593
  # The organization might already be set here
@@ -21,6 +21,9 @@
21
21
  - else
22
22
  = effective_events_ticket_prices(event, event_ticket)
23
23
 
24
+ - if event_registrant.waitlisted_not_promoted?
25
+ %span.badge.badge-warning Waitlist
26
+
24
27
  = fr.check_box :blank_registrant, label: "I will return and add this ticket's information later"
25
28
 
26
29
  = fr.show_if(:blank_registrant, false) do
@@ -1,3 +1,3 @@
1
1
  module EffectiveEvents
2
- VERSION = '3.2.9'.freeze
2
+ VERSION = '3.2.11'.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: 3.2.9
4
+ version: 3.2.11
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-28 00:00:00.000000000 Z
11
+ date: 2026-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails