Skip to content

Commit

Permalink
Merge pull request #626 from yeatmanlab/fix/engagement-flags
Browse files Browse the repository at this point in the history
Filter EngagementFlags in Score Report based on IncludedValidityFlags
  • Loading branch information
richford authored May 31, 2024
2 parents 58e852d + 994186a commit dfb782a
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 10 deletions.
15 changes: 11 additions & 4 deletions src/components/reports/TableScoreTag.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import {
rawOnlyTasks,
scoredTasks,
} from '@/helpers/reports.js';
import { includedValidityFlags } from '@/helpers/reports';
defineProps({
colData: {
Expand Down Expand Up @@ -111,14 +112,20 @@ function getFlags(colData, taskId) {
// If there are flags and the assessment is not reliable, return the flags
if (flags && !colData.scores[taskId].reliable) {
if (!taskId.includes('pa')) {
if (includedValidityFlags[taskId]) {
// only display flags that are included in the includedValidityFlags object
const filteredFlags = Object.keys(flags).filter((flag) => includedValidityFlags[taskId].includes(flag));
const reliabilityFlags = filteredFlags.map((flag) => {
return flagMessages[flag] || _lowerCase(flag);
});
if (reliabilityFlags.length === 0) return '';
return 'Unreliable Score' + '\n' + reliabilityFlags.join('\n') + '\n\n';
} else {
const reliabilityFlags = Object.keys(flags).map((flag) => {
return flagMessages[flag] || _lowerCase(flag);
});
// Join the returned flags with a newline character, then add two newlines for spacing
return 'Engagement Flags: ' + reliabilityFlags.join('\n') + '\n\n';
} else {
return 'Unreliable \n\n';
return 'Unreliable Score: ' + '\n' + reliabilityFlags.join('\n') + '\n\n';
}
} else {
return '';
Expand Down
9 changes: 9 additions & 0 deletions src/helpers/reports.js
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,15 @@ export const addElementToPdf = async (element, document, yCounter, offset = 0) =
return yCounter;
};

export const includedValidityFlags = {
pa: ['incomplete'],
'pa-es': ['incomplete'],
sre: ['incomplete', 'responseTimeTooFast'],
'sre-es': ['incomplete', 'responseTimeTooFast'],
swr: ['responseTimeTooFast'],
'swr-es': ['responseTimeTooFast'],
};

/*
* Tasks to Display Graphs
* A list of tasks who, when included in a score report, will generate breakdown graphs.
Expand Down
29 changes: 23 additions & 6 deletions src/pages/ScoreReport.vue
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,7 @@ import {
getScoreKeys,
gradeOptions,
tasksToDisplayCorrectIncorrectDifference,
includedValidityFlags,
} from '@/helpers/reports.js';

let TaskReport, DistributionChartOverview, NextSteps;
Expand Down Expand Up @@ -874,11 +875,19 @@ const exportSelected = (selectedRows) => {
if (score.reliable !== undefined && !score.reliable && score.engagementFlags !== undefined) {
const engagementFlags = Object.keys(score.engagementFlags);
if (engagementFlags.length > 0) {
if (!taskId.includes('pa')) {
if (includedValidityFlags[taskId]) {
const filteredFlags = Object.keys(score.engagementFlags).filter((flag) =>
includedValidityFlags[taskId].includes(flag),
);
if (filteredFlags.length === 0) {
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = 'Unreliable';
} else {
const engagementFlagString = 'Unreliable: ' + filteredFlags.map((key) => _lowerCase(key)).join(', ');
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = engagementFlagString;
}
} else {
const engagementFlagString = 'Unreliable: ' + engagementFlags.map((key) => _lowerCase(key)).join(', ');
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = engagementFlagString;
} else {
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = 'Unreliable';
}
} else {
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = 'Assessment Incomplete';
Expand Down Expand Up @@ -937,11 +946,19 @@ const exportAll = async () => {
if (score.reliable !== undefined && !score.reliable && score.engagementFlags !== undefined) {
const engagementFlags = Object.keys(score.engagementFlags);
if (engagementFlags.length > 0) {
if (!taskId.includes('pa')) {
if (includedValidityFlags[taskId]) {
const filteredFlags = Object.keys(score.engagementFlags).filter((flag) =>
includedValidityFlags[taskId].includes(flag),
);
if (filteredFlags.length === 0) {
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = 'Unreliable';
} else {
const engagementFlagString = 'Unreliable: ' + filteredFlags.map((key) => _lowerCase(key)).join(', ');
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = engagementFlagString;
}
} else {
const engagementFlagString = 'Unreliable: ' + engagementFlags.map((key) => _lowerCase(key)).join(', ');
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = engagementFlagString;
} else {
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = 'Unreliable';
}
} else {
tableRow[`${taskDisplayNames[taskId]?.name ?? taskId} - Reliability`] = 'Assessment Incomplete';
Expand Down

0 comments on commit dfb782a

Please sign in to comment.