effective_cpd 0.0.1 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +122 -10
  3. data/app/assets/javascripts/effective_cpd/activities.js +6 -0
  4. data/app/controllers/admin/cpd_audit_level_questions_controller.rb +13 -0
  5. data/app/controllers/admin/cpd_audit_levels_controller.rb +13 -0
  6. data/app/controllers/admin/cpd_audit_reviews_controller.rb +13 -0
  7. data/app/controllers/admin/cpd_audits_controller.rb +41 -0
  8. data/app/controllers/admin/cpd_special_rules_controller.rb +13 -0
  9. data/app/controllers/effective/cpd_audit_reviews_controller.rb +60 -0
  10. data/app/controllers/effective/cpd_audits_controller.rb +55 -0
  11. data/app/controllers/effective/cpd_cycles_controller.rb +1 -0
  12. data/app/controllers/effective/cpd_statements_controller.rb +1 -3
  13. data/app/datatables/admin/effective_cpd_audit_level_questions_datatable.rb +30 -0
  14. data/app/datatables/admin/effective_cpd_audit_levels_datatable.rb +34 -0
  15. data/app/datatables/admin/effective_cpd_audit_reviews_datatable.rb +29 -0
  16. data/app/datatables/admin/effective_cpd_audits_datatable.rb +67 -0
  17. data/app/datatables/admin/effective_cpd_special_rules_datatable.rb +23 -0
  18. data/app/datatables/admin/effective_cpd_statements_datatable.rb +3 -3
  19. data/app/datatables/effective_cpd_available_audit_reviews_datatable.rb +37 -0
  20. data/app/datatables/effective_cpd_available_audits_datatable.rb +30 -0
  21. data/app/datatables/{effective_cpd_datatable.rb → effective_cpd_available_cycles_datatable.rb} +3 -4
  22. data/app/datatables/effective_cpd_completed_audit_reviews_datatable.rb +32 -0
  23. data/app/datatables/effective_cpd_completed_audits_datatable.rb +24 -0
  24. data/app/datatables/effective_cpd_completed_statements_datatable.rb +28 -0
  25. data/app/helpers/effective_cpd_audits_helper.rb +48 -0
  26. data/app/helpers/effective_cpd_helper.rb +10 -0
  27. data/app/mailers/effective/cpd_mailer.rb +155 -3
  28. data/app/models/concerns/effective_cpd_user.rb +29 -0
  29. data/app/models/effective/cpd_activity.rb +16 -3
  30. data/app/models/effective/cpd_audit.rb +380 -0
  31. data/app/models/effective/cpd_audit_level.rb +87 -0
  32. data/app/models/effective/cpd_audit_level_question.rb +91 -0
  33. data/app/models/effective/cpd_audit_level_question_option.rb +34 -0
  34. data/app/models/effective/cpd_audit_level_section.rb +50 -0
  35. data/app/models/effective/cpd_audit_response.rb +86 -0
  36. data/app/models/effective/cpd_audit_response_option.rb +6 -0
  37. data/app/models/effective/cpd_audit_review.rb +222 -0
  38. data/app/models/effective/cpd_audit_review_item.rb +34 -0
  39. data/app/models/effective/cpd_category.rb +12 -3
  40. data/app/models/effective/cpd_cycle.rb +18 -2
  41. data/app/models/effective/cpd_rule.rb +23 -6
  42. data/app/models/effective/cpd_scorer.rb +23 -1
  43. data/app/models/effective/cpd_special_rule.rb +54 -0
  44. data/app/models/effective/cpd_special_rule_mate.rb +6 -0
  45. data/app/models/effective/cpd_statement.rb +25 -11
  46. data/app/views/admin/cpd_activities/_form.html.haml +1 -1
  47. data/app/views/admin/cpd_audit_level_questions/_form.html.haml +100 -0
  48. data/app/views/admin/cpd_audit_levels/_form.html.haml +24 -0
  49. data/app/views/admin/cpd_audit_levels/_form_content_audit.html.haml +15 -0
  50. data/app/views/admin/cpd_audit_levels/_form_content_audit_review.html.haml +15 -0
  51. data/app/views/admin/cpd_audit_levels/_form_cpd_audit_level.html.haml +52 -0
  52. data/app/views/admin/cpd_audit_levels/_form_cpd_audit_level_section.html.haml +10 -0
  53. data/app/views/admin/cpd_audit_reviews/_cpd_audit_review.html.haml +1 -0
  54. data/app/views/admin/cpd_audit_reviews/_form.html.haml +13 -0
  55. data/app/views/admin/cpd_audits/_audit_reviewer_fields.html.haml +2 -0
  56. data/app/views/admin/cpd_audits/_auditee_fields.html.haml +2 -0
  57. data/app/views/admin/cpd_audits/_form.html.haml +46 -0
  58. data/app/views/admin/cpd_audits/_form_conflict.html.haml +24 -0
  59. data/app/views/admin/cpd_audits/_form_determination.html.haml +10 -0
  60. data/app/views/admin/cpd_audits/_form_exemption.html.haml +24 -0
  61. data/app/views/admin/cpd_audits/_form_extension.html.haml +24 -0
  62. data/app/views/admin/cpd_audits/_form_new.html.haml +28 -0
  63. data/app/views/admin/cpd_audits/_status.html.haml +121 -0
  64. data/app/views/admin/cpd_categories/_form.html.haml +1 -1
  65. data/app/views/admin/cpd_cycles/_form.html.haml +6 -3
  66. data/app/views/admin/cpd_cycles/_form_content.html.haml +8 -0
  67. data/app/views/admin/cpd_cycles/_form_cpd_cycle.html.haml +3 -0
  68. data/app/views/admin/cpd_cycles/_form_cpd_rules.html.haml +12 -7
  69. data/app/views/admin/cpd_cycles/_form_cpd_special_rules.html.haml +4 -0
  70. data/app/views/admin/cpd_special_rules/_form.html.haml +18 -0
  71. data/app/views/admin/cpd_statements/_cpd_statement.html.haml +7 -0
  72. data/app/views/effective/cpd_audit_level_questions/_cpd_audit_level_question.html.haml +5 -0
  73. data/app/views/effective/cpd_audit_responses/_cpd_audit_response.html.haml +4 -0
  74. data/app/views/effective/cpd_audit_responses/_fields.html.haml +13 -0
  75. data/app/views/effective/cpd_audit_responses/fields/_choose_one.html.haml +1 -0
  76. data/app/views/effective/cpd_audit_responses/fields/_date.html.haml +2 -0
  77. data/app/views/effective/cpd_audit_responses/fields/_email.html.haml +2 -0
  78. data/app/views/effective/cpd_audit_responses/fields/_long_answer.html.haml +1 -0
  79. data/app/views/effective/cpd_audit_responses/fields/_number.html.haml +2 -0
  80. data/app/views/effective/cpd_audit_responses/fields/_select_all_that_apply.html.haml +1 -0
  81. data/app/views/effective/cpd_audit_responses/fields/_select_up_to_1.html.haml +1 -0
  82. data/app/views/effective/cpd_audit_responses/fields/_select_up_to_2.html.haml +1 -0
  83. data/app/views/effective/cpd_audit_responses/fields/_select_up_to_3.html.haml +1 -0
  84. data/app/views/effective/cpd_audit_responses/fields/_select_up_to_4.html.haml +1 -0
  85. data/app/views/effective/cpd_audit_responses/fields/_select_up_to_5.html.haml +1 -0
  86. data/app/views/effective/cpd_audit_responses/fields/_short_answer.html.haml +1 -0
  87. data/app/views/effective/cpd_audit_responses/fields/_upload_file.html.haml +1 -0
  88. data/app/views/effective/cpd_audit_responses/responses/_choose_one.html.haml +1 -0
  89. data/app/views/effective/cpd_audit_responses/responses/_date.html.haml +1 -0
  90. data/app/views/effective/cpd_audit_responses/responses/_email.html.haml +1 -0
  91. data/app/views/effective/cpd_audit_responses/responses/_long_answer.html.haml +1 -0
  92. data/app/views/effective/cpd_audit_responses/responses/_number.html.haml +1 -0
  93. data/app/views/effective/cpd_audit_responses/responses/_select_all_that_apply.html.haml +5 -0
  94. data/app/views/effective/cpd_audit_responses/responses/_select_up_to_1.html.haml +1 -0
  95. data/app/views/effective/cpd_audit_responses/responses/_select_up_to_2.html.haml +5 -0
  96. data/app/views/effective/cpd_audit_responses/responses/_select_up_to_3.html.haml +5 -0
  97. data/app/views/effective/cpd_audit_responses/responses/_select_up_to_4.html.haml +5 -0
  98. data/app/views/effective/cpd_audit_responses/responses/_select_up_to_5.html.haml +5 -0
  99. data/app/views/effective/cpd_audit_responses/responses/_short_answer.html.haml +1 -0
  100. data/app/views/effective/cpd_audit_responses/responses/_upload_file.html.haml +4 -0
  101. data/app/views/effective/cpd_audit_review_items/_cpd_audit_review_item.html.haml +6 -0
  102. data/app/views/effective/cpd_audit_review_items/_fields.html.haml +11 -0
  103. data/app/views/effective/cpd_audit_reviews/_conflict.html.haml +15 -0
  104. data/app/views/effective/cpd_audit_reviews/_cpd_audit_level_section.html.haml +23 -0
  105. data/app/views/effective/cpd_audit_reviews/_cpd_audit_review.html.haml +17 -0
  106. data/app/views/effective/cpd_audit_reviews/_cpd_statement.html.haml +15 -0
  107. data/app/views/effective/cpd_audit_reviews/_layout.html.haml +24 -0
  108. data/app/views/effective/cpd_audit_reviews/_recommendation.html.haml +9 -0
  109. data/app/views/effective/cpd_audit_reviews/_summary.html.haml +47 -0
  110. data/app/views/effective/cpd_audit_reviews/complete.html.haml +20 -0
  111. data/app/views/effective/cpd_audit_reviews/conflict.html.haml +21 -0
  112. data/app/views/effective/cpd_audit_reviews/cpd_audit_level_section.html.haml +43 -0
  113. data/app/views/effective/cpd_audit_reviews/cpd_statement.html.haml +35 -0
  114. data/app/views/effective/cpd_audit_reviews/information.html.haml +5 -0
  115. data/app/views/effective/cpd_audit_reviews/instructions.html.haml +10 -0
  116. data/app/views/effective/cpd_audit_reviews/questionnaire.html.haml +8 -0
  117. data/app/views/effective/cpd_audit_reviews/recommendation.html.haml +21 -0
  118. data/app/views/effective/cpd_audit_reviews/start.html.haml +10 -0
  119. data/app/views/effective/cpd_audit_reviews/statements.html.haml +29 -0
  120. data/app/views/effective/cpd_audit_reviews/submit.html.haml +14 -0
  121. data/app/views/effective/cpd_audit_reviews/waiting.html.haml +9 -0
  122. data/app/views/effective/cpd_audits/_conflict.html.haml +15 -0
  123. data/app/views/effective/cpd_audits/_cpd_audit.html.haml +12 -0
  124. data/app/views/effective/cpd_audits/_cpd_audit_level_section.html.haml +14 -0
  125. data/app/views/effective/cpd_audits/_exemption.html.haml +26 -0
  126. data/app/views/effective/cpd_audits/_extension.html.haml +30 -0
  127. data/app/views/effective/cpd_audits/_files.html.haml +12 -0
  128. data/app/views/effective/cpd_audits/_layout.html.haml +33 -0
  129. data/app/views/effective/cpd_audits/_summary.html.haml +54 -0
  130. data/app/views/effective/cpd_audits/_waiting.html.haml +6 -0
  131. data/app/views/effective/cpd_audits/complete.html.haml +24 -0
  132. data/app/views/effective/cpd_audits/conflict.html.haml +22 -0
  133. data/app/views/effective/cpd_audits/cpd_audit_level_section.html.haml +20 -0
  134. data/app/views/effective/cpd_audits/exemption.html.haml +19 -0
  135. data/app/views/effective/cpd_audits/extension.html.haml +21 -0
  136. data/app/views/effective/cpd_audits/files.html.haml +7 -0
  137. data/app/views/effective/cpd_audits/information.html.haml +5 -0
  138. data/app/views/effective/cpd_audits/instructions.html.haml +5 -0
  139. data/app/views/effective/cpd_audits/questionnaire.html.haml +5 -0
  140. data/app/views/effective/cpd_audits/start.html.haml +11 -0
  141. data/app/views/effective/cpd_audits/submit.html.haml +15 -0
  142. data/app/views/effective/cpd_audits/waiting.html.haml +24 -0
  143. data/app/views/effective/cpd_mailer/README.md +1 -0
  144. data/app/views/effective/cpd_mailer/cpd_audit_closed.liquid +15 -0
  145. data/app/views/effective/cpd_mailer/cpd_audit_conflict_resolved.liquid +15 -0
  146. data/app/views/effective/cpd_mailer/cpd_audit_conflicted.liquid +13 -0
  147. data/app/views/effective/cpd_mailer/cpd_audit_exemption_denied.liquid +13 -0
  148. data/app/views/effective/cpd_mailer/cpd_audit_exemption_granted.liquid +13 -0
  149. data/app/views/effective/cpd_mailer/cpd_audit_exemption_request.liquid +13 -0
  150. data/app/views/effective/cpd_mailer/cpd_audit_extension_denied.liquid +13 -0
  151. data/app/views/effective/cpd_mailer/cpd_audit_extension_granted.liquid +13 -0
  152. data/app/views/effective/cpd_mailer/cpd_audit_extension_request.liquid +13 -0
  153. data/app/views/effective/cpd_mailer/cpd_audit_opened.liquid +13 -0
  154. data/app/views/effective/cpd_mailer/cpd_audit_review_opened.liquid +15 -0
  155. data/app/views/effective/cpd_mailer/cpd_audit_review_ready.liquid +13 -0
  156. data/app/views/effective/cpd_mailer/cpd_audit_review_submitted.liquid +11 -0
  157. data/app/views/effective/cpd_mailer/cpd_audit_reviewed.liquid +13 -0
  158. data/app/views/effective/cpd_mailer/cpd_audit_submitted.liquid +13 -0
  159. data/app/views/effective/cpd_statement_activities/_cpd_statement_activity.html.haml +65 -0
  160. data/app/views/effective/cpd_statement_activities/_form.html.haml +10 -10
  161. data/app/views/effective/cpd_statements/_activities.html.haml +3 -64
  162. data/app/views/effective/cpd_statements/_activities_edit.html.haml +2 -0
  163. data/app/views/effective/cpd_statements/_activities_new.html.haml +3 -0
  164. data/app/views/effective/cpd_statements/_activities_table.html.haml +64 -0
  165. data/app/views/effective/cpd_statements/_agreements.html.haml +19 -5
  166. data/app/views/effective/cpd_statements/_cpd_statement.html.haml +6 -3
  167. data/app/views/effective/cpd_statements/_layout.html.haml +3 -4
  168. data/app/views/effective/cpd_statements/_summary.html.haml +26 -31
  169. data/app/views/effective/cpd_statements/activities.html.haml +1 -1
  170. data/app/views/effective/cpd_statements/agreements.html.haml +7 -1
  171. data/app/views/effective/cpd_statements/submit.html.haml +2 -3
  172. data/config/effective_cpd.rb +49 -10
  173. data/config/routes.rb +19 -1
  174. data/db/migrate/01_create_effective_cpd.rb.erb +175 -1
  175. data/db/seeds.rb +16 -13
  176. data/lib/effective_cpd.rb +42 -3
  177. data/lib/effective_cpd/engine.rb +7 -0
  178. data/lib/effective_cpd/version.rb +1 -1
  179. data/lib/generators/effective_cpd/install_generator.rb +18 -3
  180. metadata +175 -9
  181. data/app/datatables/effective_cpd_statements_datatable.rb +0 -23
  182. data/app/views/admin/cpd_statements/_form.html.haml +0 -6
