effective_events 0.2.8 → 0.3.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: 14b31d4fcbf22eb2a7a235b42b02db1b5940319f76964200e368a5fb0fe6d5d2
4
- data.tar.gz: 7f157eaa6726be68a1595c4e887aa535ddda2d81936e35d3783f4d598b128aaf
3
+ metadata.gz: b23a48351b1b02e030c1b6ba099fe9ee738b0f673b947dcc5b1da98b8f22a994
4
+ data.tar.gz: 1d5876003810fe4d761a8707e5592ac9f9c201de1633a824749e966a64c9b66b
5
5
  SHA512:
6
- metadata.gz: 5339ff0360365f773d2d86c8040eb1ec56cf114a02714bb8189139befe666baf9289bb2ae8c3c15521db13324ba173c23bc57fc74a6973a2cd54f1f9f31a3cc1
7
- data.tar.gz: 69002d95887fc84559d4a5d3de1965c3bb8f9b541ff139c760488d38d4c9c498044dd0b3bd8160cf60bce2567a6fef3bda2e973b8356b37144627c71c7f4c188
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
@@ -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 EffectiveEventRegistrantsDatatable < 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
@@ -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
- event.event_tickets.reject(&:archived?).map do |ticket|
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
- event.event_products.reject(&:archived?).map do |product|
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
@@ -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
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Effective
4
4
  class EventProduct < ActiveRecord::Base
5
+ acts_as_archived
6
+
5
7
  belongs_to :event
6
8
 
7
9
  has_many :event_addons
@@ -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
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Effective
4
4
  class EventTicket < ActiveRecord::Base
5
+ acts_as_archived
6
+
5
7
  belongs_to :event
6
8
 
7
9
  has_many :event_registrants
@@ -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
@@ -8,6 +8,8 @@
8
8
 
9
9
  = render 'effective/event_registrants/fields', f: f, event: event_registrant.event, namespace: :admin
10
10
 
11
+ = f.check_box :archived, label: "Archive this registrant. 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
@@ -17,7 +17,6 @@
17
17
  %th Registered by
18
18
  %td= event_registration.owner
19
19
 
20
-
21
20
  - if event_registration.orders.present?
22
21
  %tr
23
22
  %th Order
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
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveEvents
2
- VERSION = '0.2.8'.freeze
2
+ VERSION = '0.3.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.2.8
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-07 00:00:00.000000000 Z
11
+ date: 2022-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails