effective_events 0.5.6 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93b03974b7442edbd550d234032998ff7336b9a68538053b5a918ca1aceabff0
4
- data.tar.gz: 71bf1dcb70a942142aa8a0c6167a17a111cae0d3bd28ef4a3dc490412c1b1fad
3
+ metadata.gz: a72f25c5582cd504f0c3c486d18cbf4980271f83c42a1f4fb859e0cfdbdeee05
4
+ data.tar.gz: 3ffa275a580807a9c15bc8b7b7f5af4700121e915dff3aa4d960347fdf0f6f64
5
5
  SHA512:
6
- metadata.gz: 30be99f3e05a78067b54014333b8428b507f432e0516a91321d106c2c3d02582204bedaf619c1ac21e93e0533b4d52fc6a7387ac97ea601a295591136e81fdf1
7
- data.tar.gz: 703b5577c1140d73adc6707a418d202ec932ce056a788c22f0059691199b8643a302af2ff7f8873dab450d68ece196555c4089bc1c4806e8607d8030025bf58f
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
@@ -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.6'.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.6
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-12-07 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