effective_events 0.22.2 → 0.23.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 +5 -4
- data/app/datatables/admin/effective_event_products_datatable.rb +11 -11
- data/app/datatables/admin/effective_event_registrants_datatable.rb +12 -4
- data/app/datatables/admin/effective_event_tickets_datatable.rb +3 -3
- data/app/models/effective/event.rb +8 -0
- data/app/models/effective/event_addon.rb +5 -1
- data/app/models/effective/event_registrant.rb +5 -1
- data/app/models/effective/event_search.rb +11 -8
- data/app/models/effective/event_ticket.rb +1 -1
- data/app/views/admin/event_addons/_form.html.haml +3 -0
- data/app/views/admin/event_registrants/_form.html.haml +3 -0
- data/app/views/effective/events/_event.html.haml +5 -1
- data/app/views/effective/events/_sidebar.html.haml +2 -2
- data/app/views/effective/events/index.html.haml +3 -3
- data/db/migrate/101_create_effective_events.rb +2 -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: ac58bdfbd54d957533cc8ccc62152fd17b4d123133d55e7599159d4c495c690f
|
4
|
+
data.tar.gz: 3fe705a1de037e35954d50bd0e5ad1092968f373cdc098bbe6ea69a1d5b742e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6eb6bc3ac0e9c42265e2b3c7493ec91029eda738f3608ccf1c0d1cf2255fc20d42b8bfb2ab8a55695692fafd795a34977bcf7aa011ec914369e217ccf9657a10
|
7
|
+
data.tar.gz: 60da0662095d319488c227d631d2b80bd4404dacfdde8418508568da51cfb310254d3e3683abcfb933112fcdc0d89f3cab2d1d8795166e53383546d2f41e4f07
|
@@ -1,11 +1,12 @@
|
|
1
1
|
module Admin
|
2
2
|
class EffectiveEventAddonsDatatable < Effective::Datatable
|
3
3
|
filters do
|
4
|
-
scope :
|
5
|
-
scope :
|
4
|
+
scope :registered
|
5
|
+
scope :purchased_or_created_by_admin, label: 'Purchased'
|
6
6
|
scope :deferred
|
7
|
-
scope :
|
7
|
+
scope :not_purchased_not_created_by_admin, label: 'Not Purchased'
|
8
8
|
scope :archived
|
9
|
+
scope :all
|
9
10
|
end
|
10
11
|
|
11
12
|
datatable do
|
@@ -36,7 +37,7 @@ module Admin
|
|
36
37
|
end
|
37
38
|
|
38
39
|
collection do
|
39
|
-
scope = Effective::EventAddon.deep.
|
40
|
+
scope = Effective::EventAddon.deep.includes(:purchased_order, :owner)
|
40
41
|
|
41
42
|
if attributes[:event_id].present?
|
42
43
|
scope = scope.where(event: event)
|
@@ -30,17 +30,17 @@ module Admin
|
|
30
30
|
col :capacity, visible: false
|
31
31
|
col :capacity_available, visible: false
|
32
32
|
|
33
|
-
col :registered_event_addons, label: 'Registered Names' do |product|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
col :purchased_event_addons, label: 'Purchased Names', visible: false do |product|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
33
|
+
# col :registered_event_addons, label: 'Registered Names' do |product|
|
34
|
+
# product.registered_event_addons.reject(&:archived?).sort_by(&:to_s).map do |addon|
|
35
|
+
# content_tag(:div, addon.name.to_s, class: 'col-resource_item')
|
36
|
+
# end.join.html_safe
|
37
|
+
# end
|
38
|
+
|
39
|
+
# col :purchased_event_addons, label: 'Purchased Names', visible: false do |product|
|
40
|
+
# product.purchased_event_addons.reject(&:archived?).sort_by(&:to_s).map do |addon|
|
41
|
+
# content_tag(:div, addon.name.to_s, class: 'col-resource_item')
|
42
|
+
# end.join.html_safe
|
43
|
+
# end
|
44
44
|
|
45
45
|
actions_col
|
46
46
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
module Admin
|
2
2
|
class EffectiveEventRegistrantsDatatable < Effective::Datatable
|
3
3
|
filters do
|
4
|
-
scope :unarchived, label: "All"
|
5
4
|
scope :registered
|
6
|
-
scope :
|
5
|
+
scope :purchased_or_created_by_admin, label: 'Purchased'
|
7
6
|
scope :deferred
|
8
|
-
scope :
|
7
|
+
scope :not_purchased_not_created_by_admin, label: 'Not Purchased'
|
9
8
|
scope :archived
|
9
|
+
scope :all
|
10
10
|
end
|
11
11
|
|
12
12
|
datatable do
|
@@ -60,7 +60,15 @@ module Admin
|
|
60
60
|
col :organization, visible: false
|
61
61
|
|
62
62
|
col :orders, visible: false
|
63
|
-
|
63
|
+
|
64
|
+
col(:price, as: :price) do |registrant|
|
65
|
+
[
|
66
|
+
(badge('ADMIN') if registrant.created_by_admin?),
|
67
|
+
price_to_currency(registrant.price)
|
68
|
+
].compact.join(' ').html_safe
|
69
|
+
end
|
70
|
+
|
71
|
+
col :created_by_admin, visible: false
|
64
72
|
|
65
73
|
col :first_name, visible: false
|
66
74
|
col :last_name, visible: false
|
@@ -37,15 +37,15 @@ module Admin
|
|
37
37
|
col :category, visible: false
|
38
38
|
|
39
39
|
col :registered_event_registrants_count, label: 'Registered' do |event|
|
40
|
-
event.event_registrants.registered.
|
40
|
+
event.event_registrants.registered.count
|
41
41
|
end
|
42
42
|
|
43
43
|
col :purchased_event_registrants_count, label: 'Deferred', visible: false do |event|
|
44
|
-
event.event_registrants.deferred.
|
44
|
+
event.event_registrants.deferred.count
|
45
45
|
end
|
46
46
|
|
47
47
|
col :purchased_event_registrants_count, label: 'Purchased', visible: false do |event|
|
48
|
-
event.event_registrants.purchased.
|
48
|
+
event.event_registrants.purchased.count
|
49
49
|
end
|
50
50
|
|
51
51
|
|
@@ -214,6 +214,14 @@ module Effective
|
|
214
214
|
event_tickets.none? { |event_ticket| event_ticket_available?(event_ticket, except: except, quantity: 1) }
|
215
215
|
end
|
216
216
|
|
217
|
+
def upcoming?
|
218
|
+
end_at > Time.zone.now
|
219
|
+
end
|
220
|
+
|
221
|
+
def past?
|
222
|
+
end_at < Time.zone.now
|
223
|
+
end
|
224
|
+
|
217
225
|
def early_bird?
|
218
226
|
return false if early_bird_end_at.blank?
|
219
227
|
early_bird_end_at > Time.zone.now
|
@@ -32,6 +32,8 @@ module Effective
|
|
32
32
|
|
33
33
|
archived :boolean
|
34
34
|
|
35
|
+
created_by_admin :boolean
|
36
|
+
|
35
37
|
# Acts as Purchasable
|
36
38
|
price :integer
|
37
39
|
qb_item_name :string
|
@@ -42,7 +44,9 @@ module Effective
|
|
42
44
|
|
43
45
|
scope :sorted, -> { order(:id) }
|
44
46
|
scope :deep, -> { includes(:event, :event_product) }
|
45
|
-
scope :registered, -> { purchased_or_deferred }
|
47
|
+
scope :registered, -> { purchased_or_deferred.or(where(created_by_admin: true)) }
|
48
|
+
scope :purchased_or_created_by_admin, -> { purchased.or(unarchived.where(created_by_admin: true)) }
|
49
|
+
scope :not_purchased_not_created_by_admin, -> { not_purchased.where(created_by_admin: false) }
|
46
50
|
|
47
51
|
before_validation(if: -> { event_registration.present? }) do
|
48
52
|
self.event ||= event_registration.event
|
@@ -55,6 +55,8 @@ module Effective
|
|
55
55
|
|
56
56
|
archived :boolean
|
57
57
|
|
58
|
+
created_by_admin :boolean
|
59
|
+
|
58
60
|
# Acts as Purchasable
|
59
61
|
price :integer
|
60
62
|
qb_item_name :string
|
@@ -69,7 +71,9 @@ module Effective
|
|
69
71
|
|
70
72
|
scope :sorted, -> { order(:event_ticket_id, :id) }
|
71
73
|
scope :deep, -> { includes(:event, :event_ticket, :owner) }
|
72
|
-
scope :registered, -> { where.not(registered_at: nil) }
|
74
|
+
scope :registered, -> { unarchived.where.not(registered_at: nil) }
|
75
|
+
scope :purchased_or_created_by_admin, -> { purchased.or(unarchived.where(created_by_admin: true)) }
|
76
|
+
scope :not_purchased_not_created_by_admin, -> { not_purchased.where(created_by_admin: false) }
|
73
77
|
|
74
78
|
before_validation(if: -> { event_registration.present? }) do
|
75
79
|
self.event ||= event_registration.event
|
@@ -55,27 +55,30 @@ module Effective
|
|
55
55
|
events = collection()
|
56
56
|
raise('expected an ActiveRecord collection') unless events.kind_of?(ActiveRecord::Relation)
|
57
57
|
|
58
|
-
# Filter by upcoming or past
|
59
|
-
events = (category == 'past') ? events.past : events.upcoming
|
60
|
-
|
61
58
|
# Filter by term
|
62
59
|
if term.present?
|
63
60
|
events = Effective::Resource.new(events).search_any(term)
|
64
61
|
end
|
65
62
|
|
66
|
-
# Filter by
|
67
|
-
if category.present?
|
68
|
-
|
63
|
+
# Filter by upcoming or past and then apply default sorting
|
64
|
+
if category.present?
|
65
|
+
if category == 'past'
|
66
|
+
events = events.past.sorted
|
67
|
+
else
|
68
|
+
events = events.where(category: category).sorted
|
69
|
+
end
|
70
|
+
else
|
71
|
+
events = events.upcoming.reorder(start_at: :asc)
|
69
72
|
end
|
70
73
|
|
71
|
-
# Apply
|
74
|
+
# Apply sorting from the search form
|
72
75
|
events = case order.to_s
|
73
76
|
when 'Sort by Published Date'
|
74
77
|
events.reorder(published_start_at: :asc)
|
75
78
|
when 'Sort by Event Date'
|
76
79
|
events.reorder(start_at: :asc)
|
77
80
|
else
|
78
|
-
events
|
81
|
+
events
|
79
82
|
end
|
80
83
|
|
81
84
|
events
|
@@ -95,7 +95,7 @@ module Effective
|
|
95
95
|
raise('expected except to be an EventRegistration') if except && !except.class.try(:effective_events_event_registration?)
|
96
96
|
|
97
97
|
event_registrants.select do |er|
|
98
|
-
(er.registered? || er.selected_not_expired?) && (except.blank? || er.event_registration_id != except.id)
|
98
|
+
(er.registered? || er.selected_not_expired?) && (except.blank? || er.event_registration_id != except.id) && !er.archived?
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
@@ -23,6 +23,9 @@
|
|
23
23
|
|
24
24
|
= f.check_box :archived, label: "Archive this addon. It will be displayed as archived on the owner's event registration"
|
25
25
|
|
26
|
+
- if f.object.new_record?
|
27
|
+
= f.hidden_field :created_by_admin, value: true
|
28
|
+
|
26
29
|
- if f.object.new_record?
|
27
30
|
= f.submit 'Save and Mark Registered'
|
28
31
|
- else
|
@@ -1,10 +1,14 @@
|
|
1
1
|
.row.mb-5.effective-events{class: "effective-events-#{event.category.to_s.parameterize}"}
|
2
|
-
-
|
2
|
+
- # Do not show banners for past events
|
3
|
+
- if event.file.attached? && event.upcoming?
|
3
4
|
.col-lg-4
|
4
5
|
= link_to effective_events.event_path(event) do
|
5
6
|
= image_tag url_for(event.file), class: "effective-events-image d-none d-lg-flex align-self-start", alt: event.title, width: "350", height: "220"
|
6
7
|
|
7
8
|
.col
|
9
|
+
- if event.past?
|
10
|
+
.badge.badge-primary.badge-event.mb-2 Past Event
|
11
|
+
|
8
12
|
- if event.category.present? && EffectiveEvents.categories.length > 1
|
9
13
|
= link_to(event.category, effective_events.events_path + '/' + event.category.parameterize, class: "badge badge-primary badge-event mb-2 effective-events-#{event.category.parameterize}")
|
10
14
|
|
@@ -1,7 +1,7 @@
|
|
1
|
-
.effective-event-sidebar
|
1
|
+
.effective-event-sidebar.font-weight-bold.text-center.text-lg-left
|
2
2
|
%ul.nav.flex-column{role: 'navigation'}
|
3
3
|
= nav_link_to("Upcoming #{ets(Effective::Event)}", effective_events.events_path, class: "effective-event-all")
|
4
4
|
= nav_link_to("Past #{ets(Effective::Event)}", effective_events.events_path + '/past', class: "effective-event-past")
|
5
5
|
|
6
|
-
- EffectiveEvents.categories.each do |category|
|
6
|
+
- EffectiveEvents.categories.sort.each do |category|
|
7
7
|
= nav_link_to(category, effective_events.events_path + '/' + category.parameterize, class: "effective-event-#{category.parameterize}")
|
@@ -1,11 +1,11 @@
|
|
1
1
|
= render 'layout' do
|
2
2
|
.row
|
3
3
|
- if EffectiveEvents.categories.length > 1
|
4
|
-
.d-
|
4
|
+
.d-lg-block.col-lg-3.order-2.order-lg-1
|
5
5
|
-#= render('effective/events/form', event_search: @event_search)
|
6
6
|
= render('effective/events/sidebar')
|
7
7
|
|
8
|
-
.col
|
8
|
+
.col.order-1.order-lg-2
|
9
9
|
%h1.effective-title.mb-4= @page_title
|
10
10
|
|
11
11
|
- results = @event_search.results(page: params[:page])
|
@@ -15,5 +15,5 @@
|
|
15
15
|
- else
|
16
16
|
= render(results) # This renders effective/events/event
|
17
17
|
|
18
|
-
%nav.d-flex.justify-content-center
|
18
|
+
%nav.d-flex.justify-content-center.mb-4
|
19
19
|
= bootstrap_paginate(results, per_page: @event_search.per_page)
|
@@ -105,6 +105,7 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
|
105
105
|
t.integer :price
|
106
106
|
|
107
107
|
t.boolean :archived, default: false
|
108
|
+
t.boolean :created_by_admin, default: false
|
108
109
|
|
109
110
|
t.timestamps
|
110
111
|
end
|
@@ -146,6 +147,7 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
|
146
147
|
t.integer :price
|
147
148
|
|
148
149
|
t.boolean :archived, default: false
|
150
|
+
t.boolean :created_by_admin, default: false
|
149
151
|
|
150
152
|
t.timestamps
|
151
153
|
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: 0.
|
4
|
+
version: 0.23.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: 2024-
|
11
|
+
date: 2024-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|