Index: lams_central/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r7ba9ed71bbc4ef9c86c6204497a65e96bed88a04 -rf6f3e50bca627b971bbd84d4aa341d3ea37890e2 --- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7ba9ed71bbc4ef9c86c6204497a65e96bed88a04) +++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision f6f3e50bca627b971bbd84d4aa341d3ea37890e2) @@ -858,6 +858,7 @@ authoring.section.introduction =Introduction authoring.create.question =Add Question authoring.create.question.qb = From question bank... +label.question.bank = Question Bank authoring.create.essay.question =Add Essay Question authoring.create.mc.question =Add Multiple Choice Question authoring.label.application.exercise.num =Application Exercise {0} Index: lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/LdTemplateController.java =================================================================== diff -u -rc0f4a7e33200e148a97d30cb2091ecea22c3cfc7 -rf6f3e50bca627b971bbd84d4aa341d3ea37890e2 --- lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/LdTemplateController.java (.../LdTemplateController.java) (revision c0f4a7e33200e148a97d30cb2091ecea22c3cfc7) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/LdTemplateController.java (.../LdTemplateController.java) (revision f6f3e50bca627b971bbd84d4aa341d3ea37890e2) @@ -51,6 +51,9 @@ import org.lamsfoundation.lams.learningdesign.Grouping; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.exception.LearningDesignException; +import org.lamsfoundation.lams.qb.model.QbOption; +import org.lamsfoundation.lams.qb.model.QbQuestion; +import org.lamsfoundation.lams.qb.service.IQbService; import org.lamsfoundation.lams.questions.Answer; import org.lamsfoundation.lams.questions.Question; import org.lamsfoundation.lams.questions.QuestionParser; @@ -65,10 +68,13 @@ import org.lamsfoundation.lams.util.FileUtil; import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.WebApplicationContext; @@ -116,6 +122,8 @@ @Autowired protected IAuthoringFullService authoringService; @Autowired + protected IQbService qbService; + @Autowired protected IToolDAO toolDAO; protected static final String CONTENT_TYPE_JSON = "application/json;charset=utf-8"; @@ -1388,6 +1396,33 @@ return "/authoring/template/tool/" + templatePage; } + /** + * Gets a QB question based on its UID and creates a structure for template wizard JSP. + */ + @RequestMapping("/importQb") + private String importQuestionFromQb(@RequestParam long qbQuestionUid, @RequestParam int questionNumber, Model model) + throws UnsupportedEncodingException { + QbQuestion qbQuestion = qbService.getQuestionByUid(qbQuestionUid); + + Assessment question = new Assessment(); + question.setType(Assessment.ASSESSMENT_QUESTION_TYPE_MULTIPLE_CHOICE); + question.setTitle(qbQuestion.getName()); + question.setText(qbQuestion.getDescription()); + question.setUuid(qbQuestion.getUuid().toString()); + + List answers = question.getAnswers(); + for (QbOption qbOption : qbQuestion.getQbOptions()) { + AssessMCAnswer answer = new AssessMCAnswer(qbOption.getDisplayOrder(), qbOption.getName(), + qbOption.getMaxMark()); + answers.add(answer); + } + + model.addAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, qbQuestion.getContentFolderId()); + model.addAttribute("question", question); + model.addAttribute("questionNumber", questionNumber); + return "/authoring/template/tool/mcquestion"; + } + private List preprocessQuestions(Question[] questions, String contentFolderID) { List assessments = new ArrayList<>(questions.length); @@ -1531,6 +1566,10 @@ case ("peerreviewstar"): path = "authoring/template/tool/peerreviewstar"; break; + case ("importQb"): + // further processing in another action method + path = "forward:importQb.do"; + break; default: path = null; break; Index: lams_central/web/authoring/template/tbl/tbl.jsp =================================================================== diff -u -r7ba9ed71bbc4ef9c86c6204497a65e96bed88a04 -rf6f3e50bca627b971bbd84d4aa341d3ea37890e2 --- lams_central/web/authoring/template/tbl/tbl.jsp (.../tbl.jsp) (revision 7ba9ed71bbc4ef9c86c6204497a65e96bed88a04) +++ lams_central/web/authoring/template/tbl/tbl.jsp (.../tbl.jsp) (revision f6f3e50bca627b971bbd84d4aa341d3ea37890e2) @@ -13,10 +13,21 @@ <%@ include file="../header.jsp" %> - - - <fmt:message key="authoring.tbl.template.title"/> + + <fmt:message key="authoring.tbl.template.title"/> + +