effective_events 0.2.6 → 0.3.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_event_addons_datatable.rb +6 -1
- data/app/datatables/admin/effective_event_products_datatable.rb +5 -2
- data/app/datatables/admin/effective_event_registrants_datatable.rb +5 -0
- data/app/datatables/admin/effective_event_tickets_datatable.rb +5 -2
- data/app/datatables/effective_event_addons_datatable.rb +10 -1
- data/app/datatables/effective_event_registrants_datatable.rb +8 -1
- data/app/helpers/effective_events_helper.rb +12 -4
- data/app/mailers/effective/events_mailer.rb +10 -10
- data/app/models/effective/event_addon.rb +4 -1
- data/app/models/effective/event_product.rb +2 -0
- data/app/models/effective/event_registrant.rb +3 -0
- data/app/models/effective/event_ticket.rb +2 -0
- data/app/views/admin/event_addons/_form.html.haml +2 -0
- data/app/views/admin/event_registrants/_form.html.haml +3 -1
- data/app/views/effective/event_registrants/_fields.html.haml +3 -0
- data/app/views/effective/event_registrations/_summary.html.haml +0 -1
- data/app/views/effective/event_registrations/tickets.html.haml +1 -1
- data/config/effective_events.rb +1 -0
- data/config/routes.rb +21 -4
- data/db/migrate/01_create_effective_events.rb.erb +4 -0
- data/lib/effective_events/version.rb +1 -1
- data/lib/effective_events.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: b23a48351b1b02e030c1b6ba099fe9ee738b0f673b947dcc5b1da98b8f22a994
|
4
|
+
data.tar.gz: 1d5876003810fe4d761a8707e5592ac9f9c201de1633a824749e966a64c9b66b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e86d2d215c249564b6a2d397a80331e951e553f56b3903f3b7bce0c3b4422791d8248c754cacf4ef69d3ca09c43ef835530dd406ab62f8afbd951a682aed085
|
7
|
+
data.tar.gz: 339b835ec79679400d13c6381556a20a682bea06c71fca6bd1130ffd5a86c26f074ef1ce22d75f039491b41ddbb7fc8d3dc16dc95850f9cd6281c68a620f5729
|
@@ -1,5 +1,10 @@
|
|
1
1
|
module Admin
|
2
2
|
class EffectiveEventAddonsDatatable < Effective::Datatable
|
3
|
+
filters do
|
4
|
+
scope :unarchived, label: "All"
|
5
|
+
scope :archived
|
6
|
+
end
|
7
|
+
|
3
8
|
datatable do
|
4
9
|
col :updated_at, visible: false
|
5
10
|
col :created_at, visible: false
|
@@ -23,7 +28,7 @@ module Admin
|
|
23
28
|
end
|
24
29
|
|
25
30
|
collection do
|
26
|
-
scope = Effective::EventAddon.deep.purchased
|
31
|
+
scope = Effective::EventAddon.deep.purchased.includes(:purchased_order, :owner)
|
27
32
|
|
28
33
|
if attributes[:event_id].present?
|
29
34
|
scope = scope.where(event: event)
|
@@ -1,5 +1,10 @@
|
|
1
1
|
module Admin
|
2
2
|
class EffectiveEventProductsDatatable < Effective::Datatable
|
3
|
+
filters do
|
4
|
+
scope :unarchived, label: "All"
|
5
|
+
scope :archived
|
6
|
+
end
|
7
|
+
|
3
8
|
datatable do
|
4
9
|
reorder :position
|
5
10
|
|
@@ -12,8 +17,6 @@ module Admin
|
|
12
17
|
col :title
|
13
18
|
col :price, as: :price
|
14
19
|
|
15
|
-
col :archived
|
16
|
-
|
17
20
|
col :capacity_to_s, label: 'Capacity' do |ticket|
|
18
21
|
if ticket.capacity.present?
|
19
22
|
"#{ticket.capacity_available} remaining / #{ticket.capacity} total"
|
@@ -1,5 +1,10 @@
|
|
1
1
|
module Admin
|
2
2
|
class EffectiveEventTicketsDatatable < Effective::Datatable
|
3
|
+
filters do
|
4
|
+
scope :unarchived, label: "All"
|
5
|
+
scope :archived
|
6
|
+
end
|
7
|
+
|
3
8
|
datatable do
|
4
9
|
reorder :position
|
5
10
|
|
@@ -13,8 +18,6 @@ module Admin
|
|
13
18
|
col :regular_price, as: :price
|
14
19
|
col :early_bird_price, as: :price
|
15
20
|
|
16
|
-
col :archived
|
17
|
-
|
18
21
|
col :capacity_to_s, label: 'Capacity' do |ticket|
|
19
22
|
if ticket.capacity.present?
|
20
23
|
"#{ticket.capacity_available} remaining / #{ticket.capacity} total"
|
@@ -3,8 +3,17 @@
|
|
3
3
|
class EffectiveEventAddonsDatatable < Effective::Datatable
|
4
4
|
datatable do
|
5
5
|
|
6
|
-
col :event_product, search: :string, label: 'Product'
|
6
|
+
col :event_product, search: :string, label: 'Product' do |er|
|
7
|
+
[
|
8
|
+
er.event_product.to_s,
|
9
|
+
(content_tag(:span, 'Archived', class: 'badge badge-warning') if er.event_product&.archived?)
|
10
|
+
].compact.join('<br>').html_safe
|
11
|
+
end
|
12
|
+
|
7
13
|
col :price, as: :price
|
14
|
+
|
15
|
+
col :archived, visible: false
|
16
|
+
|
8
17
|
# col :notes
|
9
18
|
# no actions_col
|
10
19
|
end
|
@@ -3,7 +3,12 @@
|
|
3
3
|
class EffectiveEventRegistrantsDatatable < Effective::Datatable
|
4
4
|
datatable do
|
5
5
|
|
6
|
-
col :event_ticket, search: :string, label: 'Ticket'
|
6
|
+
col :event_ticket, search: :string, label: 'Ticket' do |er|
|
7
|
+
[
|
8
|
+
er.event_ticket.to_s,
|
9
|
+
(content_tag(:span, 'Archived', class: 'badge badge-warning') if er.event_ticket&.archived?)
|
10
|
+
].compact.join('<br>').html_safe
|
11
|
+
end
|
7
12
|
|
8
13
|
col :name do |er|
|
9
14
|
"#{er.first_name} #{er.last_name}<br><small>#{mail_to(er.email)}</small>"
|
@@ -18,6 +23,8 @@ class EffectiveEventRegistrantsDatatable < Effective::Datatable
|
|
18
23
|
col :price, as: :price
|
19
24
|
col :notes
|
20
25
|
|
26
|
+
col :archived, visible: false
|
27
|
+
|
21
28
|
# no actions_col
|
22
29
|
end
|
23
30
|
|
@@ -3,13 +3,17 @@ module EffectiveEventsHelper
|
|
3
3
|
def effective_events_event_tickets_collection(event)
|
4
4
|
raise('expected an Effective::Event') unless event.kind_of?(Effective::Event)
|
5
5
|
|
6
|
-
|
6
|
+
# Allow an admin to assign archived tickets
|
7
|
+
authorized = EffectiveResources.authorized?(self, :admin, :effective_events)
|
8
|
+
tickets = (authorized ? event.event_tickets : event.event_tickets.reject(&:archived?))
|
9
|
+
|
10
|
+
tickets.map do |ticket|
|
7
11
|
title = ticket.to_s
|
8
12
|
price = (ticket.price == 0 ? '$0' : price_to_currency(ticket.price))
|
9
13
|
remaining = (ticket.capacity.present? ? "#{ticket.capacity_available} remaining" : nil)
|
10
14
|
|
11
15
|
label = [title, price, remaining].compact.join(' - ')
|
12
|
-
disabled = { disabled: :disabled } unless ticket.available?
|
16
|
+
disabled = { disabled: :disabled } unless (authorized || ticket.available?)
|
13
17
|
|
14
18
|
[label, ticket.to_param, disabled].compact
|
15
19
|
end
|
@@ -18,13 +22,17 @@ module EffectiveEventsHelper
|
|
18
22
|
def effective_events_event_products_collection(event)
|
19
23
|
raise('expected an Effective::Event') unless event.kind_of?(Effective::Event)
|
20
24
|
|
21
|
-
|
25
|
+
# Allow an admin to assign archived products
|
26
|
+
authorized = EffectiveResources.authorized?(self, :admin, :effective_events)
|
27
|
+
products = (authorized ? event.event_products : event.event_products.reject(&:archived?))
|
28
|
+
|
29
|
+
products.map do |product|
|
22
30
|
title = product.to_s
|
23
31
|
price = (product.price == 0 ? '$0' : price_to_currency(product.price))
|
24
32
|
remaining = (product.capacity.present? ? "#{product.capacity_available} remaining" : nil)
|
25
33
|
|
26
34
|
label = [title, price, remaining].compact.join(' - ')
|
27
|
-
disabled = { disabled: :disabled } unless product.available?
|
35
|
+
disabled = { disabled: :disabled } unless (authorized || product.available?)
|
28
36
|
|
29
37
|
[label, product.to_param, disabled].compact
|
30
38
|
end
|
@@ -1,23 +1,23 @@
|
|
1
1
|
module Effective
|
2
2
|
class EventsMailer < EffectiveEvents.parent_mailer_class
|
3
|
-
default from: -> { EffectiveEvents.mailer_sender }
|
4
|
-
layout -> { EffectiveEvents.mailer_layout }
|
5
3
|
|
4
|
+
include EffectiveMailer
|
6
5
|
include EffectiveEmailTemplatesMailer if EffectiveEvents.use_effective_email_templates
|
7
6
|
|
8
|
-
def event_registrant_purchased(
|
9
|
-
|
10
|
-
@event_registrant = event_registrant
|
7
|
+
def event_registrant_purchased(resource, opts = {})
|
8
|
+
raise('expected an Effective::EventRegistrant') unless resource.kind_of?(Effective::EventRegistrant)
|
11
9
|
|
12
|
-
|
13
|
-
|
10
|
+
@assigns = assigns_for(resource)
|
11
|
+
@event_registrant = resource
|
14
12
|
|
15
|
-
|
13
|
+
subject = subject_for(__method__, 'Event Registrant Purchased', resource, opts)
|
14
|
+
headers = headers_for(resource, opts)
|
16
15
|
|
17
|
-
|
18
|
-
resource.respond_to?(:log_changes_datatable) ? opts.merge(log: resource) : opts
|
16
|
+
mail(to: resource.email, subject: subject, **headers)
|
19
17
|
end
|
20
18
|
|
19
|
+
protected
|
20
|
+
|
21
21
|
def assigns_for(resource)
|
22
22
|
if resource.kind_of?(EventRegistrant)
|
23
23
|
return event_registrant_assigns(resource).merge(event_assigns(resource.event)).merge(event_ticket_assigns(resource.event_ticket))
|
@@ -6,6 +6,7 @@
|
|
6
6
|
module Effective
|
7
7
|
class EventAddon < ActiveRecord::Base
|
8
8
|
acts_as_purchasable
|
9
|
+
acts_as_archived
|
9
10
|
|
10
11
|
log_changes(to: :event) if respond_to?(:log_changes)
|
11
12
|
|
@@ -23,6 +24,8 @@ module Effective
|
|
23
24
|
effective_resource do
|
24
25
|
notes :text
|
25
26
|
|
27
|
+
archived :boolean
|
28
|
+
|
26
29
|
# Acts as Purchasable
|
27
30
|
price :integer
|
28
31
|
qb_item_name :string
|
@@ -32,7 +35,7 @@ module Effective
|
|
32
35
|
end
|
33
36
|
|
34
37
|
scope :sorted, -> { order(:id) }
|
35
|
-
scope :deep, -> {
|
38
|
+
scope :deep, -> { includes(:event, :event_product) }
|
36
39
|
|
37
40
|
before_validation(if: -> { event_registration.present? }) do
|
38
41
|
self.event ||= event_registration.event
|
@@ -3,6 +3,7 @@
|
|
3
3
|
module Effective
|
4
4
|
class EventRegistrant < ActiveRecord::Base
|
5
5
|
acts_as_purchasable
|
6
|
+
acts_as_archived
|
6
7
|
|
7
8
|
log_changes(to: :event) if respond_to?(:log_changes)
|
8
9
|
|
@@ -26,6 +27,8 @@ module Effective
|
|
26
27
|
number :string
|
27
28
|
notes :text
|
28
29
|
|
30
|
+
archived :boolean
|
31
|
+
|
29
32
|
# Acts as Purchasable
|
30
33
|
price :integer
|
31
34
|
qb_item_name :string
|
@@ -8,6 +8,8 @@
|
|
8
8
|
|
9
9
|
= render 'effective/event_addons/fields', f: f, event: event_addon.event
|
10
10
|
|
11
|
+
= f.check_box :archived, label: "Archive this addon. It will be displayed as archived on the owner's event registration"
|
12
|
+
|
11
13
|
- if f.object.new_record?
|
12
14
|
= f.submit 'Save and Mark Paid'
|
13
15
|
- else
|
@@ -6,7 +6,9 @@
|
|
6
6
|
- else
|
7
7
|
= f.static_field :owner
|
8
8
|
|
9
|
-
= render 'effective/event_registrants/fields', f: f, event: event_registrant.event
|
9
|
+
= render 'effective/event_registrants/fields', f: f, event: event_registrant.event, namespace: :admin
|
10
|
+
|
11
|
+
= f.check_box :archived, label: "Archive this registrant. It will be displayed as archived on the owner's event registration"
|
10
12
|
|
11
13
|
- if f.object.new_record?
|
12
14
|
= f.submit 'Save and Mark Paid'
|
@@ -5,6 +5,9 @@
|
|
5
5
|
- else
|
6
6
|
= f.select :event_ticket_id, effective_events_event_tickets_collection(event), label: 'Ticket'
|
7
7
|
|
8
|
+
- if f.object.purchased? && namespace == :admin
|
9
|
+
= f.select :event_ticket_id, effective_events_event_tickets_collection(event), label: 'Change Ticket', hint: 'Admin only. Change the purchased ticket. This will not create charges, alter the original order, or consider ticket capacity.'
|
10
|
+
|
8
11
|
.row
|
9
12
|
.col-lg= f.text_field :first_name
|
10
13
|
.col-lg= f.text_field :last_name
|
@@ -7,6 +7,6 @@
|
|
7
7
|
= f.hidden_field :id
|
8
8
|
|
9
9
|
= f.has_many :event_registrants, f.object.build_event_registrants do |fr|
|
10
|
-
= render('effective/event_registrants/fields', f: fr, event: f.object.event)
|
10
|
+
= render('effective/event_registrants/fields', f: fr, event: f.object.event, namespace: :events)
|
11
11
|
|
12
12
|
= f.save 'Save and Continue'
|
data/config/effective_events.rb
CHANGED
@@ -32,6 +32,7 @@ EffectiveEvents.setup do |config|
|
|
32
32
|
# config.mailer_layout = nil # Default mailer layout
|
33
33
|
# config.mailer_sender = nil # Default From value
|
34
34
|
# config.mailer_admin = nil # Default To value for Admin correspondence
|
35
|
+
# config.mailer_subject = nil # Proc.new method used to customize Subject
|
35
36
|
|
36
37
|
# Use effective email templates for event notifications
|
37
38
|
config.use_effective_email_templates = true
|
data/config/routes.rb
CHANGED
@@ -16,12 +16,29 @@ EffectiveEvents::Engine.routes.draw do
|
|
16
16
|
|
17
17
|
namespace :admin do
|
18
18
|
resources :events, except: [:show]
|
19
|
-
resources :event_tickets, except: [:show]
|
20
|
-
resources :event_products, except: [:show]
|
21
|
-
resources :event_registrants, except: [:show]
|
22
|
-
resources :event_addons, except: [:show]
|
23
19
|
resources :event_registrations, only: [:index, :show]
|
24
20
|
resources :event_notifications, except: [:show]
|
21
|
+
|
22
|
+
resources :event_tickets, except: [:show] do
|
23
|
+
post :archive, on: :member
|
24
|
+
post :unarchive, on: :member
|
25
|
+
end
|
26
|
+
|
27
|
+
resources :event_products, except: [:show] do
|
28
|
+
post :archive, on: :member
|
29
|
+
post :unarchive, on: :member
|
30
|
+
end
|
31
|
+
|
32
|
+
resources :event_registrants, except: [:show] do
|
33
|
+
post :archive, on: :member
|
34
|
+
post :unarchive, on: :member
|
35
|
+
end
|
36
|
+
|
37
|
+
resources :event_addons, except: [:show] do
|
38
|
+
post :archive, on: :member
|
39
|
+
post :unarchive, on: :member
|
40
|
+
end
|
41
|
+
|
25
42
|
end
|
26
43
|
|
27
44
|
end
|
@@ -64,6 +64,8 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
|
64
64
|
t.integer :purchased_order_id
|
65
65
|
t.integer :price
|
66
66
|
|
67
|
+
t.boolean :archived, default: false
|
68
|
+
|
67
69
|
t.timestamps
|
68
70
|
end
|
69
71
|
|
@@ -99,6 +101,8 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
|
99
101
|
t.integer :purchased_order_id
|
100
102
|
t.integer :price
|
101
103
|
|
104
|
+
t.boolean :archived, default: false
|
105
|
+
|
102
106
|
t.timestamps
|
103
107
|
end
|
104
108
|
|
data/lib/effective_events.rb
CHANGED
@@ -8,9 +8,9 @@ module EffectiveEvents
|
|
8
8
|
[
|
9
9
|
:events_table_name, :event_registrants_table_name, :event_tickets_table_name,
|
10
10
|
:event_registrations_table_name, :event_products_table_name, :event_addons_table_name,
|
11
|
+
:mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :mailer_subject, :use_effective_email_templates,
|
11
12
|
:layout, :per_page, :use_effective_roles,
|
12
13
|
:event_registration_class_name,
|
13
|
-
:mailer, :use_effective_email_templates
|
14
14
|
]
|
15
15
|
end
|
16
16
|
|
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.3.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: 2022-03-
|
11
|
+
date: 2022-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|