effective_events 0.2.7 → 0.3.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/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 +14 -6
- 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 +4 -1
- data/app/views/effective/event_registrations/_summary.html.haml +0 -1
- data/app/views/effective/event_registrations/tickets.html.haml +1 -1
- 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
- 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: 3981616ffe297dac3c511f6317788d9f93ea1ca9f6334f0420fa02a8fd18b479
|
4
|
+
data.tar.gz: 4a7e53e16612ca919b8de54f8c324bfa01599a5e78dd62404d640f06b3a6eec2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53146964ab70af09e1be3db68248e01423c185b87d8e000d6a6d3fdd65c61b723de95208ac48174496533cd0055fbe6eab98538c3f3fcea657f7089b87c3a500
|
7
|
+
data.tar.gz: e858348a4e867ca08aa954f157992528c80c16bd3618270b88f53279040fc65dc0c3440843f4dcfcbb6974ec5162c63472b7504441a2da585b88dca2585cce8e
|
@@ -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
|
|
@@ -1,30 +1,38 @@
|
|
1
1
|
module EffectiveEventsHelper
|
2
2
|
|
3
|
-
def effective_events_event_tickets_collection(event)
|
3
|
+
def effective_events_event_tickets_collection(event, namespace = nil)
|
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 = (namespace == :admin)
|
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
|
16
20
|
end
|
17
21
|
|
18
|
-
def effective_events_event_products_collection(event)
|
22
|
+
def effective_events_event_products_collection(event, namespace = nil)
|
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 = (namespace == :admin)
|
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
|
@@ -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'
|
@@ -3,7 +3,10 @@
|
|
3
3
|
- if f.object.purchased?
|
4
4
|
= f.static_field :event_ticket, label: 'Purchased ticket'
|
5
5
|
- else
|
6
|
-
= f.select :event_ticket_id, effective_events_event_tickets_collection(event), label: 'Ticket'
|
6
|
+
= f.select :event_ticket_id, effective_events_event_tickets_collection(event, namespace), label: 'Ticket'
|
7
|
+
|
8
|
+
- if f.object.purchased? && namespace == :admin
|
9
|
+
= f.select :event_ticket_id, effective_events_event_tickets_collection(event, namespace), label: 'Change Ticket', hint: 'Admin only. Change the purchased ticket. This will not create charges, alter the original order, or consider ticket capacity.'
|
7
10
|
|
8
11
|
.row
|
9
12
|
.col-lg= f.text_field :first_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/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
|
|
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.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: 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
|