data/config/routes.rb CHANGED
@@ -4,16 +4,27 @@ end
4
4
 
5
5
  EffectiveCpd::Engine.routes.draw do
6
6
  scope module: 'effective' do
7
+ # Statements wizard
7
8
  resources :cpd_cycles, path: "cpd_#{EffectiveCpd.cycle_label.pluralize.parameterize.underscore}", only: [:show] do
8
9
  resources :cpd_statements, path: :statements, only: [:new, :show] do
9
10
  resources :build, controller: :cpd_statements, only: [:show, :update]
10
11
  end
11
12
  end
12
13
 
14
+ # CRUD StatementActivities
13
15
  resources :cpd_statements, only: [] do
14
16
  resources :cpd_statement_activities, except: [:index, :show]
15
17
  end
16
18
 
19
+ # Audits Auditee wizard
20
+ resources :cpd_audits, only: [:new, :show] do
21
+ resources :build, controller: :cpd_audits, only: [:show, :update]
22
+ end
23
+
24
+ # Audits Auditor / Audit Reviewer wizard
25
+ resources :cpd_audit_reviews, only: [:new, :show] do
26
+ resources :build, controller: :cpd_audit_reviews, only: [:show, :update]
27
+ end
17
28
  end
18
29
 
19
30
  namespace :admin do
