effective_cpd 1.3.1 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c71c5eae8b068aa6f2db410afe050fe950b465603f436f16f796aad7721f59f
4
- data.tar.gz: 6af403b2978369d30cf0cc5c31875ca1709430c50ffb9c4f33c3b8dc9eddde0d
3
+ metadata.gz: fba654344bd04bbe55816f34a8f5598a4c413c753b7de458315c877549e7833a
4
+ data.tar.gz: afbf52fb5987b51acc284864ee98daf8d97b0b3b2246e6ee88f011b9ad505b74
5
5
  SHA512:
6
- metadata.gz: 236d74516d718f4407529e939b66bfa21a94a0ce571a4205579629bad290ad9336c6d96e5cc8d4fa307919b95cac158e226ba43b837954d3e4af893eeecea30f
7
- data.tar.gz: 3e21816d9715182815de2e26e88033dccc3c77d8d14c6d9ce6eb6a0fba1357ae8808bbfad5cc46a8952cdb25202040cd7bc0aab5cd74cf0628b40f42ee7af724
6
+ metadata.gz: 157e522d6b1868bbb86c14aae06a3d2b136d4489a027ad7a9fcab42f3a972efb31ba458a9635d81ef1f1208c0bfc9bd39c4a730aefbb7967db75d2d5952169bf
7
+ data.tar.gz: d299c09f5bcbe5b0f1e8718fcc54a1e92b52b3183b87079560847fb93e7e209b1219cf65ae2f2cf9d092c190d82a1142f1ce01cb9e138d8c006840faa4604ce3
@@ -107,6 +107,7 @@ module EffectiveCpdAudit
107
107
  accepts_nested_attributes_for :cpd_audit_responses
108
108
 
109
109
  has_many_attached :files
110
+ has_many_purgable
110
111
 
111
112
  effective_resource do
112
113
  due_date :date, permitted: false # Computed due date based on notification and extension date
@@ -111,4 +111,8 @@ module EffectiveCpdAuditLevel
111
111
  Array(self[:recommendations]) - [nil, '']
112
112
  end
113
113
 
114
+ def review_item_recommendations
115
+ recommendations
116
+ end
117
+
114
118
  end
@@ -105,8 +105,8 @@ module EffectiveCpdBulkAudit
105
105
  def create_audits!
106
106
  save!
107
107
 
108
- @auditees = cpd_auditees.order('RANDOM()').limit(audits)
109
- @reviewers = cpd_audit_reviewers.order('RANDOM()').limit(audits).to_a
108
+ @auditees = cpd_auditees.reorder('RANDOM()').limit(audits)
109
+ @reviewers = cpd_audit_reviewers.reorder('RANDOM()').limit(audits).to_a
110
110
 
111
111
  @auditees.each do |auditee|
112
112
  reviewers = audit_reviewers_per_audit.times.map { next_audit_reviewer() }
@@ -24,6 +24,7 @@ module EffectiveCpdUser
24
24
  has_many :cpd_audits, -> { order(:id) }, inverse_of: :user
25
25
  has_many :cpd_audit_reviews, -> { order(:id) }, inverse_of: :user
26
26
 
27
+ # These two should not be sorted
27
28
  scope :cpd_audit_auditees, -> { without_role(:cpd_audit_reviewer).without_role(:admin) }
28
29
  scope :cpd_audit_reviewers, -> { with_role(:cpd_audit_reviewer) }
29
30
 
@@ -17,11 +17,12 @@ module Effective
17
17
  scope :deep, -> { includes(:cpd_audit_review, :item) }
18
18
  scope :sorted, -> { order(:id) }
19
19
 
20
- validates :recommendation, presence: true
21
20
  validates :item_id, presence: true, uniqueness: { scope: [:cpd_audit_review_id, :item_type] }
22
21
 
22
+ validates :recommendation, presence: true, if: -> { cpd_audit_review&.cpd_audit_level&.review_item_recommendations.present? }
23
+
23
24
  validate(if: -> { recommendation.present? && cpd_audit_review.present? }) do
24
- unless cpd_audit_review.cpd_audit_level.recommendations.include?(recommendation)
25
+ unless cpd_audit_review.cpd_audit_level.review_item_recommendations.include?(recommendation)
25
26
  self.errors.add(:recommendation, 'must exist in this audit level')
26
27
  end
27
28
  end
@@ -0,0 +1,12 @@
1
+ .row
2
+ .col-md-4
3
+ .col-md-4
4
+ = card('All Done') do
5
+ .alert.alert-success.mb-4 Congratulations! All done!
6
+
7
+ %p All selected #{cpd_audits_label} are now being opened.
8
+
9
+ %p.text-center
10
+ = link_to(cpd_audits_label, effective_cpd.admin_cpd_audits_path, class: 'btn btn-primary')
11
+
12
+ .col-md-4
@@ -1,11 +1,13 @@
1
1
  = f.hidden_field :item_id
2
2
  = f.hidden_field :item_type
3
3
 
4
- - recommendations = cpd_audit_review.cpd_audit_level.recommendations
4
+ - recommendations = cpd_audit_review.cpd_audit_level.review_item_recommendations
5
5
 
6
- - if recommendations.length > 3
6
+ - if recommendations.length == 0
7
+ - # Nothing to do
8
+ - elsif recommendations.length > 3
7
9
  = f.select :recommendation, recommendations
8
10
  - else
9
11
  = f.radios :recommendation, recommendations, inline: true
10
12
 
11
- = f.text_area :comments, label: 'Notes'
13
+ = f.text_area :comments, label: 'Notes', hint: "Not displayed to the #{cpd_auditee_label}"
@@ -1,3 +1,3 @@
1
1
  module EffectiveCpd
2
- VERSION = '1.3.1'
2
+ VERSION = '1.3.3'
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.3.1
4
+ version: 1.3.3
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-02-09 00:00:00.000000000 Z
11
+ date: 2023-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -316,6 +316,7 @@ files:
316
316
  - app/views/admin/cpd_audits/_status.html.haml
317
317
  - app/views/admin/cpd_bulk_audits/_form.html.haml
318
318
  - app/views/admin/cpd_bulk_audits/_form_cpd_bulk_audit.html.haml
319
+ - app/views/admin/cpd_bulk_audits/create.html.haml
319
320
  - app/views/admin/cpd_categories/_form.html.haml
320
321
  - app/views/admin/cpd_categories/_form_cpd_category.html.haml
321
322
  - app/views/admin/cpd_cycles/_form.html.haml