diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2015-05-18 07:16:16 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2015-05-18 07:16:16 -0700 |
commit | 2e76039d4ecaff8d2ed40b67c309c2498ff4a1d5 (patch) | |
tree | 30bc97d1148118adaca0d1b1a0e59bddaa2bcb87 /src/com/p4square/grow/backend/resources | |
parent | b5ad47d5b77bfc023b9d3d466f9fd9ed2c29a452 (diff) |
Changing assessment scoring model.
Previously scores aligned on the answer values: 0 (seeker), 2, 3, and 4
(teacher).
Now scores align halfway between: 0 (seeker), 1.5, 2.5, 3.5 (teacher)
Diffstat (limited to 'src/com/p4square/grow/backend/resources')
-rw-r--r-- | src/com/p4square/grow/backend/resources/TrainingRecordResource.java | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/src/com/p4square/grow/backend/resources/TrainingRecordResource.java b/src/com/p4square/grow/backend/resources/TrainingRecordResource.java index 4403b12..51ba56a 100644 --- a/src/com/p4square/grow/backend/resources/TrainingRecordResource.java +++ b/src/com/p4square/grow/backend/resources/TrainingRecordResource.java @@ -174,25 +174,35 @@ public class TrainingRecordResource extends ServerResource { return null; } + private Score getAssessedScore(String userId) throws IOException { + // Get the user's score. + Score assessedScore = new Score(0, 0); + + String summaryString = mAnswerProvider.get(userId, "summary"); + if (summaryString == null) { + throw new IOException("Asked to create training record for unassessed user " + userId); + } + + Map<?,?> summary = MAPPER.readValue(summaryString, Map.class); + + if (summary.containsKey("sum") && summary.containsKey("count")) { + double sum = (Double) summary.get("sum"); + int count = (Integer) summary.get("count"); + assessedScore = new Score(sum, count); + } + + return assessedScore; + } + /** * Mark the chapters which the user assessed through as not required. */ private void skipAssessedChapters(String userId, TrainingRecord record) { // Get the user's score. - double assessedScore = 0; + Score assessedScore = new Score(0, 0); try { - String summaryString = mAnswerProvider.get(userId, "summary"); - if (summaryString == null) { - LOG.warn("Asked to create training record for unassessed user " + userId); - return; - } - Map<?,?> summary = MAPPER.readValue(summaryString, Map.class); - - if (summary.containsKey("score")) { - assessedScore = (Double) summary.get("score"); - } - + assessedScore = getAssessedScore(userId); } catch (IOException e) { LOG.error("IOException fetching assessment record for " + userId, e); return; @@ -212,7 +222,7 @@ public class TrainingRecordResource extends ServerResource { } else { // Chapter required if the floor of the score is <= the chapter's numeric value. - required = Math.floor(assessedScore) <= Score.numericScore(chapterId); + required = assessedScore.floor() <= Score.numericScore(chapterId); } if (!required) { |