effective_events 0.19.2 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/effective_events/base.js +32 -0
- data/app/controllers/effective/event_registrants_select2_ajax_controller.rb +61 -0
- data/app/controllers/effective/event_registrations_controller.rb +17 -1
- data/app/datatables/effective_event_registrants_datatable.rb +11 -11
- data/app/datatables/effective_event_registrations_datatable.rb +2 -1
- data/app/helpers/effective_events_helper.rb +2 -19
- data/app/mailers/effective/events_mailer.rb +1 -1
- data/app/models/concerns/effective_events_event_registration.rb +141 -51
- data/app/models/effective/event.rb +32 -12
- data/app/models/effective/event_notification.rb +1 -1
- data/app/models/effective/event_registrant.rb +171 -45
- data/app/models/effective/event_ticket.rb +20 -17
- data/app/models/effective/event_ticket_selection.rb +28 -0
- data/app/views/admin/event_registrants/_form.html.haml +16 -3
- data/app/views/admin/event_tickets/_form.html.haml +1 -1
- data/app/views/effective/event_registrants/_fields.html.haml +47 -28
- data/app/views/effective/event_registrations/_details.html.haml +1 -0
- data/app/views/effective/event_registrations/_fields_event_registrants.html.haml +26 -0
- data/app/views/effective/event_registrations/_fields_event_ticket_selections.html.haml +85 -0
- data/app/views/effective/event_registrations/_form_blank_registrants.html.haml +12 -14
- data/app/views/effective/event_registrations/_layout.html.haml +9 -1
- data/app/views/effective/event_registrations/billing.html.haml +1 -1
- data/app/views/effective/event_registrations/details.html.haml +10 -0
- data/app/views/effective/event_registrations/summary.html.haml +2 -2
- data/app/views/effective/event_registrations/tickets.html.haml +3 -13
- data/app/views/effective/events/show.html.haml +34 -34
- data/config/effective_events.rb +11 -4
- data/config/routes.rb +5 -0
- data/db/migrate/101_create_effective_events.rb +16 -1
- data/lib/effective_events/version.rb +1 -1
- data/lib/effective_events.rb +6 -4
- metadata +8 -7
- data/app/views/effective/event_registrants/_fields_member_only.html.haml +0 -10
- data/app/views/effective/event_registrants/_fields_member_or_non_member.html.haml +0 -34
- data/app/views/effective/event_registrants/_fields_questions.html.haml +0 -8
- data/app/views/effective/event_registrants/_fields_regular.html.haml +0 -8
- data/app/views/effective/event_registrations/_event_tickets.html.haml +0 -68
@@ -1,32 +1,30 @@
|
|
1
1
|
= effective_form_with(model: resource, url: effective_events.update_blank_registrants_event_event_registration_path(event_registration.event, event_registration), method: :put) do |f|
|
2
2
|
= f.hidden_field :id
|
3
3
|
|
4
|
+
- event = f.object.event
|
4
5
|
- event_registrants = f.object.event_registrants.select(&:blank_registrant?)
|
5
6
|
|
6
7
|
%p Please update the information for the following #{pluralize(event_registrants.count, 'incomplete ticket')}:
|
7
8
|
|
8
9
|
= f.fields_for :event_registrants, event_registrants do |fr|
|
9
|
-
-
|
10
|
-
-
|
10
|
+
- event_registrant = fr.object
|
11
|
+
- event_ticket = event_registrant.event_ticket
|
11
12
|
|
12
13
|
= card do
|
13
14
|
%p
|
14
|
-
=
|
15
|
+
= event_ticket
|
15
16
|
= ' - '
|
16
|
-
|
17
|
+
|
18
|
+
- if event_ticket.member_or_non_member? && event_registrant.first_name.blank? && !event.early_bird?
|
19
|
+
= effective_events_ticket_price(event, event_ticket)
|
20
|
+
- else
|
21
|
+
= price_to_currency(event_registrant.price)
|
22
|
+
|
23
|
+
= event_registrant.details
|
17
24
|
|
18
25
|
= fr.check_box :blank_registrant, label: "I will return and add this ticket's information later"
|
19
26
|
|
20
27
|
= fr.show_if(:blank_registrant, false) do
|
21
|
-
|
22
|
-
= render('effective/event_registrants/fields_regular', f: fr)
|
23
|
-
- elsif ticket.member_only?
|
24
|
-
= render('effective/event_registrants/fields_member_only', f: fr)
|
25
|
-
- elsif ticket.member_or_non_member?
|
26
|
-
= render('effective/event_registrants/fields_member_or_non_member', f: fr)
|
27
|
-
- else
|
28
|
-
- raise("Unexpected ticket category: #{ticket.category || 'nil'}")
|
29
|
-
|
30
|
-
= render('effective/event_registrants/fields_questions', f: fr, ticket: ticket)
|
28
|
+
= render('effective/event_registrants/fields', f: fr)
|
31
29
|
|
32
30
|
= f.submit 'Save Ticket Information', center: true
|
@@ -1,3 +1,11 @@
|
|
1
1
|
.row
|
2
|
-
.col-lg-3.mb-3
|
2
|
+
.col-lg-3.mb-3
|
3
|
+
= render_wizard_sidebar(resource)
|
4
|
+
|
5
|
+
- if resource.display_countdown?
|
6
|
+
.mt-4
|
7
|
+
|
8
|
+
= card do
|
9
|
+
%p Your tickets are reserved until #{resource.selected_expires_at.strftime("%I:%M%P %Z")}
|
10
|
+
|
3
11
|
.col-lg-9.mb-3= yield
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
- raise('expected owner to respond to billing_address') unless resource.owner.respond_to?(:billing_address)
|
5
5
|
|
6
|
-
= card
|
6
|
+
= card do
|
7
7
|
%p Please enter your billing address
|
8
8
|
|
9
9
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render('effective/event_registrations/content', resource: resource)
|
3
|
+
|
4
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
5
|
+
= f.hidden_field :id
|
6
|
+
|
7
|
+
= render('effective/event_registrations/fields_event_registrants', form: f)
|
8
|
+
|
9
|
+
%hr
|
10
|
+
= f.save 'Save and Continue'
|
@@ -1,8 +1,8 @@
|
|
1
1
|
= render 'layout' do
|
2
|
-
= render
|
3
|
-
|
2
|
+
= render('effective/event_registrations/content', resource: resource)
|
4
3
|
= render('effective/event_registrations/event_registration', event_registration: resource)
|
5
4
|
|
6
5
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
7
6
|
= f.hidden_field :id
|
7
|
+
|
8
8
|
= f.save 'Save and Continue'
|
@@ -1,20 +1,10 @@
|
|
1
1
|
= render 'layout' do
|
2
|
-
|
3
|
-
= render 'effective/event_registrations/content', resource: resource
|
4
|
-
|
5
|
-
= render 'effective/event_registrations/event_tickets', resource: resource
|
2
|
+
= render('effective/event_registrations/content', resource: resource)
|
6
3
|
|
7
4
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
8
5
|
= f.hidden_field :id
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
= f.has_many :event_registrants, f.object.build_event_registrants, reorder: false do |fr|
|
13
|
-
= render('effective/event_registrants/fields', f: fr, event: f.object.event, namespace: :events)
|
14
|
-
|
15
|
-
- if resource.delayed_payment_date_upcoming? && resource.submit_order&.delayed? && resource.submit_order&.deferred?
|
16
|
-
.alert.alert-info If the price of your registration changes, your order will be automatically updated.
|
7
|
+
= card do
|
8
|
+
= render('effective/event_registrations/fields_event_ticket_selections', form: f)
|
17
9
|
|
18
|
-
%hr
|
19
|
-
.mb-4
|
20
10
|
= f.save 'Save and Continue'
|
@@ -19,48 +19,48 @@
|
|
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'
|
21
21
|
|
22
|
-
.
|
23
|
-
.
|
24
|
-
%ul.list-unstyled
|
25
|
-
%li.mb-3
|
26
|
-
%label Date and Time
|
27
|
-
%br
|
28
|
-
= effective_events_event_schedule(@event)
|
22
|
+
- if @event.file.attached?
|
23
|
+
= image_tag url_for(@event.file), class: "effective-events-image d-none d-lg-block float-right", alt: @event.title, width: "350", height: "220"
|
29
24
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
25
|
+
%ul.list-unstyled.mb-0
|
26
|
+
%li.mb-3
|
27
|
+
%label Date and Time
|
28
|
+
%br
|
29
|
+
= effective_events_event_schedule(@event)
|
35
30
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
- if @event.registration_start_at.present? && @event.registration_start_at > Time.zone.now
|
32
|
+
%li.mb-3
|
33
|
+
%label Registration Opens
|
34
|
+
%br
|
35
|
+
= @event.registration_start_at.strftime("%A, %B %d, %Y · %l:%M%P")
|
41
36
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
37
|
+
- if @event.early_bird_end_at.present?
|
38
|
+
%li.mb-3
|
39
|
+
%label Early Bird Rate Ends
|
40
|
+
%br
|
41
|
+
= @event.early_bird_end_at.strftime("%A, %B %d, %Y · %l:%M%P")
|
47
42
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
-# - @event.event_tickets.each do |ticket|
|
54
|
-
-# %li= "#{ticket} (#{effective_events_ticket_price(@event, ticket)})"
|
43
|
+
- if @event.registration_end_at.present?
|
44
|
+
%li.mb-3
|
45
|
+
%label Registration Closes
|
46
|
+
%br
|
47
|
+
= @event.registration_end_at.strftime("%A, %B %d, %Y · %l:%M%P")
|
55
48
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
49
|
+
-# .col-md-auto
|
50
|
+
-# - if @event.event_tickets.present?
|
51
|
+
-# %label Tickets
|
52
|
+
-# %br
|
53
|
+
-# %ul
|
54
|
+
-# - @event.event_tickets.each do |ticket|
|
55
|
+
-# %li= "#{ticket} (#{effective_events_ticket_price(@event, ticket)})"
|
61
56
|
|
62
57
|
- if @event.body.present?
|
63
58
|
.effective-event-body.mb-5
|
64
59
|
= @event.body.to_s
|
65
60
|
|
61
|
+
- if @event.registerable?
|
62
|
+
.register.mb-4
|
63
|
+
- url = @event.external_registration_url.presence || effective_events.new_event_event_registration_path(@event)
|
64
|
+
= link_to 'Register', url, class: 'btn btn-lg btn-primary'
|
65
|
+
|
66
66
|
= link_to("← #{events_name_label}".html_safe, effective_events.events_path, class: "btn btn-secondary my-4")
|
data/config/effective_events.rb
CHANGED
@@ -12,16 +12,23 @@ EffectiveEvents.setup do |config|
|
|
12
12
|
# Events can be restricted by role
|
13
13
|
config.use_effective_roles = true
|
14
14
|
|
15
|
+
# Display effective_memberships organizations on the Ticket Details screen instead of a company field
|
16
|
+
# Create representatives when there is a user and an organization
|
17
|
+
config.organization_enabled = false
|
18
|
+
|
19
|
+
# Create users when you fill out new user information from the Ticket Details screen.
|
20
|
+
# Otherwise no users will be created. If true a User will be required for all event_registrants.
|
21
|
+
config.create_users = false
|
22
|
+
|
23
|
+
# Turn on the validation. You must have a company or organization when filling out Ticket Details screen.
|
24
|
+
config.company_or_organization_required = false
|
25
|
+
|
15
26
|
# Categories
|
16
27
|
config.categories = ['Events']
|
17
28
|
|
18
29
|
# Hint text for event images attachments
|
19
30
|
config.events_hint_text = 'Optional. Shown on the events index and event pages. Dimensions are 220px tall and 350px wide.'
|
20
31
|
|
21
|
-
# Validations for Event Registrants
|
22
|
-
# config.event_registrant_required_fields = [:first_name, :last_name, :email, :company]
|
23
|
-
config.event_registrant_required_fields = [:first_name, :last_name, :email]
|
24
|
-
|
25
32
|
# Mailer Settings
|
26
33
|
# Please see config/initializers/effective_resources.rb for default effective_* gem mailer settings
|
27
34
|
#
|
data/config/routes.rb
CHANGED
@@ -24,6 +24,11 @@ EffectiveEvents::Engine.routes.draw do
|
|
24
24
|
put :update_blank_registrants, on: :member
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
resources :event_registrants_select2_ajax, only: [] do
|
29
|
+
get :users, on: :collection
|
30
|
+
get :organizations, on: :collection
|
31
|
+
end
|
27
32
|
end
|
28
33
|
|
29
34
|
namespace :admin do
|
@@ -77,11 +77,14 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
|
77
77
|
t.integer :user_id
|
78
78
|
t.string :user_type
|
79
79
|
|
80
|
+
t.integer :organization_id
|
81
|
+
t.string :organization_type
|
82
|
+
|
80
83
|
t.string :first_name
|
81
84
|
t.string :last_name
|
82
85
|
t.string :email
|
83
|
-
|
84
86
|
t.string :company
|
87
|
+
|
85
88
|
t.string :number
|
86
89
|
t.text :notes
|
87
90
|
|
@@ -91,6 +94,7 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
|
91
94
|
t.boolean :waitlisted, default: false
|
92
95
|
t.boolean :promoted, default: false
|
93
96
|
|
97
|
+
t.datetime :selected_at
|
94
98
|
t.datetime :registered_at
|
95
99
|
|
96
100
|
t.text :response1
|
@@ -172,6 +176,17 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
|
172
176
|
t.datetime :created_at
|
173
177
|
end
|
174
178
|
|
179
|
+
create_table :event_ticket_selections do |t|
|
180
|
+
t.integer :event_registration_id
|
181
|
+
t.string :event_registration_type
|
182
|
+
|
183
|
+
t.string :event_ticket_id
|
184
|
+
t.integer :quantity
|
185
|
+
|
186
|
+
t.datetime :updated_at
|
187
|
+
t.datetime :created_at
|
188
|
+
end
|
189
|
+
|
175
190
|
add_index :event_registrations, [:owner_id, :owner_type]
|
176
191
|
add_index :event_registrations, :status
|
177
192
|
add_index :event_registrations, :token
|
data/lib/effective_events.rb
CHANGED
@@ -6,10 +6,11 @@ module EffectiveEvents
|
|
6
6
|
|
7
7
|
def self.config_keys
|
8
8
|
[
|
9
|
-
:events_table_name, :event_registrants_table_name, :event_tickets_table_name,
|
9
|
+
:events_table_name, :event_registrants_table_name, :event_tickets_table_name, :event_ticket_selections_table_name,
|
10
10
|
:event_registrations_table_name, :event_products_table_name, :event_addons_table_name, :event_notifications_table_name,
|
11
11
|
:mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :mailer_subject,
|
12
|
-
:layout, :per_page, :use_effective_roles, :categories, :events_hint_text,
|
12
|
+
:layout, :per_page, :use_effective_roles, :categories, :events_hint_text,
|
13
|
+
:organization_enabled, :create_users, :company_or_organization_required,
|
13
14
|
:event_registration_class_name
|
14
15
|
]
|
15
16
|
end
|
@@ -28,8 +29,9 @@ module EffectiveEvents
|
|
28
29
|
Array(config[:categories]) - [nil, false, '']
|
29
30
|
end
|
30
31
|
|
31
|
-
def self.
|
32
|
-
(
|
32
|
+
def self.organization_enabled?
|
33
|
+
raise('missing the effective_memberships gem') if organization_enabled && !defined?(EffectiveMemberships)
|
34
|
+
organization_enabled == true
|
33
35
|
end
|
34
36
|
|
35
37
|
# If we can create delayed payment events at all
|
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.
|
4
|
+
version: 0.20.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-08-
|
11
|
+
date: 2024-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -229,6 +229,7 @@ files:
|
|
229
229
|
- app/controllers/admin/event_registrations_controller.rb
|
230
230
|
- app/controllers/admin/event_tickets_controller.rb
|
231
231
|
- app/controllers/admin/events_controller.rb
|
232
|
+
- app/controllers/effective/event_registrants_select2_ajax_controller.rb
|
232
233
|
- app/controllers/effective/event_registrations_controller.rb
|
233
234
|
- app/controllers/effective/events_controller.rb
|
234
235
|
- app/datatables/admin/effective_event_addons_datatable.rb
|
@@ -253,6 +254,7 @@ files:
|
|
253
254
|
- app/models/effective/event_registration.rb
|
254
255
|
- app/models/effective/event_search.rb
|
255
256
|
- app/models/effective/event_ticket.rb
|
257
|
+
- app/models/effective/event_ticket_selection.rb
|
256
258
|
- app/views/admin/event_addons/_fields.html.haml
|
257
259
|
- app/views/admin/event_addons/_form.html.haml
|
258
260
|
- app/views/admin/event_notifications/_form.html.haml
|
@@ -267,15 +269,13 @@ files:
|
|
267
269
|
- app/views/admin/events/_form_event_registration_content.html.haml
|
268
270
|
- app/views/effective/event_addons/_fields.html.haml
|
269
271
|
- app/views/effective/event_registrants/_fields.html.haml
|
270
|
-
- app/views/effective/event_registrants/_fields_member_only.html.haml
|
271
|
-
- app/views/effective/event_registrants/_fields_member_or_non_member.html.haml
|
272
|
-
- app/views/effective/event_registrants/_fields_questions.html.haml
|
273
|
-
- app/views/effective/event_registrants/_fields_regular.html.haml
|
274
272
|
- app/views/effective/event_registrations/_addons.html.haml
|
275
273
|
- app/views/effective/event_registrations/_content.html.haml
|
276
274
|
- app/views/effective/event_registrations/_dashboard.html.haml
|
275
|
+
- app/views/effective/event_registrations/_details.html.haml
|
277
276
|
- app/views/effective/event_registrations/_event_registration.html.haml
|
278
|
-
- app/views/effective/event_registrations/
|
277
|
+
- app/views/effective/event_registrations/_fields_event_registrants.html.haml
|
278
|
+
- app/views/effective/event_registrations/_fields_event_ticket_selections.html.haml
|
279
279
|
- app/views/effective/event_registrations/_form_blank_registrants.html.haml
|
280
280
|
- app/views/effective/event_registrations/_layout.html.haml
|
281
281
|
- app/views/effective/event_registrations/_orders.html.haml
|
@@ -285,6 +285,7 @@ files:
|
|
285
285
|
- app/views/effective/event_registrations/billing.html.haml
|
286
286
|
- app/views/effective/event_registrations/checkout.html.haml
|
287
287
|
- app/views/effective/event_registrations/complete.html.haml
|
288
|
+
- app/views/effective/event_registrations/details.html.haml
|
288
289
|
- app/views/effective/event_registrations/start.html.haml
|
289
290
|
- app/views/effective/event_registrations/submitted.html.haml
|
290
291
|
- app/views/effective/event_registrations/summary.html.haml
|
@@ -1,10 +0,0 @@
|
|
1
|
-
- # Choose ANY member
|
2
|
-
- klass = (f.object.user || current_user).class
|
3
|
-
- ajax_url = (@select2_users_ajax_path || effective_memberships.member_users_membership_select2_ajax_index_path) unless Rails.env.test?
|
4
|
-
|
5
|
-
= f.hidden_field :user_type, value: klass.name
|
6
|
-
= f.select :user_id, klass.all, ajax_url: ajax_url, label: 'Member', required: true, hint: effective_events_event_registrant_user_hint()
|
7
|
-
|
8
|
-
- # Choose RELATED ORGANIZATION member
|
9
|
-
-# = f.hidden_field :user_type, value: current_user.class.name
|
10
|
-
-# = f.select :user_id, effective_events_event_registrant_user_collection(f.object), required: true, hint: effective_events_event_registrant_user_hint()
|
@@ -1,34 +0,0 @@
|
|
1
|
-
- if current_user.try(:is_any?, :member, :admin)
|
2
|
-
= f.radios :member_or_non_member_choice, Effective::EventRegistrant::MEMBER_OR_NON_MEMBER_CHOICES, label: false, inline: true
|
3
|
-
- else
|
4
|
-
= f.hidden_field :member_or_non_member_choice, value: 'Add a regular registration'
|
5
|
-
|
6
|
-
= f.show_if(:member_or_non_member_choice, 'Add a member registration', nested: true) do
|
7
|
-
= f.hidden_field :first_name, value: nil
|
8
|
-
= f.hidden_field :last_name, value: nil
|
9
|
-
= f.hidden_field :email, value: nil
|
10
|
-
= f.hidden_field :company, value: nil
|
11
|
-
|
12
|
-
- # Choose ANY member
|
13
|
-
- klass = (f.object.user || current_user).class
|
14
|
-
- ajax_url = (@select2_users_ajax_path || effective_memberships.member_users_membership_select2_ajax_index_path) unless Rails.env.test?
|
15
|
-
|
16
|
-
= f.hidden_field :user_type, value: klass.name
|
17
|
-
= f.select :user_id, klass.all, ajax_url: ajax_url, label: 'Member', hint: effective_events_event_registrant_user_hint()
|
18
|
-
|
19
|
-
- # Choose RELATED ORGANIZATION member
|
20
|
-
-# = f.hidden_field :user_type, value: current_user.class.name
|
21
|
-
-# = f.select :user_id, effective_events_event_registrant_user_collection(f.object), hint: effective_events_event_registrant_user_hint()
|
22
|
-
|
23
|
-
= f.show_if(:member_or_non_member_choice, 'Add a regular registration', nested: true) do
|
24
|
-
= f.hidden_field :user_type, value: nil
|
25
|
-
= f.hidden_field :user_id, value: nil
|
26
|
-
|
27
|
-
- # Choose non-member
|
28
|
-
.row
|
29
|
-
.col-md= f.text_field :first_name
|
30
|
-
.col-md= f.text_field :last_name
|
31
|
-
|
32
|
-
.row
|
33
|
-
.col-md= f.email_field :email
|
34
|
-
.col-md= f.text_field :company
|
@@ -1,68 +0,0 @@
|
|
1
|
-
- tickets = resource.event.event_tickets.reject(&:archived?)
|
2
|
-
- member_column = tickets.any? { |ticket| ticket.member_only? || ticket.member_or_non_member? }
|
3
|
-
- waitlist = tickets.any? { |ticket| ticket.waitlist? }
|
4
|
-
|
5
|
-
- all_member_only_tickets = tickets.all? { |ticket| ticket.member_only? }
|
6
|
-
- any_member_only_tickets = tickets.any? { |ticket| ticket.member_only? }
|
7
|
-
|
8
|
-
= card do
|
9
|
-
- if resource.event.early_bird?
|
10
|
-
.alert.alert-warning.mb-3
|
11
|
-
Early Bird rates end on
|
12
|
-
= resource.event.early_bird_end_at.strftime("%A, %B %d, %Y at %l:%M%P.")
|
13
|
-
|
14
|
-
%table.table.table-sm.table-striped
|
15
|
-
%thead
|
16
|
-
%tr
|
17
|
-
%th Ticket
|
18
|
-
%th Price
|
19
|
-
|
20
|
-
%tbody
|
21
|
-
- tickets.each do |ticket|
|
22
|
-
%tr
|
23
|
-
%td
|
24
|
-
= ticket.to_s
|
25
|
-
- if ticket.capacity.present? && ticket.display_capacity?
|
26
|
-
%br
|
27
|
-
%small
|
28
|
-
#{ticket.capacity_available} remaining
|
29
|
-
- if ticket.waitlist?
|
30
|
-
before waitlist
|
31
|
-
|
32
|
-
%td
|
33
|
-
%ul.list-unstyled.mb-0
|
34
|
-
- if resource.event.early_bird? && ticket.early_bird_price.present? && ticket.early_bird_price != 0 && ticket.early_bird_price != ticket.member_price && ticket.early_bird_price != ticket.regular_price
|
35
|
-
%li
|
36
|
-
- if ticket.regular_price.present? && ticket.regular_price != 0
|
37
|
-
%div
|
38
|
-
%s.text-muted
|
39
|
-
= price_to_currency(ticket.regular_price)
|
40
|
-
|
41
|
-
- if ticket.member_price.present? && ticket.member_price != 0
|
42
|
-
%div
|
43
|
-
%s.text-muted
|
44
|
-
= price_to_currency(ticket.member_price)
|
45
|
-
.badge.badge-secondary.mr-2 Members
|
46
|
-
|
47
|
-
%div
|
48
|
-
= price_to_currency(ticket.early_bird_price)
|
49
|
-
.badge.badge-warning Early Bird
|
50
|
-
|
51
|
-
- else
|
52
|
-
- if ticket.regular_price.present?
|
53
|
-
%li
|
54
|
-
= price_to_currency(ticket.regular_price)
|
55
|
-
|
56
|
-
- if ticket.member_price.present?
|
57
|
-
%li
|
58
|
-
= price_to_currency(ticket.member_price)
|
59
|
-
.badge.badge-secondary Members
|
60
|
-
|
61
|
-
- if waitlist
|
62
|
-
%p If the ticket capacity has been reached you will be added to the waitlist.
|
63
|
-
|
64
|
-
- unless current_user.try(:is?, :member)
|
65
|
-
- if all_member_only_tickets
|
66
|
-
.alert.alert-info.mb-4 You must be a member to purchase tickets.
|
67
|
-
- elsif any_member_only_tickets
|
68
|
-
.alert.alert-info.mb-4 You must be a member to purchase some of these tickets.
|