effective_cpd 0.1.6 → 0.1.11

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: 5b6ad81c90e8ba68f14d6975f449c71ebb20076f7b261f13548cd78eb57cab5b
4
- data.tar.gz: 42bddd331a47d453bcad32a2fa904d7b5691040f4fb10790996b28c5a93ea73f
3
+ metadata.gz: 7ae72402afeab6ed8830a9951e48d0bf33494e0f5fc5133049aa652876aa367e
4
+ data.tar.gz: bbdad22b7cd86165bc476b0c9fc8615e42e4cea2cd6c7b0c9310927bac76b0d1
5
5
  SHA512:
6
- metadata.gz: 0e9a580dc39ed60934e761b3b9103168307db5e90f1b3143cb90b89ffc3d945a81f993f090837a1153dcbc053c6ad71d342fe24549e684cf659a08dd4ed259d5
7
- data.tar.gz: d92f8ab5424cc5b1c4ef7ee9c341707742985876324d0f0c88766b62acec2c83b61cf717d4a87105a34a352d2bfdd8c8de6385aaaabb14fb8266794ad6b074c1
6
+ metadata.gz: 51b58155d16e45298264fd9779a5b0ba3b3432261b4b8fabf88a04754182eef0d85975c3d853099eceb9e871eed13d03d4115d4bd1028f77891ca357b3801956
7
+ data.tar.gz: d2d7895e77c218b0a677d2601538e2b278b3518b25b0c60b0cfc3ed22a4462fb5e0a1ff634d5ff2d27fc75e1c36d116bcff0f5cfea6f826c061cc05e22fe883a
data/README.md CHANGED
@@ -197,11 +197,13 @@ if user.admin?
197
197
  can :manage, Effective::CpdCycle
198
198
  can :manage, Effective::CpdRule
199
199
 
200
+ can([:index, :show], Effective::CpdStatement)
201
+ can(:unsubmit, Effective::CpdStatement) { |statement| statement.completed? }
202
+
200
203
  can :manage, Effective::CpdAuditLevel
201
204
  can :manage, Effective::CpdAuditLevelSection
202
205
  can :manage, Effective::CpdAuditLevelQuestion
203
206
 
204
- can :manage, Effective::CpdStatement
205
207
  can :manage, Effective::CpdAudit
206
208
  can :manage, Effective::CpdAuditReview
207
209
  end
@@ -1,14 +1,8 @@
1
1
  const initialize_effective_cpd_activities = function() {
2
- const $obj = $('.cpd-statement-activities:not(.initialized)')
2
+ const $obj = $('#cpd-statement-activities,.cpd-statement-activities')
3
3
 
4
4
  if($obj.length > 0) {
5
- $(document).on('mousedown touchstart', function(event) { collapse_effective_cpd_activities() })
6
-
7
- // When we click outside the New Activity or Edit Activity
8
- $(document).on('mousedown touchstart', '.activities-new', function(event) { event.stopPropagation() });
9
- $(document).on('mousedown touchstart', '.statement-activity', function(event) { event.stopPropagation() });
10
-
11
- $obj.addClass('initialized')
5
+ $('body').addClass('effective-cpd-statement-activities')
12
6
  }
13
7
  };
14
8
 
@@ -50,6 +44,15 @@ $(document).on('click', '[data-cpd-collapse]', function(event) {
50
44
  collapse_effective_cpd_activities()
51
45
  });
52
46
 
47
+ // Click outside the activities anywehre on body
48
+ $(document).on('mousedown touchstart', 'body.effective-cpd-statement-activities', function(event) {
49
+ collapse_effective_cpd_activities()
50
+ });
51
+
52
+ // When we click outside the New Activity or Edit Activity
53
+ $(document).on('mousedown touchstart', 'body.effective-cpd-statement-activities .activities-new', function(event) { event.stopPropagation() });
54
+ $(document).on('mousedown touchstart', 'body.effective-cpd-statement-activities .statement-activity', function(event) { event.stopPropagation() });
55
+
53
56
  // Initializers
54
- $(document).ready(function() { initialize_effective_cpd_activities() });
55
- $(document).on('turbolinks:load', function() { initialize_effective_cpd_activities() });
57
+ $(document).ready(initialize_effective_cpd_activities);
58
+ $(document).on('turbolinks:load', initialize_effective_cpd_activities);
@@ -3,6 +3,8 @@
3
3
  .progress { height: 3px; }
4
4
  }
5
5
 
6
+ .cpd-statement-activity { padding: 0.5rem; }
7
+
6
8
  .statement-activity-content {
7
9
  a { color: inherit; }
8
10
  }
@@ -22,7 +22,7 @@ module Effective
22
22
  flash[:danger] = "You have already completed a statement for this #{cpd_cycle_label}."
23
23
  redirect_to(root_path)
24
24
  elsif existing.present?
25
- flash[:success] = "You have been redirected to the #{resource_wizard_step_title(existing.next_step)} step."
25
+ flash[:success] = "You have been redirected to the #{resource_wizard_step_title(existing, existing.next_step)} step."
26
26
  redirect_to effective_cpd.cpd_cycle_cpd_statement_build_path(existing.cpd_cycle, existing, existing.next_step)
