Index: lams_central/src/java/org/lamsfoundation/lams/web/qb/PrintQbQuestionController.java =================================================================== diff -u --- lams_central/src/java/org/lamsfoundation/lams/web/qb/PrintQbQuestionController.java (revision 0) +++ lams_central/src/java/org/lamsfoundation/lams/web/qb/PrintQbQuestionController.java (revision c47ad82bb2279af8808f519dfc34a4a0d920d258) @@ -0,0 +1,55 @@ +package org.lamsfoundation.lams.web.qb; + +import org.lamsfoundation.lams.qb.model.QbOption; +import org.lamsfoundation.lams.qb.model.QbQuestion; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.support.RequestContextUtils; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping("/qb") +public class PrintQbQuestionController { + + @GetMapping("/printQuestions.do") + public String printQuestions(HttpServletRequest request, Model model) { + // read Flash Attributes set by another module and put them in the model + Map inputFlashMap = RequestContextUtils.getInputFlashMap(request); + if (inputFlashMap != null) { + + Map> randomisedOptions = new HashMap<>(); + model.addAttribute("printRandomisedOptions", randomisedOptions); + for (String key : inputFlashMap.keySet()) { + if (key.startsWith("print")) { + model.addAttribute(key, inputFlashMap.get(key)); + + if (key.equals("printQuestions")) { + Collection questions = (Collection) inputFlashMap.get(key); + for (QbQuestion question : questions) { + if (question.getType().equals(QbQuestion.TYPE_MATCHING_PAIRS) || question.getType() + .equals(QbQuestion.TYPE_ORDERING)) { + // randomise the order of options when correct answers are hidden + List optionNames = new ArrayList<>(); + for (QbOption option : question.getQbOptions()) { + optionNames.add(option.getName()); + } + Collections.shuffle(optionNames); + randomisedOptions.put(question.getUid(), optionNames); + } + } + } + } + } + } + return "qb/printQuestions"; + } +} \ No newline at end of file Fisheye: Tag c47ad82bb2279af8808f519dfc34a4a0d920d258 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/web/qb/PrintQuestionsController.java'. Fisheye: No comparison available. Pass `N' to diff?