effective_events 0.1.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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +97 -0
- data/Rakefile +18 -0
- data/app/assets/config/effective_events_manifest.js +3 -0
- data/app/assets/javascripts/effective_events/base.js +0 -0
- data/app/assets/javascripts/effective_events.js +1 -0
- data/app/assets/stylesheets/effective_events/base.scss +0 -0
- data/app/assets/stylesheets/effective_events.scss +1 -0
- data/app/controllers/admin/event_registrants_controller.rb +11 -0
- data/app/controllers/admin/event_registrations_controller.rb +19 -0
- data/app/controllers/admin/event_tickets_controller.rb +8 -0
- data/app/controllers/admin/events_controller.rb +18 -0
- data/app/controllers/effective/event_registrations_controller.rb +53 -0
- data/app/controllers/effective/events_controller.rb +47 -0
- data/app/datatables/admin/effective_event_registrants_datatable.rb +47 -0
- data/app/datatables/admin/effective_event_registrations_datatable.rb +25 -0
- data/app/datatables/admin/effective_event_tickets_datatable.rb +42 -0
- data/app/datatables/admin/effective_events_datatable.rb +51 -0
- data/app/datatables/effective_event_registrants_datatable.rb +50 -0
- data/app/datatables/effective_event_registrations_datatable.rb +35 -0
- data/app/datatables/effective_events_datatable.rb +42 -0
- data/app/helpers/effective_events_helper.rb +18 -0
- data/app/models/concerns/effective_events_event_registration.rb +231 -0
- data/app/models/effective/event.rb +181 -0
- data/app/models/effective/event_registrant.rb +85 -0
- data/app/models/effective/event_registration.rb +7 -0
- data/app/models/effective/event_ticket.rb +59 -0
- data/app/views/admin/event_registrants/_form.html.haml +14 -0
- data/app/views/admin/event_tickets/_form.html.haml +7 -0
- data/app/views/admin/events/_form.html.haml +27 -0
- data/app/views/admin/events/_form_access.html.haml +10 -0
- data/app/views/admin/events/_form_content.html.haml +5 -0
- data/app/views/admin/events/_form_event.html.haml +24 -0
- data/app/views/admin/events/_form_event_registration_content.html.haml +19 -0
- data/app/views/effective/event_registrants/_fields.html.haml +19 -0
- data/app/views/effective/event_registrations/_content.html.haml +10 -0
- data/app/views/effective/event_registrations/_dashboard.html.haml +30 -0
- data/app/views/effective/event_registrations/_event_registration.html.haml +8 -0
- data/app/views/effective/event_registrations/_layout.html.haml +3 -0
- data/app/views/effective/event_registrations/_orders.html.haml +4 -0
- data/app/views/effective/event_registrations/_registrants.html.haml +10 -0
- data/app/views/effective/event_registrations/_summary.html.haml +29 -0
- data/app/views/effective/event_registrations/billing.html.haml +14 -0
- data/app/views/effective/event_registrations/checkout.html.haml +6 -0
- data/app/views/effective/event_registrations/registrants.html.haml +14 -0
- data/app/views/effective/event_registrations/start.html.haml +18 -0
- data/app/views/effective/event_registrations/submitted.html.haml +15 -0
- data/app/views/effective/event_registrations/summary.html.haml +8 -0
- data/app/views/effective/event_tickets/_fields.html.haml +4 -0
- data/app/views/effective/events/_dashboard.html.haml +14 -0
- data/app/views/effective/events/_event.html.haml +23 -0
- data/app/views/effective/events/_layout.html.haml +1 -0
- data/app/views/effective/events/_spacer.html.haml +1 -0
- data/app/views/effective/events/index.html.haml +8 -0
- data/app/views/effective/events/show.html.haml +16 -0
- data/config/effective_events.rb +17 -0
- data/config/routes.rb +24 -0
- data/db/migrate/01_create_effective_events.rb.erb +98 -0
- data/db/seeds.rb +45 -0
- data/lib/effective_events/engine.rb +18 -0
- data/lib/effective_events/version.rb +3 -0
- data/lib/effective_events.rb +21 -0
- data/lib/generators/effective_events/install_generator.rb +30 -0
- data/lib/generators/templates/effective_events_mailer_preview.rb +4 -0
- data/lib/tasks/effective_events_tasks.rake +8 -0
- metadata +262 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
- all_steps_content = resource.event&.rich_text_all_steps_content
|
2
|
+
- step_content = resource.event&.send("rich_text_#{step}_content")
|
3
|
+
|
4
|
+
- if all_steps_content.present?
|
5
|
+
.card
|
6
|
+
.card-body= all_steps_content
|
7
|
+
|
8
|
+
- if step_content.present?
|
9
|
+
.card
|
10
|
+
.card-body= step_content
|
@@ -0,0 +1,30 @@
|
|
1
|
+
-# In progress registration
|
2
|
+
- registration = EffectiveEvents.EventRegistration.in_progress.for(current_user).first
|
3
|
+
- datatable = EffectiveResources.best('EffectiveEventRegistrationsDatatable').new(self, namespace: :effective)
|
4
|
+
|
5
|
+
- if registration.present?
|
6
|
+
%h2 In Progress Event Registrations
|
7
|
+
|
8
|
+
%p
|
9
|
+
Your registration for
|
10
|
+
= link_to(registration.event, effective_events.event_path(registration.event))
|
11
|
+
is incomplete
|
12
|
+
|
13
|
+
%p
|
14
|
+
Please
|
15
|
+
= link_to("Continue registration for #{registration.event}", effective_events.event_event_registration_build_path(registration.event, registration, registration.next_step), 'data-turbolinks' => false, class: 'btn btn-primary')
|
16
|
+
or you can
|
17
|
+
= link_to('Abandon registration', effective_events.event_event_registration_path(registration.event, registration), 'data-confirm': "Really delete #{registration}?", 'data-method': :delete, class: 'btn btn-danger')
|
18
|
+
to register for another event.
|
19
|
+
|
20
|
+
%hr
|
21
|
+
|
22
|
+
%h2 Event Registrations
|
23
|
+
|
24
|
+
- if datatable.present?
|
25
|
+
= render_simple_datatable(datatable)
|
26
|
+
- else
|
27
|
+
%p You have no past event registrations. When you do, we'll show them here.
|
28
|
+
|
29
|
+
- if registration.blank?
|
30
|
+
%p= link_to 'View all Events', effective_events.events_path, class: 'btn btn-primary'
|
@@ -0,0 +1,8 @@
|
|
1
|
+
.effective-event-registration
|
2
|
+
- blacklist = EffectiveEvents.EventRegistration.required_wizard_steps
|
3
|
+
- steps = event_registration.required_steps - blacklist
|
4
|
+
|
5
|
+
= render "effective/event_registrations/summary", event_registration: event_registration
|
6
|
+
|
7
|
+
- steps.select { |step| event_registration.has_completed_step?(step) }.each do |partial|
|
8
|
+
= render "effective/event_registrations/#{partial}", event_registration: event_registration, step: partial
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.card
|
2
|
+
.card-body
|
3
|
+
.row
|
4
|
+
.col-sm
|
5
|
+
%h5.card-title= event_registration.wizard_step_title(:registrants)
|
6
|
+
.col-sm-auto.text-right
|
7
|
+
= link_to('Edit', wizard_path(:registrants)) if edit_effective_event_registrations_wizard?
|
8
|
+
|
9
|
+
- datatable = EffectiveEventRegistrantsDatatable.new(event_registration: event_registration)
|
10
|
+
.mb-4= render_simple_datatable(datatable)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.card
|
2
|
+
.card-body
|
3
|
+
%h5 Event Registration
|
4
|
+
|
5
|
+
%table.table.table-sm
|
6
|
+
%tbody
|
7
|
+
%tr
|
8
|
+
%th.border-0 Event
|
9
|
+
%td.border-0
|
10
|
+
= link_to(event_registration.event, effective_events.event_path(event_registration.event))
|
11
|
+
|
12
|
+
- if request.path.start_with?('/admin')
|
13
|
+
%tr
|
14
|
+
%th Owner
|
15
|
+
%td
|
16
|
+
- url = (polymorphic_admin_path(event_registration.owner) rescue "/admin/users/#{event_registration.owner.to_param}/edit")
|
17
|
+
= link_to(event_registration.owner, url)
|
18
|
+
- else
|
19
|
+
%tr
|
20
|
+
%th Owner
|
21
|
+
%td= event_registration.owner
|
22
|
+
|
23
|
+
|
24
|
+
- if event_registration.orders.present?
|
25
|
+
%tr
|
26
|
+
%th Order
|
27
|
+
%td
|
28
|
+
- event_registration.orders.each do |order|
|
29
|
+
= link_to(order, effective_orders.order_path(order))
|
@@ -0,0 +1,14 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/event_registrations/content', resource: resource
|
3
|
+
|
4
|
+
- raise('expected owner to respond to billing_address') unless resource.owner.respond_to?(:billing_address)
|
5
|
+
|
6
|
+
.card
|
7
|
+
.card-body
|
8
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
9
|
+
= f.hidden_field :id
|
10
|
+
|
11
|
+
= f.fields_for(:owner, f.object.owner) do |fu|
|
12
|
+
= effective_address_fields(fu, :billing)
|
13
|
+
|
14
|
+
= f.save 'Save and Continue'
|
@@ -0,0 +1,6 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/event_registrations/content', resource: resource
|
3
|
+
|
4
|
+
.card
|
5
|
+
.card-body
|
6
|
+
= render_checkout_step2(resource.submit_order, purchased_url: wizard_path(:submitted), deferred_url: wizard_path(:checkout), declined_url: wizard_path(:checkout))
|
@@ -0,0 +1,14 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/event_registrations/content', resource: resource
|
3
|
+
|
4
|
+
.card
|
5
|
+
.card-body
|
6
|
+
%p Please add one or more registrant.
|
7
|
+
|
8
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
9
|
+
= f.hidden_field :id
|
10
|
+
|
11
|
+
= f.has_many :event_registrants, f.object.build_event_registrants do |fr|
|
12
|
+
= render('effective/event_registrants/fields', f: fr, event: f.object.event)
|
13
|
+
|
14
|
+
= f.save 'Save and Continue'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/event_registrations/content', resource: resource
|
3
|
+
|
4
|
+
.card
|
5
|
+
.card-body
|
6
|
+
%p Welcome #{current_user}!
|
7
|
+
|
8
|
+
%p You are registering for #{resource.event}.
|
9
|
+
|
10
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
11
|
+
= f.hidden_field :id
|
12
|
+
|
13
|
+
= f.hidden_field :event_id
|
14
|
+
|
15
|
+
= f.hidden_field :owner_type
|
16
|
+
= f.hidden_field :owner_id
|
17
|
+
|
18
|
+
= f.save 'Save and Continue'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/event_registrations/content', resource: resource
|
3
|
+
|
4
|
+
- raise('expected a submitted event_registration') unless resource.was_submitted?
|
5
|
+
- raise('expected a purchased event_registration submit_order') unless resource.submit_order&.purchased?
|
6
|
+
|
7
|
+
.alert.alert-warning.mb-4
|
8
|
+
Successfully paid on #{resource.submit_order.purchased_at.strftime('%F')}.
|
9
|
+
|
10
|
+
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary mb-4'
|
11
|
+
|
12
|
+
= render 'effective/event_registrations/event_registration', event_registration: resource
|
13
|
+
= render 'effective/event_registrations/orders', event_registration: resource
|
14
|
+
|
15
|
+
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary'
|
@@ -0,0 +1,8 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/event_registrations/content', resource: resource
|
3
|
+
|
4
|
+
= render('effective/event_registrations/event_registration', event_registration: resource)
|
5
|
+
|
6
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
7
|
+
= f.hidden_field :id
|
8
|
+
= f.submit 'Save and Continue', class: 'btn btn-primary'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
%h2 Events
|
2
|
+
|
3
|
+
- upcoming = Effective::Event.events(user: current_user).upcoming.count
|
4
|
+
|
5
|
+
%p
|
6
|
+
- if upcoming == 1
|
7
|
+
There is 1 upcoming event.
|
8
|
+
- else
|
9
|
+
There are #{upcoming} upcoming events.
|
10
|
+
|
11
|
+
- datatable = EffectiveEventsDatatable.new(self, namespace: :effective)
|
12
|
+
= render_datatable(datatable, simple: true)
|
13
|
+
|
14
|
+
%p= link_to 'View All Events', effective_events.events_path, class: 'btn btn-primary'
|
@@ -0,0 +1,23 @@
|
|
1
|
+
.effective-event
|
2
|
+
%h2.event-title= link_to event, effective_events.event_path(event)
|
3
|
+
|
4
|
+
%table.table.effective-events-table
|
5
|
+
%tbody
|
6
|
+
%tr
|
7
|
+
%td Starts
|
8
|
+
%td= event.start_at
|
9
|
+
|
10
|
+
%tr
|
11
|
+
%td Ends
|
12
|
+
%td= event.end_at
|
13
|
+
|
14
|
+
%tr
|
15
|
+
%td Registration Closes
|
16
|
+
%td= event.registration_end_at
|
17
|
+
|
18
|
+
%tr
|
19
|
+
%td Early Bird
|
20
|
+
%td= event.early_bird_status
|
21
|
+
|
22
|
+
.event-content.event-excerpt
|
23
|
+
= event.excerpt
|
@@ -0,0 +1 @@
|
|
1
|
+
= yield
|
@@ -0,0 +1 @@
|
|
1
|
+
%hr
|
@@ -0,0 +1,16 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
.effective-event
|
3
|
+
|
4
|
+
- if @event.sold_out?
|
5
|
+
.alert.alert-warning This event is sold out.
|
6
|
+
|
7
|
+
- if @event.closed?
|
8
|
+
.alert.alert-warning This event is no longer available.
|
9
|
+
|
10
|
+
- if @event.registerable?
|
11
|
+
= link_to 'Register For This Event', effective_events.new_event_event_registration_path(@event), class: 'btn btn-primary'
|
12
|
+
|
13
|
+
= render 'effective/events/event', event: @event
|
14
|
+
|
15
|
+
.event-body.event-content
|
16
|
+
= @event.body
|
@@ -0,0 +1,17 @@
|
|
1
|
+
EffectiveEvents.setup do |config|
|
2
|
+
config.events_table_name = :events
|
3
|
+
config.event_tickets_table_name = :event_tickets
|
4
|
+
config.event_registrants_table_name = :event_registrants
|
5
|
+
config.event_registrations_table_name = :event_registrations
|
6
|
+
|
7
|
+
# Layout Settings
|
8
|
+
# Configure the Layout per controller, or all at once
|
9
|
+
# config.layout = { application: 'application', admin: 'admin' }
|
10
|
+
|
11
|
+
# Event Settings
|
12
|
+
# config.event_registrations_class_name = 'Effective::EventRegistration'
|
13
|
+
|
14
|
+
config.per_page = 10
|
15
|
+
|
16
|
+
config.use_effective_roles = true
|
17
|
+
end
|
data/config/routes.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Rails.application.routes.draw do
|
4
|
+
mount EffectiveEvents::Engine => '/', as: 'effective_events'
|
5
|
+
end
|
6
|
+
|
7
|
+
EffectiveEvents::Engine.routes.draw do
|
8
|
+
# Public routes
|
9
|
+
scope module: 'effective' do
|
10
|
+
resources :events, only: [:index, :show] do
|
11
|
+
resources :event_registrations, only: [:new, :show, :destroy] do
|
12
|
+
resources :build, controller: :event_registrations, only: [:show, :update]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
namespace :admin do
|
18
|
+
resources :events, except: [:show]
|
19
|
+
resources :event_tickets, except: [:show]
|
20
|
+
resources :event_registrants, except: [:show]
|
21
|
+
resources :event_registrations, only: [:index, :show]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :events do |t|
|
4
|
+
t.string :title
|
5
|
+
|
6
|
+
t.string :slug
|
7
|
+
t.boolean :draft, default: false
|
8
|
+
|
9
|
+
t.datetime :start_at
|
10
|
+
t.datetime :end_at
|
11
|
+
|
12
|
+
t.datetime :registration_start_at
|
13
|
+
t.datetime :registration_end_at
|
14
|
+
t.datetime :early_bird_end_at
|
15
|
+
|
16
|
+
t.integer :event_registrants_count, default: 0
|
17
|
+
|
18
|
+
t.integer :roles_mask
|
19
|
+
t.boolean :authenticate_user, default: false
|
20
|
+
|
21
|
+
t.timestamps
|
22
|
+
end
|
23
|
+
|
24
|
+
add_index :events, :title
|
25
|
+
add_index :events, :end_at
|
26
|
+
|
27
|
+
create_table :event_tickets do |t|
|
28
|
+
t.integer :event_id
|
29
|
+
|
30
|
+
t.string :title
|
31
|
+
t.integer :capacity
|
32
|
+
|
33
|
+
t.integer :regular_price
|
34
|
+
t.integer :early_bird_price
|
35
|
+
|
36
|
+
t.string :qb_item_name
|
37
|
+
t.boolean :tax_exempt, default: false
|
38
|
+
|
39
|
+
t.integer :position
|
40
|
+
|
41
|
+
t.timestamps
|
42
|
+
end
|
43
|
+
|
44
|
+
create_table :event_registrants do |t|
|
45
|
+
t.integer :event_id
|
46
|
+
t.integer :event_ticket_id
|
47
|
+
|
48
|
+
t.integer :owner_id
|
49
|
+
t.string :owner_type
|
50
|
+
|
51
|
+
t.integer :event_registration_id
|
52
|
+
t.string :event_registration_type
|
53
|
+
|
54
|
+
t.string :first_name
|
55
|
+
t.string :last_name
|
56
|
+
t.string :email
|
57
|
+
|
58
|
+
t.string :company
|
59
|
+
t.string :number
|
60
|
+
t.text :notes
|
61
|
+
|
62
|
+
t.integer :purchased_order_id
|
63
|
+
t.integer :price
|
64
|
+
|
65
|
+
t.timestamps
|
66
|
+
end
|
67
|
+
|
68
|
+
create_table :event_registrations do |t|
|
69
|
+
t.string :token
|
70
|
+
|
71
|
+
t.integer :event_id
|
72
|
+
|
73
|
+
t.integer :owner_id
|
74
|
+
t.string :owner_type
|
75
|
+
|
76
|
+
t.integer :user_id
|
77
|
+
t.string :user_type
|
78
|
+
|
79
|
+
# Acts as Statused
|
80
|
+
t.string :status
|
81
|
+
t.text :status_steps
|
82
|
+
|
83
|
+
# Acts as Wizard
|
84
|
+
t.text :wizard_steps
|
85
|
+
|
86
|
+
# Dates
|
87
|
+
t.datetime :submitted_at
|
88
|
+
|
89
|
+
t.datetime :updated_at
|
90
|
+
t.datetime :created_at
|
91
|
+
end
|
92
|
+
|
93
|
+
add_index :event_registrations, [:owner_id, :owner_type]
|
94
|
+
add_index :event_registrations, :status
|
95
|
+
add_index :event_registrations, :token
|
96
|
+
|
97
|
+
end
|
98
|
+
end
|
data/db/seeds.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
puts "Running effective_events seeds"
|
2
|
+
|
3
|
+
now = Time.zone.now
|
4
|
+
|
5
|
+
if Rails.env.test?
|
6
|
+
Effective::Event.destroy_all
|
7
|
+
ActionText::RichText.where(record_type: ['Effective::Event', 'Effective::Ticket']).delete_all
|
8
|
+
end
|
9
|
+
|
10
|
+
# Build the first CpdCycle
|
11
|
+
event = Effective::Event.create!(
|
12
|
+
title: "#{now.year} Main Event",
|
13
|
+
body: '<p>This is a great event!</p>',
|
14
|
+
|
15
|
+
start_at: (now + 1.week),
|
16
|
+
end_at: (now + 1.week + 1.hour),
|
17
|
+
|
18
|
+
registration_start_at: now,
|
19
|
+
registration_end_at: (now + 6.days),
|
20
|
+
early_bird_end_at: (now + 3.days)
|
21
|
+
)
|
22
|
+
|
23
|
+
event.event_tickets.create!(
|
24
|
+
title: 'Ticket A 10 Seats',
|
25
|
+
capacity: 10,
|
26
|
+
regular_price: 100_00,
|
27
|
+
early_bird_price: 50_00,
|
28
|
+
qb_item_name: 'Tickets'
|
29
|
+
)
|
30
|
+
|
31
|
+
event.event_tickets.create!(
|
32
|
+
title: 'Ticket B 20 Seats',
|
33
|
+
capacity: 20,
|
34
|
+
regular_price: 200_00,
|
35
|
+
early_bird_price: 150_00,
|
36
|
+
qb_item_name: 'Tickets'
|
37
|
+
)
|
38
|
+
|
39
|
+
event.event_tickets.create!(
|
40
|
+
title: 'Ticket C Unlimited Seats',
|
41
|
+
capacity: nil,
|
42
|
+
regular_price: 200_00,
|
43
|
+
early_bird_price: 150_00,
|
44
|
+
qb_item_name: 'Tickets'
|
45
|
+
)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module EffectiveEvents
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
engine_name 'effective_events'
|
4
|
+
|
5
|
+
# Set up our default configuration options.
|
6
|
+
initializer 'effective_events.defaults', before: :load_config_initializers do |app|
|
7
|
+
eval File.read("#{config.root}/config/effective_events.rb")
|
8
|
+
end
|
9
|
+
|
10
|
+
# Include concern and allow any ActiveRecord object to call it
|
11
|
+
initializer 'effective_events.active_record' do |app|
|
12
|
+
ActiveSupport.on_load :active_record do
|
13
|
+
ActiveRecord::Base.extend(EffectiveEventsEventRegistration::Base)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'effective_resources'
|
2
|
+
require 'effective_events/engine'
|
3
|
+
require 'effective_events/version'
|
4
|
+
|
5
|
+
module EffectiveEvents
|
6
|
+
|
7
|
+
def self.config_keys
|
8
|
+
[
|
9
|
+
:events_table_name, :event_registrants_table_name, :event_tickets_table_name, :event_registrations_table_name,
|
10
|
+
:layout, :per_page, :use_effective_roles,
|
11
|
+
:event_registration_class_name
|
12
|
+
]
|
13
|
+
end
|
14
|
+
|
15
|
+
include EffectiveGem
|
16
|
+
|
17
|
+
def self.EventRegistration
|
18
|
+
event_registration_class_name&.constantize || Effective::EventRegistration
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module EffectiveMemberships
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
include Rails::Generators::Migration
|
5
|
+
|
6
|
+
desc 'Creates an EffectiveEvents initializer in your application.'
|
7
|
+
|
8
|
+
source_root File.expand_path('../../templates', __FILE__)
|
9
|
+
|
10
|
+
def self.next_migration_number(dirname)
|
11
|
+
if not ActiveRecord::Base.timestamped_migrations
|
12
|
+
Time.new.utc.strftime("%Y%m%d%H%M%S")
|
13
|
+
else
|
14
|
+
'%.3d' % (current_migration_number(dirname) + 1)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_initializer
|
19
|
+
template ('../' * 3) + 'config/effective_events.rb', 'config/initializers/effective_events.rb'
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_migration_file
|
23
|
+
@events_table_name = ':' + EffectiveEvents.events_table_name.to_s
|
24
|
+
|
25
|
+
migration_template ('../' * 3) + 'db/migrate/01_create_effective_events.rb.erb', 'db/migrate/create_effective_events.rb'
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|