@@ -21,8 +32,15 @@ EffectiveCpd::Engine.routes.draw do
21
32
  resources :cpd_activities, except: [:show]
22
33
  resources :cpd_cycles, except: [:show]
23
34
  resources :cpd_rules, only: [:index]
35
+ resources :cpd_special_rules, except: [:show]
36
+
37
+ resources :cpd_statements, only: [:index, :show]
38
+
39
+ resources :cpd_audit_levels, except: [:show]
40
+ resources :cpd_audit_level_questions, except: [:show]
24
41
 
25
- resources :cpd_statements, only: [:index, :edit, :update]
42
+ resources :cpd_audits, except: [:show, :destroy]
43
+ resources :cpd_audit_reviews
26
44
  end
27
45
 
28
46
  end
@@ -51,6 +51,24 @@ class CreateEffectiveCpd < ActiveRecord::Migration[6.0]
51
51
  t.datetime :created_at
52
52
  end
53
53
 
54
+ create_table <%= @cpd_special_rules_table_name %> do |t|
55
+ t.references :cpd_cycle
56
+
57
+ t.integer :max_credits_per_cycle
58
+ t.string :category
59
+
60
+ t.datetime :updated_at
61
+ t.datetime :created_at
62
+ end
63
+
64
+ create_table <%= @cpd_special_rule_mates_table_name %> do |t|
65
+ t.references :cpd_rule
66
+ t.references :cpd_special_rule
67
+
68
+ t.datetime :updated_at
69
+ t.datetime :created_at
70
+ end
71
+
54
72
  create_table <%= @cpd_statement_activities_table_name %> do |t|
55
73
  t.references :cpd_statement
56
74
  t.references :cpd_activity
@@ -86,10 +104,166 @@ class CreateEffectiveCpd < ActiveRecord::Migration[6.0]
86
104
  t.boolean :confirm_factual
87
105
  t.boolean :confirm_readonly
88
106
 
89
- t.datetime :completed_at
107
+ t.datetime :submitted_at
108
+
109
+ t.text :wizard_steps
110
+
111
+ t.datetime :updated_at
112
+ t.datetime :created_at
113
+ end
114
+
115
+ create_table <%= @cpd_audit_levels_table_name %> do |t|
116
+ t.string :title
117
+ t.text :determinations
118
+ t.text :recommendations
119
+
120
+ t.boolean :conflict_of_interest
121
+ t.boolean :can_request_exemption
122
+ t.boolean :can_request_extension
123
+
124
+ t.integer :days_to_submit
125
+ t.integer :days_to_review
126
+ t.integer :days_to_declare_conflict
127
+ t.integer :days_to_request_exemption
128
+ t.integer :days_to_request_extension
129
+
130
+ t.datetime :updated_at
131
+ t.datetime :created_at
132
+ end
133
+
134
+ create_table <%= @cpd_audit_level_sections_table_name %> do |t|
135
+ t.references :cpd_audit_level
136
+
137
+ t.string :title
138
+ t.integer :position
139
+
140
+ t.datetime :updated_at
141
+ t.datetime :created_at
142
+ end
143
+
144
+ create_table <%= @cpd_audit_level_questions_table_name %> do |t|
145
+ t.references :cpd_audit_level
146
+ t.references :cpd_audit_level_section
147
+
148
+ t.text :title
149
+ t.string :category
150
+ t.boolean :required, default: true
151
+
152
+ t.integer :position
153
+
154
+ t.datetime :updated_at
155
+ t.datetime :created_at
156
+ end
157
+
158
+ create_table <%= @cpd_audit_level_question_options_table_name %> do |t|
159
+ t.references :cpd_audit_level_question, index: false
160
+
161
+ t.text :title
162
+ t.integer :position
163
+
164
+ t.datetime :updated_at
165
+ t.datetime :created_at
166
+ end
167
+
168
+ create_table <%= @cpd_audits_table_name %> do |t|
169
+ t.references :cpd_audit_level
170
+
171
+ t.integer :user_id
172
+ t.string :user_type
173
+
174
+ t.date :due_date
175
+
176
+ t.date :notification_date
177
+ t.date :extension_date
178
+
179
+ t.string :determination
180
+
181
+ t.boolean :conflict_of_interest
182
+ t.text :conflict_of_interest_reason
183
+
184
+ t.boolean :exemption_request
185
+ t.text :exemption_request_reason
186
+
187
+ t.boolean :extension_request
188
+ t.text :extension_request_reason
189
+ t.date :extension_request_date
190
+
191
+ t.datetime :started_at
192
+ t.datetime :submitted_at
193
+ t.datetime :reviewed_at
194
+ t.datetime :closed_at
195
+
196
+ t.string :status
197
+ t.text :status_steps
198
+
199
+ t.text :wizard_steps
200
+
201
+ t.string :token
202
+
203
+ t.datetime :updated_at
204
+ t.datetime :created_at
205
+ end
206
+
207
+ create_table <%= @cpd_audit_reviews_table_name %> do |t|
208
+ t.references :cpd_audit_level
209
+ t.references :cpd_audit
210
+
211
+ t.integer :user_id
212
+ t.string :user_type
213
+
214
+ t.date :due_date
215
+
216
+ t.text :comments
217
+ t.string :recommendation
218
+
219
+ t.boolean :conflict_of_interest
220
+ t.text :conflict_of_interest_reason
221
+
222
+ t.datetime :submitted_at
223
+
224
+ t.string :status
225
+ t.text :status_steps
90
226
 
91
227
  t.text :wizard_steps
92
228
 
229
+ t.string :token
230
+
231
+ t.datetime :updated_at
232
+ t.datetime :created_at
233
+ end
234
+
235
+ create_table <%= @cpd_audit_review_items_table_name %> do |t|
236
+ t.references :cpd_audit_review
237
+
238
+ t.integer :item_id
239
+ t.string :item_type
240
+
241
+ t.string :recommendation
242
+ t.text :comments
243
+
244
+ t.datetime :updated_at
245
+ t.datetime :created_at
246
+ end
247
+
248
+ create_table <%= @cpd_audit_responses_table_name %> do |t|
249
+ t.references :cpd_audit
250
+ t.references :cpd_audit_level_question
251
+ t.references :cpd_audit_level_section
252
+
253
+ t.date :date
254
+ t.string :email
255
+ t.integer :number
256
+ t.text :long_answer
257
+ t.text :short_answer
258
+
259
+ t.datetime :updated_at
260
+ t.datetime :created_at
261
+ end
262
+
263
+ create_table <%= @cpd_audit_response_options_table_name %> do |t|
264
+ t.references :cpd_audit_response
265
+ t.references :cpd_audit_level_question_option, index: false
266
+
93
267
  t.datetime :updated_at
94
268
  t.datetime :created_at
95
269
  end
data/db/seeds.rb CHANGED
@@ -7,8 +7,10 @@ if Rails.env.test?
7
7
  Effective::CpdCategory.delete_all
8
8
  Effective::CpdActivity.delete_all
9
9
  Effective::CpdRule.delete_all
10
+ Effective::CpdSpecialRule.delete_all
11
+ Effective::CpdSpecialRuleMate.delete_all
10
12
 
11
- ActionText::RichText.where(record_type: ['Effective::CpdCycle', 'Effective::CpdCycle', 'Effective::CpdActivity']).delete_all
13
+ ActionText::RichText.where(record_type: ['Effective::CpdCycle', 'Effective::CpdCycle', 'Effective::CpdActivity', 'Effective::CpdAudit', 'Effective::CpdAuditLevelSection', 'Effective::CpdAuditLevelQuestion']).delete_all
12
14
  end
13
15
 
14
16
  # Build the first CpdCycle
@@ -17,11 +19,12 @@ cycle = Effective::CpdCycle.create!(
17
19
  start_at: now.beginning_of_year,
18
20
  end_at: now.end_of_year,
19
21
  required_score: 100,
20
- all_steps_content: "<div>All Steps Content</div>",
21
- start_content: "<div>Start Content</div>",
22
- activities_content: "<div>Activities Content</div>",
23
- submit_content: "<div>Submit Content</div>",
24
- complete_content: "<div>Complete Content</div>"
22
+ all_steps_content: "All Steps Content",
23
+ start_content: "Start Content",
24
+ activities_content: "Activities Content",
25
+ submit_content: "Submit Content",
26
+ complete_content: "Complete Content",
27
+ sidebar_content: "Sidebar Content"
25
28
  )
26
29
 
27
30
  # Professional Practice
@@ -32,7 +35,7 @@ category = Effective::CpdCategory.create!(
32
35
  Effective::CpdRule.create!(
33
36
  cpd_cycle: cycle,
34
37
  ruleable: category,
35
- credit_description: 'Upto a maximum of 20 claimable points per CPD year. Points cannot be carried forward to future years.',
38
+ category_credit_description: 'Upto a maximum of 20 claimable points per CPD year. Points cannot be carried forward to future years.',
36
39
  max_credits_per_cycle: 20
37
40
  )
38
41
 
@@ -73,7 +76,7 @@ category = Effective::CpdCategory.create!(
73
76
  Effective::CpdRule.create!(
74
77
  cpd_cycle: cycle,
75
78
  ruleable: category,
76
- credit_description: 'Upto a maximum of 20 claimable points per CPD year. Points cannot be carried forward to future years.',
79
+ category_credit_description: 'Upto a maximum of 20 claimable points per CPD year. Points cannot be carried forward to future years.',
77
80
  max_credits_per_cycle: 20
78
81
  )
79
82
 
@@ -143,7 +146,7 @@ category = Effective::CpdCategory.create!(
143
146
  Effective::CpdRule.create!(
144
147
  cpd_cycle: cycle,
145
148
  ruleable: category,
146
- credit_description: 'Upto a maximum of 35 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
149
+ category_credit_description: 'Upto a maximum of 35 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
147
150
  max_credits_per_cycle: 35
148
151
  )
149
152
 
@@ -182,7 +185,7 @@ category = Effective::CpdCategory.create!(
182
185
  Effective::CpdRule.create!(
183
186
  cpd_cycle: cycle,
184
187
  ruleable: category,
185
- credit_description: 'Upto a maximum of 15 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
188
+ category_credit_description: 'Upto a maximum of 15 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
186
189
  max_credits_per_cycle: 15
187
190
  )
188
191
 
@@ -264,7 +267,7 @@ category = Effective::CpdCategory.create!(
264
267
  Effective::CpdRule.create!(
265
268
  cpd_cycle: cycle,
266
269
  ruleable: category,
267
- credit_description: 'Upto a maximum of 15 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
270
+ category_credit_description: 'Upto a maximum of 15 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
268
271
  max_credits_per_cycle: 15
269
272
  )
270
273
 
@@ -318,7 +321,7 @@ category = Effective::CpdCategory.create!(
318
321
  Effective::CpdRule.create!(
319
322
  cpd_cycle: cycle,
320
323
  ruleable: category,
321
- credit_description: 'Upto a maximum of 30 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
324
+ category_credit_description: 'Upto a maximum of 30 claimable points per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
322
325
  max_credits_per_cycle: 30
323
326
  )
324
327
 
@@ -420,7 +423,7 @@ category = Effective::CpdCategory.create!(
420
423
  Effective::CpdRule.create!(
421
424
  cpd_cycle: cycle,
422
425
  ruleable: category,
423
- credit_description: 'Upto a maximum of 10 points per mentee or position per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
426
+ category_credit_description: 'Upto a maximum of 10 points per mentee or position per CPD year. Points may be carried over upto a maximum of 2 years after the year in which they were earned.',
424
427
  max_credits_per_cycle: nil
425
428
  )
426
429
 
data/lib/effective_cpd.rb CHANGED
@@ -7,12 +7,51 @@ module EffectiveCpd
7
7
 
8
8
  def self.config_keys
9
9
  [
10
- :cpd_cycles_table_name, :cpd_categories_table_name, :cpd_activities_table_name, :cpd_rules_table_name,
11
- :cpd_statement_activities_table_name, :cpd_statements_table_name,
12
- :cycle_label, :credit_label, :layout, :mailer
10
+ :cpd_categories_table_name, :cpd_activities_table_name,
11
+ :cpd_cycles_table_name, :cpd_rules_table_name, :cpd_special_rules_table_name, :cpd_special_rule_mates_table_name,
12
+ :cpd_statements_table_name, :cpd_statement_activities_table_name,
13
+ :cpd_audit_levels_table_name, :cpd_audit_level_sections_table_name,
14
+ :cpd_audit_level_questions_table_name, :cpd_audit_level_question_options_table_name,
15
+ :cpd_audits_table_name, :cpd_audit_responses_table_name, :cpd_audit_response_options_table_name,
16
+ :cpd_audit_reviews_table_name, :cpd_audit_review_items_table_name,
17
+ :cycle_label, :credit_label, :layout, :auditee_user_scope, :audit_reviewer_user_scope,
18
+ :mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :use_effective_email_templates
13
19
  ]
14
20
  end
15
21
 
16
22
  include EffectiveGem
17
23
 
24
+ def self.mailer_class
25
+ return mailer.constantize if mailer.present?
26
+ Effective::CpdMailer
27
+ end
28
+
29
+ def self.parent_mailer_class
30
+ return parent_mailer.constantize if parent_mailer.present?
31
+
32
+ if use_effective_email_templates
33
+ require 'effective_email_templates'
34
+ Effective::EmailTemplatesMailer
35
+ else
36
+ ActionMailer::Base
37
+ end
38
+ end
39
+
40
+ def self.send_email(email, *args)
41
+ raise('expected args to be an Array') unless args.kind_of?(Array)
42
+
43
+ if defined?(Tenant)
44
+ tenant = Tenant.current || raise('expected a current tenant')
45
+ args << { tenant: tenant }
46
+ end
47
+
48
+ deliver_method = EffectiveCpd.deliver_method || EffectiveResources.deliver_method
49
+
50
+ begin
51
+ EffectiveCpd.mailer_class.send(email, *args).send(deliver_method)
52
+ rescue => e
53
+ raise if Rails.env.development? || Rails.env.test?
54
+ end
55
+ end
56
+
18
57
  end
@@ -7,5 +7,12 @@ module EffectiveCpd
7
7
  eval File.read("#{config.root}/config/effective_cpd.rb")
8
8
  end
9
9
 
10
+ # Include acts_as_addressable concern and allow any ActiveRecord object to call it
11
+ initializer 'effective_cpd.active_record' do |app|
12
+ ActiveSupport.on_load :active_record do
13
+ ActiveRecord::Base.extend(EffectiveCpdUser::Base)
14
+ end
15
+ end
16
+
10
17
  end
11
18
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveCpd
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.4'
3
3
  end
@@ -20,13 +20,28 @@ module EffectiveCpd
20
20
  end
21
21
 
22
22
  def create_migration_file
23
- @cpd_cycles_table_name = ':' + EffectiveCpd.cpd_cycles_table_name.to_s
24
23
  @cpd_categories_table_name = ':' + EffectiveCpd.cpd_categories_table_name.to_s
25
24
  @cpd_activities_table_name = ':' + EffectiveCpd.cpd_activities_table_name.to_s
25
+
26
+ @cpd_cycles_table_name = ':' + EffectiveCpd.cpd_cycles_table_name.to_s
26
27
  @cpd_rules_table_name = ':' + EffectiveCpd.cpd_rules_table_name.to_s
28
+ @cpd_special_rules_table_name = ':' + EffectiveCpd.cpd_special_rules_table_name.to_s
29
+ @cpd_special_rule_mates_table_name = ':' + EffectiveCpd.cpd_special_rule_mates_table_name.to_s
30
+
31
+ @cpd_statements_table_name = ':' + EffectiveCpd.cpd_statements_table_name.to_s
32
+ @cpd_statement_activities_table_name = ':' + EffectiveCpd.cpd_statement_activities_table_name.to_s
33
+
34
+ @cpd_audit_levels_table_name = ':' + EffectiveCpd.cpd_audit_levels_table_name.to_s
35
+ @cpd_audit_level_sections_table_name = ':' + EffectiveCpd.cpd_audit_level_sections_table_name.to_s
36
+ @cpd_audit_level_questions_table_name = ':' + EffectiveCpd.cpd_audit_level_questions_table_name.to_s
37
+ @cpd_audit_level_question_options_table_name = ':' + EffectiveCpd.cpd_audit_level_question_options_table_name.to_s
38
+
39
+ @cpd_audits_table_name = ':' + EffectiveCpd.cpd_audits_table_name.to_s
40
+ @cpd_audit_responses_table_name = ':' + EffectiveCpd.cpd_audit_responses_table_name.to_s
41
+ @cpd_audit_response_options_table_name = ':' + EffectiveCpd.cpd_audit_response_options_table_name.to_s
27
42
 
28
- @cpd_statement_activities = ':' + EffectiveCpd.cpd_statement_activities_table_name.to_s
29
- @cpd_statements = ':' + EffectiveCpd.cpd_statements_table_name.to_s
43
+ @cpd_audit_reviews_table_name = ':' + EffectiveCpd.cpd_audit_reviews_table_name.to_s
44
+ @cpd_audit_review_items_table_name = ':' + EffectiveCpd.cpd_audit_review_items_table_name.to_s
30
45
 
31
46
  migration_template ('../' * 3) + 'db/migrate/01_create_effective_cpd.rb.erb', 'db/migrate/create_effective_cpd.rb'
32
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_cpd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.4
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: 2021-04-16 00:00:00.000000000 Z
11
+ date: 2021-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: holidays
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: wicked
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: sqlite3
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +137,7 @@ dependencies:
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
- name: wicked
140
+ name: pry-byebug
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - ">="
@@ -123,7 +151,7 @@ dependencies:
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
- name: pry-byebug
154
+ name: effective_email_templates
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - ">="
@@ -136,7 +164,7 @@ dependencies:
136
164
  - - ">="
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
- description: Continuing professional development rails engine
167
+ description: Continuing professional development and audits rails engine
140
168
  email:
141
169
  - info@codeandeffect.com
142
170
  executables: []
@@ -153,40 +181,178 @@ files:
153
181
  - app/assets/stylesheets/effective_cpd.scss
154
182
  - app/assets/stylesheets/effective_cpd/_activities.scss
155
183
  - app/controllers/admin/cpd_activities_controller.rb
184
+ - app/controllers/admin/cpd_audit_level_questions_controller.rb
185
+ - app/controllers/admin/cpd_audit_levels_controller.rb
186
+ - app/controllers/admin/cpd_audit_reviews_controller.rb
187
+ - app/controllers/admin/cpd_audits_controller.rb
156
188
  - app/controllers/admin/cpd_categories_controller.rb
157
189
  - app/controllers/admin/cpd_cycles_controller.rb
158
190
  - app/controllers/admin/cpd_rules_controller.rb
191
+ - app/controllers/admin/cpd_special_rules_controller.rb
159
192
  - app/controllers/admin/cpd_statements_controller.rb
193
+ - app/controllers/effective/cpd_audit_reviews_controller.rb
194
+ - app/controllers/effective/cpd_audits_controller.rb
160
195
  - app/controllers/effective/cpd_cycles_controller.rb
161
196
  - app/controllers/effective/cpd_statement_activities_controller.rb
162
197
  - app/controllers/effective/cpd_statements_controller.rb
163
198
  - app/datatables/admin/effective_cpd_activities_datatable.rb
199
+ - app/datatables/admin/effective_cpd_audit_level_questions_datatable.rb
200
+ - app/datatables/admin/effective_cpd_audit_levels_datatable.rb
201
+ - app/datatables/admin/effective_cpd_audit_reviews_datatable.rb
202
+ - app/datatables/admin/effective_cpd_audits_datatable.rb
164
203
  - app/datatables/admin/effective_cpd_categories_datatable.rb
165
204
  - app/datatables/admin/effective_cpd_cycles_datatable.rb
166
205
  - app/datatables/admin/effective_cpd_rules_datatable.rb
206
+ - app/datatables/admin/effective_cpd_special_rules_datatable.rb
167
207
  - app/datatables/admin/effective_cpd_statements_datatable.rb
168
- - app/datatables/effective_cpd_datatable.rb
169
- - app/datatables/effective_cpd_statements_datatable.rb
208
+ - app/datatables/effective_cpd_available_audit_reviews_datatable.rb
209
+ - app/datatables/effective_cpd_available_audits_datatable.rb
210
+ - app/datatables/effective_cpd_available_cycles_datatable.rb
211
+ - app/datatables/effective_cpd_completed_audit_reviews_datatable.rb
212
+ - app/datatables/effective_cpd_completed_audits_datatable.rb
213
+ - app/datatables/effective_cpd_completed_statements_datatable.rb
214
+ - app/helpers/effective_cpd_audits_helper.rb
170
215
  - app/helpers/effective_cpd_helper.rb
171
216
  - app/mailers/effective/cpd_mailer.rb
217
+ - app/models/concerns/effective_cpd_user.rb
172
218
  - app/models/effective/cpd_activity.rb
219
+ - app/models/effective/cpd_audit.rb
220
+ - app/models/effective/cpd_audit_level.rb
221
+ - app/models/effective/cpd_audit_level_question.rb
222
+ - app/models/effective/cpd_audit_level_question_option.rb
223
+ - app/models/effective/cpd_audit_level_section.rb
224
+ - app/models/effective/cpd_audit_response.rb
225
+ - app/models/effective/cpd_audit_response_option.rb
226
+ - app/models/effective/cpd_audit_review.rb
227
+ - app/models/effective/cpd_audit_review_item.rb
173
228
  - app/models/effective/cpd_category.rb
174
229
  - app/models/effective/cpd_cycle.rb
175
230
  - app/models/effective/cpd_rule.rb
176
231
  - app/models/effective/cpd_scorer.rb
232
+ - app/models/effective/cpd_special_rule.rb
233
+ - app/models/effective/cpd_special_rule_mate.rb
177
234
  - app/models/effective/cpd_statement.rb
178
235
  - app/models/effective/cpd_statement_activity.rb
179
236
  - app/views/admin/cpd_activities/_form.html.haml
237
+ - app/views/admin/cpd_audit_level_questions/_form.html.haml
238
+ - app/views/admin/cpd_audit_levels/_form.html.haml
239
+ - app/views/admin/cpd_audit_levels/_form_content_audit.html.haml
240
+ - app/views/admin/cpd_audit_levels/_form_content_audit_review.html.haml
241
+ - app/views/admin/cpd_audit_levels/_form_cpd_audit_level.html.haml
242
+ - app/views/admin/cpd_audit_levels/_form_cpd_audit_level_section.html.haml
243
+ - app/views/admin/cpd_audit_reviews/_cpd_audit_review.html.haml
244
+ - app/views/admin/cpd_audit_reviews/_form.html.haml
245
+ - app/views/admin/cpd_audits/_audit_reviewer_fields.html.haml
246
+ - app/views/admin/cpd_audits/_auditee_fields.html.haml
247
+ - app/views/admin/cpd_audits/_form.html.haml
248
+ - app/views/admin/cpd_audits/_form_conflict.html.haml
249
+ - app/views/admin/cpd_audits/_form_determination.html.haml
250
+ - app/views/admin/cpd_audits/_form_exemption.html.haml
251
+ - app/views/admin/cpd_audits/_form_extension.html.haml
252
+ - app/views/admin/cpd_audits/_form_new.html.haml
253
+ - app/views/admin/cpd_audits/_status.html.haml
180
254
  - app/views/admin/cpd_categories/_form.html.haml
181
255
  - app/views/admin/cpd_categories/_form_cpd_category.html.haml
182
256
  - app/views/admin/cpd_cycles/_form.html.haml
183
257
  - app/views/admin/cpd_cycles/_form_content.html.haml
184
258
  - app/views/admin/cpd_cycles/_form_cpd_cycle.html.haml
185
259
  - app/views/admin/cpd_cycles/_form_cpd_rules.html.haml
186
- - app/views/admin/cpd_statements/_form.html.haml
260
+ - app/views/admin/cpd_cycles/_form_cpd_special_rules.html.haml
261
+ - app/views/admin/cpd_special_rules/_form.html.haml
262
+ - app/views/admin/cpd_statements/_cpd_statement.html.haml
263
+ - app/views/effective/cpd_audit_level_questions/_cpd_audit_level_question.html.haml
264
+ - app/views/effective/cpd_audit_responses/_cpd_audit_response.html.haml
265
+ - app/views/effective/cpd_audit_responses/_fields.html.haml
266
+ - app/views/effective/cpd_audit_responses/fields/_choose_one.html.haml
267
+ - app/views/effective/cpd_audit_responses/fields/_date.html.haml
268
+ - app/views/effective/cpd_audit_responses/fields/_email.html.haml
269
+ - app/views/effective/cpd_audit_responses/fields/_long_answer.html.haml
270
+ - app/views/effective/cpd_audit_responses/fields/_number.html.haml
271
+ - app/views/effective/cpd_audit_responses/fields/_select_all_that_apply.html.haml
272
+ - app/views/effective/cpd_audit_responses/fields/_select_up_to_1.html.haml
273
+ - app/views/effective/cpd_audit_responses/fields/_select_up_to_2.html.haml
274
+ - app/views/effective/cpd_audit_responses/fields/_select_up_to_3.html.haml
275
+ - app/views/effective/cpd_audit_responses/fields/_select_up_to_4.html.haml
276
+ - app/views/effective/cpd_audit_responses/fields/_select_up_to_5.html.haml
277
+ - app/views/effective/cpd_audit_responses/fields/_short_answer.html.haml
278
+ - app/views/effective/cpd_audit_responses/fields/_upload_file.html.haml
279
+ - app/views/effective/cpd_audit_responses/responses/_choose_one.html.haml
280
+ - app/views/effective/cpd_audit_responses/responses/_date.html.haml
281
+ - app/views/effective/cpd_audit_responses/responses/_email.html.haml
282
+ - app/views/effective/cpd_audit_responses/responses/_long_answer.html.haml
283
+ - app/views/effective/cpd_audit_responses/responses/_number.html.haml
284
+ - app/views/effective/cpd_audit_responses/responses/_select_all_that_apply.html.haml
285
+ - app/views/effective/cpd_audit_responses/responses/_select_up_to_1.html.haml
286
+ - app/views/effective/cpd_audit_responses/responses/_select_up_to_2.html.haml
287
+ - app/views/effective/cpd_audit_responses/responses/_select_up_to_3.html.haml
288
+ - app/views/effective/cpd_audit_responses/responses/_select_up_to_4.html.haml
289
+ - app/views/effective/cpd_audit_responses/responses/_select_up_to_5.html.haml
290
+ - app/views/effective/cpd_audit_responses/responses/_short_answer.html.haml
291
+ - app/views/effective/cpd_audit_responses/responses/_upload_file.html.haml
292
+ - app/views/effective/cpd_audit_review_items/_cpd_audit_review_item.html.haml
293
+ - app/views/effective/cpd_audit_review_items/_fields.html.haml
294
+ - app/views/effective/cpd_audit_reviews/_conflict.html.haml
295
+ - app/views/effective/cpd_audit_reviews/_cpd_audit_level_section.html.haml
296
+ - app/views/effective/cpd_audit_reviews/_cpd_audit_review.html.haml
297
+ - app/views/effective/cpd_audit_reviews/_cpd_statement.html.haml
298
+ - app/views/effective/cpd_audit_reviews/_layout.html.haml
299
+ - app/views/effective/cpd_audit_reviews/_recommendation.html.haml
300
+ - app/views/effective/cpd_audit_reviews/_summary.html.haml
301
+ - app/views/effective/cpd_audit_reviews/complete.html.haml
302
+ - app/views/effective/cpd_audit_reviews/conflict.html.haml
303
+ - app/views/effective/cpd_audit_reviews/cpd_audit_level_section.html.haml
304
+ - app/views/effective/cpd_audit_reviews/cpd_statement.html.haml
305
+ - app/views/effective/cpd_audit_reviews/information.html.haml
306
+ - app/views/effective/cpd_audit_reviews/instructions.html.haml
307
+ - app/views/effective/cpd_audit_reviews/questionnaire.html.haml
308
+ - app/views/effective/cpd_audit_reviews/recommendation.html.haml
309
+ - app/views/effective/cpd_audit_reviews/start.html.haml
310
+ - app/views/effective/cpd_audit_reviews/statements.html.haml
311
+ - app/views/effective/cpd_audit_reviews/submit.html.haml
312
+ - app/views/effective/cpd_audit_reviews/waiting.html.haml
313
+ - app/views/effective/cpd_audits/_conflict.html.haml
314
+ - app/views/effective/cpd_audits/_cpd_audit.html.haml
315
+ - app/views/effective/cpd_audits/_cpd_audit_level_section.html.haml
316
+ - app/views/effective/cpd_audits/_exemption.html.haml
317
+ - app/views/effective/cpd_audits/_extension.html.haml
318
+ - app/views/effective/cpd_audits/_files.html.haml
319
+ - app/views/effective/cpd_audits/_layout.html.haml
320
+ - app/views/effective/cpd_audits/_summary.html.haml
321
+ - app/views/effective/cpd_audits/_waiting.html.haml
322
+ - app/views/effective/cpd_audits/complete.html.haml
323
+ - app/views/effective/cpd_audits/conflict.html.haml
324
+ - app/views/effective/cpd_audits/cpd_audit_level_section.html.haml
325
+ - app/views/effective/cpd_audits/exemption.html.haml
326
+ - app/views/effective/cpd_audits/extension.html.haml
327
+ - app/views/effective/cpd_audits/files.html.haml
328
+ - app/views/effective/cpd_audits/information.html.haml
329
+ - app/views/effective/cpd_audits/instructions.html.haml
330
+ - app/views/effective/cpd_audits/questionnaire.html.haml
331
+ - app/views/effective/cpd_audits/start.html.haml
332
+ - app/views/effective/cpd_audits/submit.html.haml
333
+ - app/views/effective/cpd_audits/waiting.html.haml
334
+ - app/views/effective/cpd_mailer/README.md
335
+ - app/views/effective/cpd_mailer/cpd_audit_closed.liquid
336
+ - app/views/effective/cpd_mailer/cpd_audit_conflict_resolved.liquid
337
+ - app/views/effective/cpd_mailer/cpd_audit_conflicted.liquid
338
+ - app/views/effective/cpd_mailer/cpd_audit_exemption_denied.liquid
339
+ - app/views/effective/cpd_mailer/cpd_audit_exemption_granted.liquid
340
+ - app/views/effective/cpd_mailer/cpd_audit_exemption_request.liquid
341
+ - app/views/effective/cpd_mailer/cpd_audit_extension_denied.liquid
342
+ - app/views/effective/cpd_mailer/cpd_audit_extension_granted.liquid
343
+ - app/views/effective/cpd_mailer/cpd_audit_extension_request.liquid
344
+ - app/views/effective/cpd_mailer/cpd_audit_opened.liquid
345
+ - app/views/effective/cpd_mailer/cpd_audit_review_opened.liquid
346
+ - app/views/effective/cpd_mailer/cpd_audit_review_ready.liquid
347
+ - app/views/effective/cpd_mailer/cpd_audit_review_submitted.liquid
348
+ - app/views/effective/cpd_mailer/cpd_audit_reviewed.liquid
349
+ - app/views/effective/cpd_mailer/cpd_audit_submitted.liquid
350
+ - app/views/effective/cpd_statement_activities/_cpd_statement_activity.html.haml
187
351
  - app/views/effective/cpd_statement_activities/_form.html.haml
188
352
  - app/views/effective/cpd_statements/_activities.html.haml
353
+ - app/views/effective/cpd_statements/_activities_edit.html.haml
189
354
  - app/views/effective/cpd_statements/_activities_new.html.haml
355
+ - app/views/effective/cpd_statements/_activities_table.html.haml
190
356
  - app/views/effective/cpd_statements/_agreements.html.haml
191
357
  - app/views/effective/cpd_statements/_cpd_statement.html.haml
192
358
  - app/views/effective/cpd_statements/_layout.html.haml
@@ -229,5 +395,5 @@ requirements: []
229
395
  rubygems_version: 3.1.2
230
396
  signing_key:
231
397
  specification_version: 4
232
- summary: Continuing professional development rails engine
398
+ summary: Continuing professional development and audits rails engine
233
399
  test_files: []