27
27
  end
28
28
  end
@@ -13,8 +13,8 @@ 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 + - / * ( )
17
- INVALID_FORMULA_CHARS = /[^0-9\+\-\/\*\(\)]/
16
+ # Only permit the words amount, amount2 and any charater 0-9 + - / * . ( )
17
+ INVALID_FORMULA_CHARS = /[^0-9\+\-\.\/\*\(\)]/
18
18
 
19
19
  effective_resource do
20
20
  # A plaintext description of the formula
@@ -55,7 +55,7 @@ module Effective
55
55
 
56
56
  validate(if: -> { formula.present? }) do
57
57
  if formula.gsub('amount2', '').gsub('amount', '').gsub(' ', '').match(INVALID_FORMULA_CHARS).present?
58
- self.errors.add(:formula, "may only contain amount, amount2 and 0-9 + - / * ( ) characters")
58
+ self.errors.add(:formula, "may only contain amount, amount2 and 0-9 + - / * . ( ) characters")
59
59
  else
60
60
  begin
61
61
  eval_equation(amount: 0, amount2: 0)
@@ -118,7 +118,7 @@ module Effective
118
118
 
119
119
  def eval_equation(amount: nil, amount2: nil)
120
120
  equation = formula.gsub('amount2', amount2.to_s).gsub('amount', amount.to_s)
121
- eval(equation).to_i
121
+ eval(equation).round.to_i
122
122
  end
123
123
 
124
124
  end
@@ -79,6 +79,11 @@ module Effective
79
79
  update!(submitted_at: Time.zone.now)
80
80
  end
81
81
 
82
+ # Called by admin only. This is an exceptional action
83
+ def unsubmit!
84
+ update!(wizard_steps: {}, submitted_at: nil, confirm_readonly: nil)
85
+ end
86
+
82
87
  def in_progress?
83
88
  submitted_at.blank?
84
89
  end
@@ -86,6 +91,7 @@ module Effective
86
91
  def completed?
87
92
  submitted_at.present?
88
93
  end
94
+ alias_method :submitted?, :completed?
89
95
 
90
96
  def required_score
91
97
  required_by_cycle = cpd_cycle&.required_score
@@ -2,6 +2,7 @@
2
2
  - cpd_activity = cpd_statement_activity.cpd_activity
3
3
  - rule = cpd_statement_activity.cpd_statement.cpd_cycle.rule_for(cpd_activity)
4
4
 
5
+ .float-right= link_to icon('x', class: 'small-1'), '#', 'data-cpd-collapse': true
5
6
  %p
6
7
  = cpd_statement_activity
7
8
  %br
@@ -21,13 +22,13 @@
21
22
  .row
22
23
  - if cpd_activity.amount_label.present?
23
24
  .col
24
- %strong #{cpd_activity.amount_label.titleize.pluralize}
25
+ %strong= cpd_activity.amount_label
25
26
  %br
26
27
  = cpd_statement_activity.amount
27
28
 
28
29
  - if cpd_activity.amount2_label.present?
29
30
  .col.text-center
30
- %strong #{cpd_activity.amount2_label.to_s.titleize.pluralize} Articles written
31
+ %strong= cpd_activity.amount2_label
31
32
  = cpd_statement_activity.amount2
32
33
 
33
34
  - if cpd_activity.amount_static?
@@ -41,10 +41,10 @@
41
41
  .row
42
42
  .col
43
43
  - if activity.amount_label.present?
44
- = f.number_field :amount, label: activity.amount_label.titleize.pluralize, required: true
44
+ = f.number_field :amount, label: activity.amount_label, required: true
45
45
 
46
46
  - if activity.amount2_label.present?
47
- = f.number_field :amount2, label: activity.amount2_label.titleize.pluralize, required: true
47
+ = f.number_field :amount2, label: activity.amount2_label, required: true
48
48
 
49
49
  - if activity.amount_static?
50
50
  = f.hidden_field :amount, value: 1
@@ -1,5 +1,5 @@
1
1
  .cpd-statement-activities
2
- .row{style: 'margin-top: -2rem'}
2
+ .row
3
3
  .col-8
4
4
  .col-2.score
5
5
  %strong= cpd_credits_label.titleize
data/config/routes.rb CHANGED
@@ -34,7 +34,9 @@ EffectiveCpd::Engine.routes.draw do
34
34
  resources :cpd_rules, only: [:index]
35
35
  resources :cpd_special_rules, except: [:show]
36
36
 
37
- resources :cpd_statements, only: [:index, :show]
37
+ resources :cpd_statements, only: [:index, :show] do
38
+ post :unsubmit, on: :member
39
+ end
38
40
 
39
41
  resources :cpd_audit_levels, except: [:show]
40
42
  resources :cpd_audit_level_questions, except: [:show]
@@ -1,3 +1,3 @@
1
1
  module EffectiveCpd
2
- VERSION = '0.1.6'
2
+ VERSION = '0.1.11'
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: 0.1.6
4
+ version: 0.1.11
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-05-24 00:00:00.000000000 Z
11
+ date: 2021-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails