Index: lams_common/src/java/org/lamsfoundation/lams/confidencelevel/ConfidenceLevelDTO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r608cdb4965f33bddc1560cdb8aea73fbe432ae07 --- lams_common/src/java/org/lamsfoundation/lams/confidencelevel/ConfidenceLevelDTO.java (.../ConfidenceLevelDTO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_common/src/java/org/lamsfoundation/lams/confidencelevel/ConfidenceLevelDTO.java (.../ConfidenceLevelDTO.java) (revision 608cdb4965f33bddc1560cdb8aea73fbe432ae07) @@ -8,9 +8,9 @@ private int level; - private String question; + private Long qbQuestionUid; - private String answer; + private Long qbOptionUid; /** */ @@ -44,21 +44,21 @@ /** */ - public void setQuestion(String question) { - this.question = question; + public void setQbQuestionUid(Long qbQuestionUid) { + this.qbQuestionUid = qbQuestionUid; } - public String getQuestion() { - return this.question; + public Long getQbQuestionUid() { + return this.qbQuestionUid; } /** */ - public void setAnswer(String answer) { - this.answer = answer; + public void setQbOptionUid(Long qbOptionUid) { + this.qbOptionUid = qbOptionUid; } - public String getAnswer() { - return this.answer; + public Long getQbOptionUid() { + return this.qbOptionUid; } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r887cde82a7847b6294b50d242c448f2a575f9c9e -r608cdb4965f33bddc1560cdb8aea73fbe432ae07 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 887cde82a7847b6294b50d242c448f2a575f9c9e) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 608cdb4965f33bddc1560cdb8aea73fbe432ae07) @@ -2808,15 +2808,16 @@ for (AssessmentQuestionResult questionResult : assessmentResult.getQuestionResults()) { QbQuestion qbQuestion = questionResult.getQbQuestion(); - List answers = new LinkedList(); + List answers = new LinkedList<>(); + List optionUids = new LinkedList<>(); if (qbQuestion.getType() == QbQuestion.TYPE_MULTIPLE_CHOICE) { for (QbOption option : qbQuestion.getQbOptions()) { for (AssessmentOptionAnswer optionAnswer : questionResult.getOptionAnswers()) { if (optionAnswer.getAnswerBoolean() && (optionAnswer.getOptionUid().equals(option.getUid()))) { - answers.add(option.getName()); + optionUids.add(option.getUid()); } } } @@ -2843,16 +2844,26 @@ } - for (String answer : answers) { + for (Long optionUid : optionUids) { ConfidenceLevelDTO confidenceLevelDto = new ConfidenceLevelDTO(); confidenceLevelDto.setUserId(userId.intValue()); confidenceLevelDto.setPortraitUuid(portraitUuid); confidenceLevelDto.setLevel(questionResult.getConfidenceLevel()); - confidenceLevelDto.setQuestion(qbQuestion.getDescription()); - confidenceLevelDto.setAnswer(answer); + confidenceLevelDto.setQbQuestionUid(qbQuestion.getUid()); + confidenceLevelDto.setQbOptionUid(optionUid); confidenceLevelDtos.add(confidenceLevelDto); } + for (String answer : answers) { +// ConfidenceLevelDTO confidenceLevelDto = new ConfidenceLevelDTO(); +// confidenceLevelDto.setUserId(userId.intValue()); +// confidenceLevelDto.setPortraitUuid(portraitUuid); +// confidenceLevelDto.setLevel(questionResult.getConfidenceLevel()); +// confidenceLevelDto.setQbQuestionUid(qbQuestion.getUid()); +// confidenceLevelDto.setQbOptionUid(optionUid); +// +// confidenceLevelDtos.add(confidenceLevelDto); + } } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java =================================================================== diff -u -r887cde82a7847b6294b50d242c448f2a575f9c9e -r608cdb4965f33bddc1560cdb8aea73fbe432ae07 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 887cde82a7847b6294b50d242c448f2a575f9c9e) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 608cdb4965f33bddc1560cdb8aea73fbe432ae07) @@ -1608,16 +1608,14 @@ : ((Number) userAttemptAndPortraitIter[1]).longValue(); Long userId = userAttempt.getMcQueUsr().getQueUsrId(); - //fill in questionDescription's and user answer's hashes - McQueContent question = userAttempt.getMcQueContent(); - String answer = userAttempt.getQbOption().getName(); - + //fill in question and option uids ConfidenceLevelDTO confidenceLevelDto = new ConfidenceLevelDTO(); confidenceLevelDto.setUserId(userId.intValue()); confidenceLevelDto.setPortraitUuid(portraitUuid); confidenceLevelDto.setLevel(userAttempt.getConfidenceLevel()); - confidenceLevelDto.setQuestion(question.getDescription()); - confidenceLevelDto.setAnswer(answer); + McQueContent question = userAttempt.getMcQueContent(); + confidenceLevelDto.setQbQuestionUid(question.getUid()); + confidenceLevelDto.setQbOptionUid(userAttempt.getQbOption().getUid()); confidenceLevelDtos.add(confidenceLevelDto); } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -r23980a8cbd4e0d8d4e0b7ac4ad02e510d5653b75 -r608cdb4965f33bddc1560cdb8aea73fbe432ae07 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 23980a8cbd4e0d8d4e0b7ac4ad02e510d5653b75) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 608cdb4965f33bddc1560cdb8aea73fbe432ae07) @@ -293,18 +293,13 @@ optionDto.setConfidenceLevelDtos(confidenceLevelDtosTemp); } - //Assessment (similar with Scratchie) adds '\n' at the end of question, MCQ - '\r\n' - String question = item.getQbQuestion().getDescription() == null ? "" - : item.getQbQuestion().getDescription().replaceAll("(\\r|\\n)", ""); - - //find according confidenceLevelDto + //find according QbQuestion for (ConfidenceLevelDTO confidenceLevelDto : confidenceLevelDtos) { - if (question.equals(confidenceLevelDto.getQuestion().replaceAll("(\\r|\\n)", ""))) { + if (item.getQbQuestion().getUid().equals(confidenceLevelDto.getQbQuestionUid())) { //find according option for (QbOptionDTO option : item.getOptionDtos()) { - String optionText = option.getQbOption().getName().replaceAll("(\\r|\\n)", ""); - if (optionText.equals(confidenceLevelDto.getAnswer().replaceAll("(\\r|\\n)", ""))) { + if (option.getQbOption().getUid().equals(confidenceLevelDto.getQbOptionUid())) { option.getConfidenceLevelDtos().add(confidenceLevelDto); } }