effective_work_experience 0.0.1
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 +188 -0
- data/Rakefile +18 -0
- data/app/assets/config/effective_work_experience_manifest.js +3 -0
- data/app/assets/javascripts/effective_work_experience/base.js +0 -0
- data/app/assets/javascripts/effective_work_experience.js +1 -0
- data/app/assets/stylesheets/effective_work_experience/base.scss +7 -0
- data/app/assets/stylesheets/effective_work_experience.scss +1 -0
- data/app/controllers/admin/work_experience_categories_controller.rb +19 -0
- data/app/controllers/admin/work_experience_projects_controller.rb +19 -0
- data/app/controllers/admin/work_experience_records_controller.rb +19 -0
- data/app/controllers/admin/work_experience_reports_controller.rb +21 -0
- data/app/controllers/admin/work_experience_subcategories_controller.rb +19 -0
- data/app/controllers/admin/work_experience_summaries_controller.rb +19 -0
- data/app/controllers/effective/work_experience_projects_controller.rb +17 -0
- data/app/controllers/effective/work_experience_records_controller.rb +17 -0
- data/app/controllers/effective/work_experience_reports_controller.rb +19 -0
- data/app/controllers/effective/work_experience_summaries_controller.rb +17 -0
- data/app/datatables/admin/effective_work_experience_categories_datatable.rb +22 -0
- data/app/datatables/admin/effective_work_experience_projects_datatable.rb +24 -0
- data/app/datatables/admin/effective_work_experience_records_datatable.rb +37 -0
- data/app/datatables/admin/effective_work_experience_reports_datatable.rb +34 -0
- data/app/datatables/admin/effective_work_experience_subcategories_datatable.rb +24 -0
- data/app/datatables/admin/effective_work_experience_summaries_datatable.rb +57 -0
- data/app/datatables/effective_work_experience_projects_datatable.rb +38 -0
- data/app/datatables/effective_work_experience_records_datatable.rb +61 -0
- data/app/datatables/effective_work_experience_reports_review_datatable.rb +15 -0
- data/app/datatables/effective_work_experience_summaries_datatable.rb +49 -0
- data/app/datatables/effective_work_experience_summaries_review_datatable.rb +43 -0
- data/app/helpers/effective_work_experience_helper.rb +46 -0
- data/app/mailers/effective/work_experience_mailer.rb +39 -0
- data/app/models/concerns/effective_work_experience_summary.rb +264 -0
- data/app/models/concerns/effective_work_experience_user.rb +135 -0
- data/app/models/effective/work_experience_category.rb +29 -0
- data/app/models/effective/work_experience_entry.rb +43 -0
- data/app/models/effective/work_experience_outside_mentor.rb +35 -0
- data/app/models/effective/work_experience_project.rb +38 -0
- data/app/models/effective/work_experience_record.rb +99 -0
- data/app/models/effective/work_experience_report.rb +50 -0
- data/app/models/effective/work_experience_subcategory.rb +31 -0
- data/app/models/effective/work_experience_summary.rb +7 -0
- data/app/views/admin/work_experience/_user_fields.html.haml +17 -0
- data/app/views/admin/work_experience/_user_work_experience.html.haml +21 -0
- data/app/views/admin/work_experience_categories/_form.html.haml +7 -0
- data/app/views/admin/work_experience_categories/_form_work_experience_category.html.haml +5 -0
- data/app/views/admin/work_experience_projects/_form.html.haml +11 -0
- data/app/views/admin/work_experience_projects/_work_experience_project.html.haml +1 -0
- data/app/views/admin/work_experience_records/_form.html.haml +12 -0
- data/app/views/admin/work_experience_records/_work_experience_record.html.haml +1 -0
- data/app/views/admin/work_experience_reports/show.html.haml +2 -0
- data/app/views/admin/work_experience_subcategories/_form.html.haml +7 -0
- data/app/views/admin/work_experience_subcategories/_form_work_experience_subcategory.html.haml +10 -0
- data/app/views/admin/work_experience_summaries/_form.html.haml +7 -0
- data/app/views/admin/work_experience_summaries/_form_work_experience_summary.html.haml +32 -0
- data/app/views/admin/work_experience_summaries/_work_experience_summary.html.haml +1 -0
- data/app/views/effective/work_experience/_dashboard_intern.html.haml +73 -0
- data/app/views/effective/work_experience/_dashboard_mentor.html.haml +28 -0
- data/app/views/effective/work_experience_mailer/work_experience_summary_reviewed.liquid +13 -0
- data/app/views/effective/work_experience_mailer/work_experience_summary_submitted.liquid +15 -0
- data/app/views/effective/work_experience_outside_mentors/_fields.html.haml +5 -0
- data/app/views/effective/work_experience_projects/_fields.html.haml +7 -0
- data/app/views/effective/work_experience_projects/_form.html.haml +3 -0
- data/app/views/effective/work_experience_projects/_work_experience_project.html.haml +2 -0
- data/app/views/effective/work_experience_records/_fields.html.haml +52 -0
- data/app/views/effective/work_experience_records/_form.html.haml +5 -0
- data/app/views/effective/work_experience_records/_work_experience_record.html.haml +63 -0
- data/app/views/effective/work_experience_reports/_work_experience_report.html.haml +103 -0
- data/app/views/effective/work_experience_reports/show.html.haml +2 -0
- data/app/views/effective/work_experience_summaries/_content.html.haml +1 -0
- data/app/views/effective/work_experience_summaries/_layout.html.haml +3 -0
- data/app/views/effective/work_experience_summaries/_projects.html.haml +5 -0
- data/app/views/effective/work_experience_summaries/_projects_datatable.html.haml +2 -0
- data/app/views/effective/work_experience_summaries/_projects_fields.html.haml +1 -0
- data/app/views/effective/work_experience_summaries/_records.html.haml +65 -0
- data/app/views/effective/work_experience_summaries/_records_datatable.html.haml +2 -0
- data/app/views/effective/work_experience_summaries/_records_fields.html.haml +1 -0
- data/app/views/effective/work_experience_summaries/_review.html.haml +4 -0
- data/app/views/effective/work_experience_summaries/_review_fields.html.haml +4 -0
- data/app/views/effective/work_experience_summaries/_reviewed.html.haml +1 -0
- data/app/views/effective/work_experience_summaries/_start_fields.html.haml +1 -0
- data/app/views/effective/work_experience_summaries/_summary.html.haml +79 -0
- data/app/views/effective/work_experience_summaries/_user.html.haml +7 -0
- data/app/views/effective/work_experience_summaries/_work_experience_summary.html.haml +7 -0
- data/app/views/effective/work_experience_summaries/projects.html.haml +14 -0
- data/app/views/effective/work_experience_summaries/records.html.haml +14 -0
- data/app/views/effective/work_experience_summaries/review.html.haml +13 -0
- data/app/views/effective/work_experience_summaries/reviewed.html.haml +11 -0
- data/app/views/effective/work_experience_summaries/start.html.haml +16 -0
- data/app/views/effective/work_experience_summaries/submit.html.haml +10 -0
- data/app/views/effective/work_experience_summaries/submitted.html.haml +19 -0
- data/config/effective_work_experience.rb +34 -0
- data/config/locales/effective_work_experience.en.yml +94 -0
- data/config/routes.rb +28 -0
- data/db/migrate/101_create_effective_work_experience.rb +120 -0
- data/db/seeds.rb +40 -0
- data/lib/effective_work_experience/engine.rb +19 -0
- data/lib/effective_work_experience/version.rb +3 -0
- data/lib/effective_work_experience.rb +34 -0
- data/lib/generators/effective_work_experience/install_generator.rb +24 -0
- data/lib/generators/templates/effective_work_experience_mailer_preview.rb +4 -0
- data/lib/tasks/effective_work_experience_tasks.rake +8 -0
- metadata +325 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
en:
|
|
2
|
+
effective_work_experience:
|
|
3
|
+
name: 'Work Experience'
|
|
4
|
+
|
|
5
|
+
activerecord:
|
|
6
|
+
models:
|
|
7
|
+
# These ones might be app level
|
|
8
|
+
app/work_experience_summary: 'Work Experience Summary'
|
|
9
|
+
|
|
10
|
+
# These ones should stay effective
|
|
11
|
+
effective/work_experience_category: 'Work Experience Category'
|
|
12
|
+
effective/work_experience_subcategory: 'Work Experience Subcategory'
|
|
13
|
+
effective/work_experience_record: 'Work Experience Record'
|
|
14
|
+
effective/work_experience_entry: 'Work Experience Entry'
|
|
15
|
+
effective/work_experience_project: 'Work Experience Project'
|
|
16
|
+
effective/work_experience_summary: 'Work Experience Summary'
|
|
17
|
+
effective/work_experience_outside_mentor: 'Outside Mentor'
|
|
18
|
+
|
|
19
|
+
attributes:
|
|
20
|
+
effective/work_experience_category:
|
|
21
|
+
title: 'Title'
|
|
22
|
+
minimum_hours: 'Minimum Hours'
|
|
23
|
+
position: 'Position'
|
|
24
|
+
|
|
25
|
+
effective/work_experience_subcategory:
|
|
26
|
+
title: 'Title'
|
|
27
|
+
minimum_hours: 'Minimum Hours'
|
|
28
|
+
position: 'Position'
|
|
29
|
+
work_experience_category: 'Category'
|
|
30
|
+
body: 'Description'
|
|
31
|
+
|
|
32
|
+
effective/work_experience_record:
|
|
33
|
+
month: 'Month'
|
|
34
|
+
total_hours: 'Hours'
|
|
35
|
+
backdated: 'Backdated'
|
|
36
|
+
submitted_at: 'Submitted'
|
|
37
|
+
reviewed_at: 'Reviewed'
|
|
38
|
+
|
|
39
|
+
effective/work_experience_entry:
|
|
40
|
+
work_experience_subcategory: 'Subcategory'
|
|
41
|
+
week_1: 'Week 1'
|
|
42
|
+
week_2: 'Week 2'
|
|
43
|
+
week_3: 'Week 3'
|
|
44
|
+
week_4: 'Week 4'
|
|
45
|
+
week_5: 'Week 5'
|
|
46
|
+
|
|
47
|
+
effective/work_experience_project:
|
|
48
|
+
name: 'Name'
|
|
49
|
+
description: 'Description'
|
|
50
|
+
start_on: 'Start Date'
|
|
51
|
+
end_on: 'End Date'
|
|
52
|
+
|
|
53
|
+
effective/work_experience_summary:
|
|
54
|
+
user: 'Intern'
|
|
55
|
+
mentor: 'Mentor'
|
|
56
|
+
supervisor: 'Supervisor'
|
|
57
|
+
start_on: 'Start Date'
|
|
58
|
+
end_on: 'End Date'
|
|
59
|
+
total_hours: 'Hours this period'
|
|
60
|
+
total_hours_to_date: 'Total hours to date'
|
|
61
|
+
recommendation: 'Recommendation'
|
|
62
|
+
comments: 'Reviewer Comments'
|
|
63
|
+
submitted_at: 'Submitted'
|
|
64
|
+
reviewed_at: 'Reviewed'
|
|
65
|
+
approve_work_experience_summary: 'Approve Work Experience Summary'
|
|
66
|
+
|
|
67
|
+
effective/work_experience_outside_mentor:
|
|
68
|
+
name: 'Name'
|
|
69
|
+
email: 'Email'
|
|
70
|
+
phone: 'Phone'
|
|
71
|
+
regulated_profession: 'Regulated Profession'
|
|
72
|
+
admin_notes: 'Admin Notes'
|
|
73
|
+
|
|
74
|
+
# The work experience report is an ActiveModel, not an ActiveRecord
|
|
75
|
+
activemodel:
|
|
76
|
+
models:
|
|
77
|
+
effective/work_experience_report: 'Work Experience Report'
|
|
78
|
+
|
|
79
|
+
attributes:
|
|
80
|
+
effective/work_experience_report:
|
|
81
|
+
user: 'Intern'
|
|
82
|
+
|
|
83
|
+
datatables:
|
|
84
|
+
effective_work_experience_summaries_datatable: 'Work Experience Summaries'
|
|
85
|
+
effective_work_experience_summaries_review_datatable: 'Work Experience Summaries to Review'
|
|
86
|
+
effective_work_experience_records_datatable: 'Work Experience Records'
|
|
87
|
+
effective_work_experience_projects_datatable: 'Work Experience Projects'
|
|
88
|
+
effective_work_experience_reports_review_datatable: 'Work Experience Reports'
|
|
89
|
+
admin/effective_work_experience_summaries_datatable: 'Work Experience Summaries'
|
|
90
|
+
admin/effective_work_experience_records_datatable: 'Work Experience Records'
|
|
91
|
+
admin/effective_work_experience_projects_datatable: 'Work Experience Projects'
|
|
92
|
+
admin/effective_work_experience_categories_datatable: 'Work Experience Categories'
|
|
93
|
+
admin/effective_work_experience_subcategories_datatable: 'Work Experience Subcategories'
|
|
94
|
+
admin/effective_work_experience_reports_datatable: 'Work Experience Reports'
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Rails.application.routes.draw do
|
|
4
|
+
mount EffectiveWorkExperience::Engine => '/', as: 'effective_work_experience'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
EffectiveWorkExperience::Engine.routes.draw do
|
|
8
|
+
# Public routes
|
|
9
|
+
scope module: 'effective' do
|
|
10
|
+
resources :work_experience_records
|
|
11
|
+
resources :work_experience_projects
|
|
12
|
+
resources :work_experience_reports, only: [:show]
|
|
13
|
+
|
|
14
|
+
resources :work_experience_summaries, only: [:new, :create, :show, :destroy] do
|
|
15
|
+
resources :build, controller: :work_experience_summaries, only: [:show, :update]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
namespace :admin do
|
|
20
|
+
resources :work_experience_categories, only: [:index, :show, :edit, :update]
|
|
21
|
+
resources :work_experience_subcategories, except: [:show]
|
|
22
|
+
resources :work_experience_projects
|
|
23
|
+
resources :work_experience_records
|
|
24
|
+
resources :work_experience_reports, only: [:index, :show]
|
|
25
|
+
resources :work_experience_summaries, only: [:index, :show, :edit, :update, :destroy]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
class CreateEffectiveWorkExperience < ActiveRecord::Migration[6.0]
|
|
2
|
+
def change
|
|
3
|
+
create_table :work_experience_categories do |t|
|
|
4
|
+
t.string :title
|
|
5
|
+
t.integer :minimum_hours
|
|
6
|
+
t.integer :position
|
|
7
|
+
|
|
8
|
+
t.timestamps
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
create_table :work_experience_subcategories do |t|
|
|
12
|
+
t.integer :work_experience_category_id
|
|
13
|
+
|
|
14
|
+
t.string :title
|
|
15
|
+
t.integer :minimum_hours
|
|
16
|
+
t.integer :position
|
|
17
|
+
|
|
18
|
+
t.timestamps
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
create_table :work_experience_outside_mentors do |t|
|
|
22
|
+
t.integer :user_id
|
|
23
|
+
t.string :user_type
|
|
24
|
+
|
|
25
|
+
t.string :name
|
|
26
|
+
t.string :email
|
|
27
|
+
t.string :phone
|
|
28
|
+
t.string :regulated_profession
|
|
29
|
+
t.text :admin_notes
|
|
30
|
+
|
|
31
|
+
t.timestamps
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
create_table :work_experience_records do |t|
|
|
35
|
+
t.integer :user_id
|
|
36
|
+
t.string :user_type
|
|
37
|
+
|
|
38
|
+
t.date :month
|
|
39
|
+
t.decimal :total_hours, precision: 10, scale: 2
|
|
40
|
+
|
|
41
|
+
# There can only be one backdated work experience record
|
|
42
|
+
t.boolean :backdated, default: false
|
|
43
|
+
|
|
44
|
+
t.string :status
|
|
45
|
+
t.text :status_steps
|
|
46
|
+
|
|
47
|
+
t.datetime :submitted_at
|
|
48
|
+
t.datetime :reviewed_at
|
|
49
|
+
|
|
50
|
+
t.timestamps
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
create_table :work_experience_entries do |t|
|
|
54
|
+
t.integer :user_id
|
|
55
|
+
t.string :user_type
|
|
56
|
+
|
|
57
|
+
t.integer :work_experience_record_id
|
|
58
|
+
t.integer :work_experience_subcategory_id
|
|
59
|
+
|
|
60
|
+
t.decimal :week_1, precision: 10, scale: 2
|
|
61
|
+
t.decimal :week_2, precision: 10, scale: 2
|
|
62
|
+
t.decimal :week_3, precision: 10, scale: 2
|
|
63
|
+
t.decimal :week_4, precision: 10, scale: 2
|
|
64
|
+
t.decimal :week_5, precision: 10, scale: 2
|
|
65
|
+
|
|
66
|
+
t.timestamps
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
create_table :work_experience_projects do |t|
|
|
70
|
+
t.integer :user_id
|
|
71
|
+
t.string :user_type
|
|
72
|
+
|
|
73
|
+
t.string :name
|
|
74
|
+
t.text :description
|
|
75
|
+
|
|
76
|
+
t.date :start_on
|
|
77
|
+
t.date :end_on
|
|
78
|
+
|
|
79
|
+
t.timestamps
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
create_table :work_experience_summaries do |t|
|
|
83
|
+
t.integer :user_id
|
|
84
|
+
t.string :user_type
|
|
85
|
+
|
|
86
|
+
t.integer :mentor_id
|
|
87
|
+
t.string :mentor_type
|
|
88
|
+
|
|
89
|
+
t.integer :supervisor_id
|
|
90
|
+
t.string :supervisor_type
|
|
91
|
+
|
|
92
|
+
t.string :status
|
|
93
|
+
t.text :status_steps
|
|
94
|
+
|
|
95
|
+
t.text :wizard_steps
|
|
96
|
+
|
|
97
|
+
t.date :start_on
|
|
98
|
+
t.date :end_on
|
|
99
|
+
|
|
100
|
+
t.decimal :total_hours, precision: 10, scale: 2
|
|
101
|
+
|
|
102
|
+
t.string :recommendation
|
|
103
|
+
t.text :comments
|
|
104
|
+
|
|
105
|
+
t.datetime :submitted_at
|
|
106
|
+
t.datetime :reviewed_at
|
|
107
|
+
|
|
108
|
+
t.string :token
|
|
109
|
+
|
|
110
|
+
t.timestamps
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
add_index :work_experience_outside_mentors, [:user_id, :user_type], unique: true
|
|
114
|
+
add_index :work_experience_records, [:user_id, :user_type]
|
|
115
|
+
add_index :work_experience_entries, [:work_experience_record_id]
|
|
116
|
+
add_index :work_experience_projects, [:user_id, :user_type]
|
|
117
|
+
add_index :work_experience_summaries, [:user_id, :user_type]
|
|
118
|
+
add_index :work_experience_summaries, [:mentor_id, :mentor_type]
|
|
119
|
+
end
|
|
120
|
+
end
|
data/db/seeds.rb
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
puts "Running effective_work_experience seeds"
|
|
2
|
+
|
|
3
|
+
# An example set of work experience categories and subcategories.
|
|
4
|
+
# Each application will define their own, from the admin screens or their own seeds.
|
|
5
|
+
|
|
6
|
+
categories = [
|
|
7
|
+
{ title: 'Design Development', minimum_hours: 500, position: 1 },
|
|
8
|
+
{ title: 'Contract Documents', minimum_hours: 1275, position: 2 },
|
|
9
|
+
{ title: 'Office Practice', minimum_hours: 155, position: 3 },
|
|
10
|
+
{ title: 'Other', minimum_hours: nil, position: 4 }
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
categories.each do |attributes|
|
|
14
|
+
work_experience_category = Effective::WorkExperienceCategory.where(title: attributes[:title]).first_or_initialize
|
|
15
|
+
work_experience_category.update!(attributes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
subcategories = [
|
|
19
|
+
{ category: 'Design Development', position: 1, minimum_hours: 200, title: 'Conceptual Designs' },
|
|
20
|
+
{ category: 'Design Development', position: 2, minimum_hours: 300, title: 'Other Design Development' },
|
|
21
|
+
{ category: 'Contract Documents', position: 3, minimum_hours: 150, title: 'Grading and Drainage Plans' },
|
|
22
|
+
{ category: 'Contract Documents', position: 4, minimum_hours: 1125, title: 'Other Contract Documents' },
|
|
23
|
+
{ category: 'Office Practice', position: 5, minimum_hours: 155, title: 'Meetings' },
|
|
24
|
+
{ category: 'Other', position: 6, minimum_hours: nil, title: 'Other' }
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
subcategories.each do |attributes|
|
|
28
|
+
work_experience_category = Effective::WorkExperienceCategory.where(title: attributes[:category]).first!
|
|
29
|
+
|
|
30
|
+
work_experience_subcategory = Effective::WorkExperienceSubcategory.where(position: attributes[:position]).first_or_initialize
|
|
31
|
+
|
|
32
|
+
work_experience_subcategory.update!(
|
|
33
|
+
work_experience_category: work_experience_category,
|
|
34
|
+
position: attributes[:position],
|
|
35
|
+
minimum_hours: attributes[:minimum_hours],
|
|
36
|
+
title: attributes[:title]
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
puts "Created #{Effective::WorkExperienceCategory.count} work experience categories and #{Effective::WorkExperienceSubcategory.count} subcategories"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module EffectiveWorkExperience
|
|
2
|
+
class Engine < ::Rails::Engine
|
|
3
|
+
engine_name 'effective_work_experience'
|
|
4
|
+
|
|
5
|
+
# Set up our default configuration options.
|
|
6
|
+
initializer 'effective_work_experience.defaults', before: :load_config_initializers do |app|
|
|
7
|
+
eval File.read("#{config.root}/config/effective_work_experience.rb")
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Include the work experience concerns and allow any ActiveRecord object to call them
|
|
11
|
+
initializer 'effective_work_experience.active_record' do |app|
|
|
12
|
+
app.config.to_prepare do
|
|
13
|
+
ActiveRecord::Base.extend(EffectiveWorkExperienceSummary::Base)
|
|
14
|
+
ActiveRecord::Base.extend(EffectiveWorkExperienceUser::Base)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'effective_resources'
|
|
2
|
+
require 'effective_datatables'
|
|
3
|
+
require 'effective_work_experience/engine'
|
|
4
|
+
require 'effective_work_experience/version'
|
|
5
|
+
|
|
6
|
+
module EffectiveWorkExperience
|
|
7
|
+
|
|
8
|
+
def self.config_keys
|
|
9
|
+
[
|
|
10
|
+
:work_experience_categories_table_name, :work_experience_subcategories_table_name,
|
|
11
|
+
:work_experience_records_table_name, :work_experience_entries_table_name,
|
|
12
|
+
:work_experience_projects_table_name, :work_experience_summaries_table_name,
|
|
13
|
+
:work_experience_outside_mentors_table_name,
|
|
14
|
+
|
|
15
|
+
:work_experience_summary_class_name,
|
|
16
|
+
|
|
17
|
+
:layout, :recommendations, :summary_months,
|
|
18
|
+
:mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :mailer_subject,
|
|
19
|
+
:use_effective_email_templates
|
|
20
|
+
]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
include EffectiveGem
|
|
24
|
+
|
|
25
|
+
# The only swappable class. Mark yours with effective_work_experience_summary
|
|
26
|
+
def self.WorkExperienceSummary
|
|
27
|
+
work_experience_summary_class_name&.constantize || Effective::WorkExperienceSummary
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.mailer_class
|
|
31
|
+
mailer&.constantize || Effective::WorkExperienceMailer
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module EffectiveWorkExperience
|
|
2
|
+
module Generators
|
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
|
4
|
+
include Rails::Generators::Migration
|
|
5
|
+
|
|
6
|
+
desc 'Creates an EffectiveWorkExperience initializer in your application.'
|
|
7
|
+
|
|
8
|
+
source_root File.expand_path('../../templates', __FILE__)
|
|
9
|
+
|
|
10
|
+
def self.next_migration_number(dirname)
|
|
11
|
+
ActiveRecord::Migration.next_migration_number(current_migration_number(dirname) + 1)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def copy_initializer
|
|
15
|
+
template ('../' * 3) + 'config/effective_work_experience.rb', 'config/initializers/effective_work_experience.rb'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create_migration_file
|
|
19
|
+
migration_template ('../' * 3) + 'db/migrate/101_create_effective_work_experience.rb', 'db/migrate/create_effective_work_experience.rb'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|