effective_events 0.5.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f91b10984338119e096e1d4e0b783a0a17267342e0323f511fdd105374f3fbe
4
- data.tar.gz: 0c5df12892710b0e5cb80fc23a4e077594bc07fb9352d0c40b5bcaa651bab20c
3
+ metadata.gz: a72f25c5582cd504f0c3c486d18cbf4980271f83c42a1f4fb859e0cfdbdeee05
4
+ data.tar.gz: 3ffa275a580807a9c15bc8b7b7f5af4700121e915dff3aa4d960347fdf0f6f64
5
5
  SHA512:
6
- metadata.gz: b988cdfe2cd4d6b69ae69a58b3d8c35f4ed6be63ca1dd483d81b5337084695739bbe63757e7ebd891161e18b4edf1de3cdcd46c752f346a29ecf2ec2c20a658a
7
- data.tar.gz: c33c40aae8312259f32cf5eab48f7b1acca56e78026b445813e48747cc77829d3dda213706901efd60e0db8f55033ae0b7e0b66588020e4bc505836f64893976
6
+ metadata.gz: ac9451988420547d6fe212bce3d5134592da7e3fcdcf743e1a39df985a3f0e1011c15d5e3218cdcb7fd71ccd21eb4f2da5c1419cde8b40970223e99bd55c957c
7
+ data.tar.gz: c01e5b8b9772649b9de54acc04313d243845297aa11055619b6c27890fef430be91ac15740b601006701a94c760484cea975d8607716c78db2245d3e0e9b7f5d
@@ -22,6 +22,10 @@ module Admin
22
22
 
23
23
  col :purchased_order
24
24
  col :owner
25
+
26
+ col :first_name
27
+ col :last_name
28
+ col :email
25
29
  col :notes, label: 'Notes'
26
30
 
27
31
  actions_col
@@ -3,7 +3,11 @@
3
3
  class EffectiveEventAddonsDatatable < Effective::Datatable
4
4
  datatable do
5
5
 
