effective_events 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|