effective_cpd 1.6.5 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd0911046fcabd42cad5f51a9d1839bb13da67a67276d78bc4c0a3414a1d0e85
4
- data.tar.gz: 1f16f8296435282c808e2fb1e5e4aeff7e0aa1ba40c252c478ff1dd955a930e6
3
+ metadata.gz: 502981a987e34f6022514dacb5bc5bbcc9f07a3290b607932c97f057a9a73ed0
4
+ data.tar.gz: 47d5f95962bdede3f7590d956c48fc5bded7fd1db9e3f2127400cf049f8f47d7
5
5
  SHA512:
6
- metadata.gz: 3bf52660128e824a470059d1399cc8321038a87d67bd56c101d4f57b959c9ecf58e577e0fb0d9e31abe5f3a5cb5c1c2cf88ebf134043fffd5570eeea67d7f7d9
7
- data.tar.gz: e242876c24636b77819f64835edc02c187776532389be838658999e2cd1136a93f67d24ea7a4e8181d1346f250989647ab58208f13a77c7884f151159d68e12f
6
+ metadata.gz: 8368077022f74fd35ea5d2a33daa93f88315bbf7400f42ff4c9ff93144c361ac6f827740e6a7ef232520b1daae9fe3c00d5622d7779b22da10be26cade9c0577
7
+ data.tar.gz: 1ae3852f5a4cce0e49744e464f1fa912602496b440fcb8f3aaec8173fc768df1e85c85a81c3058ff41c26c044d3c0ada2d844970cc94ebe018e7b62787578f26
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Continuing professional development.
4
4
 
5
- An admin creates a set of categories, activites and rules. User enters number of hours or work done to have a scored statement. Audits.
5
+ An admin creates a set of categories, activities and rules. User enters number of hours or work done to have a scored statement. Audits.
6
6
 
7
7
  Works with action_text for content bodies, and active_storage for file uploads.
8
8
 
@@ -93,7 +93,7 @@ Use the following datatables to display to your user their statements and audits
93
93
  = render_datatable(reviewed, simple: true)
94
94
  ```
95
95
 
96
- On the Admin::Users#edit, you can use the following datatables as well:
96
+ On the `Admin::Users#edit`, you can use the following datatables as well:
97
97
 
98
98
  ```haml
99
99
  %h2 CPD Statements
@@ -138,7 +138,7 @@ Once all these 3 areas have been configured, users can submit statements and aud
138
138
 
139
139
  You can specify the required score in the CPD Cycle.
140
140
 
141
- You can also programatically do it. Add the following to your user class.
141
+ You can also programmatically do it. Add the following to your user class.
142
142
 
143
143
  ```
144
144
  # This is an ActiveRecord concern to add the has_many :cpd_statements
@@ -167,6 +167,22 @@ def cpd_statement_required_score(cpd_statement)
167
167
  end
168
168
  ```
169
169
 
170
+ ## Custom Score Rounding
171
+
172
+ In your `effective_cpd_statement` model you can override the `#round_amount` method to perform
173
+ specific rounding on the score that will be applied to `amount` and `amount2`.
174
+
175
+ Example:
176
+
177
+ ```ruby
178
+ # Rounding to the nearest 0.5
179
+ def round_amount(amount)
180
+ return 0 if amount.blank?
181
+
182
+ (amount * 2.0).round / 2.0
183
+ end
184
+ ```
185
+
170
186
  ## Rake Tasks
171
187
 
172
188
  You can use
@@ -181,7 +197,7 @@ All authorization checks are handled via the effective_resources gem found in th
181
197
 
182
198
  ## Permissions
183
199
 
184
- The permissions you actually want to define are as follows (using CanCan):
200
+ The permissions you actually want to define are as follows (using CanCanCan):
185
201
 
186
202
  ```ruby
187
203
  # Regular signed up user. Guest users not supported.
@@ -216,7 +216,8 @@ module Effective
216
216
  title: @cpd_audit.to_s,
217
217
  level: @cpd_audit.cpd_audit_level.to_s,
218
218
  determination: @cpd_audit.determination.to_s,
219
- missing_info_reason: @cpd_audit.missing_info_reason.to_s
219
+ missing_info_reason: @cpd_audit.missing_info_reason.to_s,
220
+ feedback: @cpd_audit.feedback.to_s,
220
221
  },
221
222
  auditee: {
222
223
  name: @cpd_audit.name,
@@ -228,7 +229,8 @@ module Effective
228
229
  {
229
230
  review: {
230
231
  title: @cpd_audit_review.to_s,
231
- recommendation: @cpd_audit_review.recommendation.to_s
232
+ recommendation: @cpd_audit_review.recommendation.to_s,
233
+ feedback: @cpd_audit_review.feedback.to_s,
232
234
  },
233
235
  reviewer: {
234
236
  name: @cpd_audit_review.name,
@@ -665,4 +665,8 @@ module EffectiveCpdAudit
665
665
  (current_user || user).class.send(EffectiveCpd.audit_reviewer_user_scope).sorted_by_in_progress_cpd_audit_reviews
666
666
  end
667
667
 
668
+ def feedback
669
+ cpd_audit_reviews.map(&:feedback).join('\n')
670
+ end
671
+
668
672
  end
@@ -152,4 +152,18 @@ module EffectiveCpdStatement
152
152
  cpd_statement_activities.each { |activity| scores[activity.cpd_category_id] += activity.score.to_d }
153
153
  end
154
154
  end
155
+
156
+ #
157
+ # This method is used in CpdScore#score so it can be overridden to provide a
158
+ # custom round score calculation.
159
+ # Any model that is a statement can override this method to provide a custom
160
+ # round score calculation.
161
+ #
162
+ # @param [Decimal] amount
163
+ #
164
+ # @return [Decimal] rounded decimal
165
+ #
166
+ def round_amount(amount)
167
+ return amount
168
+ end
155
169
  end
@@ -13,7 +13,7 @@ module Effective
13
13
  log_changes(to: :cpd_cycle)
14
14
  end
15
15
 
16
- # Only permit the words amount, amount2 and any charater 0-9 + - / * . ( )
16
+ # Only permit the words amount, amount2 and any character 0-9 + - / * . ( )
17
17
  INVALID_FORMULA_CHARS = /[^0-9\+\-\.\/\*\(\)]/
18
18
 
19
19
  effective_resource do
@@ -111,7 +111,14 @@ module Effective
111
111
 
112
112
  return cpd_statement_activity.carry_over if cpd_statement_activity.is_carry_over?
113
113
 
114
- eval_equation(amount: cpd_statement_activity.amount, amount2: cpd_statement_activity.amount2)
114
+ # Statements can override the #round_amount method to perform their own
115
+ # calculations. For example, a statement may round to the nearest 0.5 or
116
+ # to the nearest 0.25 or to the nearest 0.1.
117
+ statement = cpd_statement_activity.cpd_statement
118
+ amount = statement.round_amount(cpd_statement_activity.amount)
119
+ amount2 = statement.round_amount(cpd_statement_activity.amount2)
120
+
121
+ eval_equation(amount: amount, amount2: amount2)
115
122
  end
116
123
 
117
124
  private
@@ -8,6 +8,10 @@ Your {{ audit.title }} has been closed.
8
8
 
9
9
  The following determination was made: {{ audit.determination }}
10
10
 
11
+ The following feedback was provided by the reviewer:
12
+
13
+ {{ audit.feedback }}
14
+
11
15
  Please check below for any additional details
12
16
 
13
17
  {{ url }}
@@ -1,3 +1,3 @@
1
1
  module EffectiveCpd
2
- VERSION = '1.6.5'
2
+ VERSION = '1.7.1'
3
3
  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: 1.6.5
4
+ version: 1.7.1
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: 2023-05-03 00:00:00.000000000 Z
11
+ date: 2023-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - ">="
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: psych
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "<"
214
+ - !ruby/object:Gem::Version
215
+ version: '4'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "<"
221
+ - !ruby/object:Gem::Version
222
+ version: '4'
209
223
  description: Continuing professional development and audits rails engine
210
224
  email:
211
225
  - info@codeandeffect.com
@@ -483,7 +497,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
483
497
  - !ruby/object:Gem::Version
484
498
  version: '0'
485
499
  requirements: []
486
- rubygems_version: 3.1.2
500
+ rubygems_version: 3.3.7
487
501
  signing_key:
488
502
  specification_version: 4
489
503
  summary: Continuing professional development and audits rails engine