6
- col :event_product, search: :string, label: 'Product' do |er|
6
+ col :name do |er|
7
+ "#{er.first_name} #{er.last_name}<br><small>#{mail_to(er.email)}</small>"
8
+ end
9
+
10
+ col :event_product, search: :string, label: 'Add-on' do |er|
7
11
  [
8
12
  er.event_product.to_s,
9
13
  (content_tag(:span, 'Archived', class: 'badge badge-warning') if er.event_product&.archived?)
@@ -12,9 +16,12 @@ class EffectiveEventAddonsDatatable < Effective::Datatable
12
16
 
13
17
  col :price, as: :price
14
18
 
19
+ col :first_name, visible: false
20
+ col :last_name, visible: false
21
+ col :email, visible: false
22
+
15
23
  col :archived, visible: false
16
24
 
17
- # col :notes
18
25
  # no actions_col
19
26
  end
20
27
 
@@ -3,6 +3,10 @@
3
3
  class EffectiveEventRegistrantsDatatable < Effective::Datatable
4
4
  datatable do
5
5
 
6
+ col :name do |er|
7
+ "#{er.first_name} #{er.last_name}<br><small>#{mail_to(er.email)}</small>"
8
+ end
9
+
6
10
  col :event_ticket, search: :string, label: 'Ticket' do |er|
7
11
  [
8
12
  er.event_ticket.to_s,
@@ -10,19 +14,16 @@ class EffectiveEventRegistrantsDatatable < Effective::Datatable
10
14
  ].compact.join('<br>').html_safe
11
15
  end
12
16
 
13
- col :name do |er|
14
- "#{er.first_name} #{er.last_name}<br><small>#{mail_to(er.email)}</small>"
15
- end
16
-
17
17
  col :first_name, visible: false
18
18
  col :last_name, visible: false
19
19
  col :email, visible: false
20
20
  col :company, visible: false
21
21
  col :number, visible: false, label: 'Designations'
22
22
 
23
- col :price, as: :price
24
23
  col :notes
25
24
 
25
+ col :price, as: :price
26
+
26
27
  col :archived, visible: false
27
28
 
28
29
  # no actions_col
@@ -11,7 +11,7 @@ class EffectiveEventRegistrationsDatatable < Effective::Datatable
11
11
  end
12
12
 
13
13
  col :event, search: :string do |er|
14
- er.event.to_s
14
+ link_to(er.event.to_s, effective_events.event_path(er.event))
15
15
  end
16
16
 
17
17
  col :owner, visible: false, search: :string
@@ -26,6 +26,13 @@ class EffectiveEventRegistrationsDatatable < Effective::Datatable
26
26
  dropdown_link_to('Delete', effective_events.event_event_registration_path(er.event, er), 'data-confirm': "Really delete #{er}?", 'data-method': :delete)
27
27
  else
28
28
  dropdown_link_to('Show', effective_events.event_event_registration_path(er.event, er))
29
+
30
+ # Register Again
31
+ if er.event.registerable?
32
+ url = er.event.external_registration_url.presence || effective_events.new_event_event_registration_path(er.event)
33
+ dropdown_link_to('Register Again', url)
34
+ end
35
+
29
36
  end
30
37
  end
31
38
  end
@@ -142,25 +142,43 @@ module EffectiveEventsEventRegistration
142
142
  end
143
143
 
144
144
  # Find or build. But it's not gonna work with more than 1. This is for testing only really.
145
- def event_addon(event_product:)
146
- addon = event_addons.find { |ep| ep.event_product == event_product }
147
- addon || event_addons.build(event_product: event_product, owner: owner)
145
+ def event_addon(event_product:, first_name:, last_name:, email:)
146
+ addon = event_addons.find { |er| er.event_product == event_product && er.first_name == first_name && er.last_name == last_name && er.email == email }
147
+ addon || event_addons.build(event: event, event_product: event_product, owner: owner, first_name: first_name, last_name: last_name, email: email)
148
148
  end
149
149
 
150
150
  # This builds the default event registrants used by the wizard form
151
151
  def build_event_registrants
152
152
  if event_registrants.blank?
153
153
  raise('expected owner and event to be present') unless owner && event
154
+
154
155
  event_registrants.build(
155
156
  first_name: owner.try(:first_name),
156
157
  last_name: owner.try(:last_name),
157
- email: owner.try(:email)
158
+ email: owner.try(:email),
159
+ company: owner.try(:company),
160
+ number: owner.try(:membership).try(:number) || owner.try(:number)
158
161
  )
159
162
  end
160
163
 
161
164
  event_registrants
162
165
  end
163
166
 
167
+ # This builds the default event addons used by the wizard form
168
+ def build_event_addons
169
+ if event_addons.blank?
170
+ raise('expected owner and event to be present') unless owner && event
171
+
172
+ event_addons.build(
173
+ first_name: owner.try(:first_name),
174
+ last_name: owner.try(:last_name),
175
+ email: owner.try(:email)
176
+ )
177
+ end
178
+
179
+ event_addons
180
+ end
181
+
164
182
  private
165
183
 
166
184
  def present_event_registrants
@@ -22,6 +22,10 @@ module Effective
22
22
  belongs_to :event_registration, polymorphic: true, optional: true
23
23
 
24
24
  effective_resource do
25
+ first_name :string
26
+ last_name :string
27
+ email :string
28
+
25
29
  notes :text
26
30
 
27
31
  archived :boolean
@@ -46,8 +50,25 @@ module Effective
46
50
  self.price ||= event_product.price
47
51
  end
48
52
 
53
+ validates :first_name, presence: true
54
+ validates :last_name, presence: true
55
+ validates :email, email: true
56
+
49
57
  def to_s
50
- persisted? ? event_product.to_s : 'product'
58
+ persisted? ? title : 'addon'
59
+ end
60
+
61
+ def title
62
+ return event_product.to_s unless first_name.present? && last_name.present?
63
+ "#{event_product} - #{last_first_name}"
64
+ end
65
+
66
+ def name
67
+ "#{first_name} #{last_name}"
68
+ end
69
+
70
+ def last_first_name
71
+ "#{last_name}, #{first_name}"
51
72
  end
52
73
 
53
74
  def tax_exempt
@@ -3,6 +3,13 @@
3
3
  - if f.object.purchased?
4
4
  = f.static_field :event_product, label: 'Purchased event add-ons'
5
5
  - else
6
- = f.select :event_product_id, effective_events_event_products_collection(event), label: false
6
+ = f.select :event_product_id, effective_events_event_products_collection(event), label: 'Add-on'
7
+
8
+ .row
9
+ .col-lg= f.text_field :first_name
10
+ .col-lg= f.text_field :last_name
11
+
12
+ .row
13
+ .col-lg= f.email_field :email
7
14
 
8
15
  -# = f.text_area :notes, label: 'Notes'
@@ -11,7 +11,7 @@
11
11
  .row
12
12
  .col-lg= f.text_field :first_name
13
13
  .col-lg= f.text_field :last_name
14
- .col-lg= f.text_field :number, label: 'Professional Designations', hint: 'Include member or registrant number, if applicable.'
14
+ .col-lg= f.text_field :number, label: 'Professional Designations', hint: 'member or registrant number'
15
15
 
16
16
  .row
17
17
  .col-lg= f.email_field :email
@@ -13,7 +13,7 @@
13
13
  = effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
14
14
  = f.hidden_field :id
15
15
 
16
- = f.has_many :event_addons do |fp|
16
+ = f.has_many :event_addons, f.object.build_event_addons do |fp|
17
17
  = render('effective/event_addons/fields', f: fp, event: f.object.event)
18
18
 
19
19
  = f.save 'Save and Continue'
@@ -7,7 +7,8 @@
7
7
  .alert.alert-warning.mb-4
8
8
  Successfully paid on #{resource.submit_order.purchased_at.strftime('%F')}.
9
9
 
10
- = link_to "Return to Dashboard", return_to_dashboard_path, class: 'btn btn-lg btn-primary btn-block'
10
+ .mb-4
11
+ = link_to "Return to Dashboard", return_to_dashboard_path, class: 'btn btn-lg btn-primary btn-block'
11
12
 
12
13
  = render 'effective/event_registrations/summary', event_registration: resource
13
14
  = render 'effective/event_registrations/event_registration', event_registration: resource
@@ -1,6 +1,8 @@
1
- .card{class: "effective-events-#{event.category.parameterize}"}
1
+ .card.mb-4{class: "effective-events-#{event.category.to_s.parameterize}"}
2
2
  .card-body
3
- = link_to(event.category, effective_events.events_path + '/' + event.category.parameterize, class: "badge badge-event mb-2 effective-events-#{event.category.parameterize}")
3
+ - if event.category.present?
4
+ = link_to(event.category, effective_events.events_path + '/' + event.category.parameterize, class: "badge badge-event mb-2 effective-events-#{event.category.parameterize}")
5
+
4
6
  %h2.mt-1= link_to event.title, effective_events.event_path(event)
5
7
  .effective-events-schedule= effective_events_event_schedule(event)
6
8
  .effective-events-excerpt= event.excerpt.to_s
@@ -11,7 +11,7 @@ EffectiveEvents.setup do |config|
11
11
  # config.layout = { application: 'application', admin: 'admin' }
12
12
 
13
13
  # Event Settings
14
- # config.event_registrations_class_name = 'Effective::EventRegistration'
14
+ # config.event_registration_class_name = 'Effective::EventRegistration'
15
15
 
16
16
  # Pagination length on the Events#index page
17
17
  config.per_page = 10
@@ -102,6 +102,10 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
102
102
  t.integer :event_registration_id
103
103
  t.string :event_registration_type
104
104
 
105
+ t.string :first_name
106
+ t.string :last_name
107
+ t.string :email
108
+
105
109
  t.text :notes
106
110
 
107
111
  t.integer :purchased_order_id
@@ -1,3 +1,3 @@
1
1
  module EffectiveEvents
2
- VERSION = '0.5.5'.freeze
2
+ VERSION = '0.6.0'.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: 0.5.5
4
+ version: 0.6.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-11-29 00:00:00.000000000 Z
11
+ date: 2023-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails