Skip to content

Commit

Permalink
EYCDTK-122 Assessment new export for managers and leaders (#1388)
Browse files Browse the repository at this point in the history
* Add assessment for managers and leaders
* Update specs
* Remove duplicate code
  • Loading branch information
martikat authored Nov 18, 2024
1 parent 2d9f21e commit ca43eff
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 2 deletions.
40 changes: 40 additions & 0 deletions app/models/data_analysis/assessment_for_leaders_and_managers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module DataAnalysis
class AssessmentForLeadersAndManagers
include ToCsv

class << self
# @note Personally identifiable information must not be revealed
# @return [Array<String>]
def column_names
%w[
user_id
training_module
score
passed
started_at
completed_at
]
end

# @return [Array<Hash{Symbol => Mixed}>]
def dashboard
filtered_assessment.select(*column_names).map do |user|
decorator.call user.attributes.symbolize_keys.except(:id)
end
end

# @param mod [Training::Module]
# @return [Integer]
def filtered_assessment
User.with_assessments.leader_or_manager_only
end

private

# @return [CoercionDecorator]
def decorator
@decorator ||= CoercionDecorator.new
end
end
end
end
5 changes: 3 additions & 2 deletions app/services/dashboard.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ class Dashboard
{ model: 'DataAnalysis::ReturningUsers', folder: 'users', file: 'returning_users' },
# { model: 'DataAnalysis::LocalAuthorityUser', folder: 'users', file: 'local_authority_users' },

{ model: 'Assessment', folder: 'training', file: 'assessments' },
{ model: 'DataAnalysis::ConfidenceCheckScores', folder: 'training', file: 'confidence_check_scores' },
{ model: 'Assessment', folder: 'training', file: 'assessments' },
{ model: 'DataAnalysis::AssessmentForLeadersAndManagers', folder: 'training', file: 'assessments_managers_and_leaders' },
{ model: 'DataAnalysis::ConfidenceCheckScores', folder: 'training', file: 'confidence_check_scores' },
{ model: 'DataAnalysis::ConfidenceCheckScoresForManagerOrLeaderOnly', folder: 'training', file: 'confidence_check_scores_for_manager_or_leader_only' },
{ model: 'DataAnalysis::ConfidenceCheckScoresForManagerOrLeaderAndOther', folder: 'training', file: 'confidence_check_scores_for_manager_or_leader_and_other' },
# { model: 'DataAnalysis::AveragePassScores', folder: 'training', file: 'average_pass_scores' },
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
require 'rails_helper'

RSpec.describe DataAnalysis::AssessmentForLeadersAndManagers do
let(:headers) do
%w[
user_id
training_module
score
passed
started_at
completed_at
]
end

let(:rows) do
[
{
user_id: user_one.id,
training_module: 'alpha',
score: 0.0,
passed: false,
started_at: '2024-01-02 00:00:00',
completed_at: '2024-01-02 00:20:00',
},
{
user_id: user_one.id,
training_module: 'alpha',
score: 100.0,
passed: true,
started_at: '2024-01-02 00:00:00',
completed_at: '2024-01-02 00:20:00',
},
{
user_id: user_two.id,
training_module: 'alpha',
score: 100.0,
passed: true,
started_at: '2024-01-02 00:00:00',
completed_at: '2024-01-02 00:20:00',
},
]
end

let(:user_one) { create :user, :registered, role_type: 'Manager or team leader' }
let(:user_two) { create :user, :registered, role_type: 'Manager or team leader' }
let(:user_three) { create :user, :registered, role_type: 'Trainee' }

before do
create :assessment, :failed, user: user_one, started_at: '2024-01-02 00:00:00', completed_at: '2024-01-02 00:20:00'
create :assessment, :passed, user: user_one, started_at: '2024-01-02 00:00:00', completed_at: '2024-01-02 00:20:00'

create :assessment, :passed, user: user_two, started_at: '2024-01-02 00:00:00', completed_at: '2024-01-02 00:20:00'

create :assessment, :failed, user: user_three, started_at: '2024-01-02 00:00:00', completed_at: '2024-01-02 00:20:00'
end

it_behaves_like 'a data export model'
end

0 comments on commit ca43eff

Please sign in to comment.