Index: lams_tool_assessment/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -ra9f95a26e562a58b55c99f2c18e253c151ef457a -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision a9f95a26e562a58b55c99f2c18e253c151ef457a) +++ lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -357,4 +357,10 @@ label.close =Close label.export.time.attempted =Time attempted +admin.page.title =Assessment Settings +admin.success =Configuration successfully saved. +admin.return =Return to maintain LAMS +admin.button.save =Save +admin.hide.titles =Hide question titles for learners + #======= End labels: Exported 337 labels for en AU ===== Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java =================================================================== diff -u -rec62f6f6a9e56cd545c527d2fd530614b3a7e744 -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision ec62f6f6a9e56cd545c527d2fd530614b3a7e744) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -209,5 +209,8 @@ public static final String ALLOW_PROTOCOL_REFIX = new String("[http://|https://|ftp://|nntp://]"); - public static final String EVENT_NAME_NOTIFY_TEACHERS_ON_ASSIGMENT_SUBMIT = "notify_teachers_on_assigment_submit"; + public static final String EVENT_NAME_NOTIFY_TEACHERS_ON_ASSIGMENT_SUBMIT = "notify_teachers_on_assigment_submit"; + + // configuration keys + public static final String CONFIG_KEY_HIDE_TITLES = "hideTitles"; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml =================================================================== diff -u -re8a7110708b15579af2c6b31ac52a6da427fef6d -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision e8a7110708b15579af2c6b31ac52a6da427fef6d) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -52,7 +52,12 @@ - + + + + + + @@ -80,6 +85,9 @@ + + + Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentConfigDAO.java =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentConfigDAO.java (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentConfigDAO.java (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -0,0 +1,9 @@ +package org.lamsfoundation.lams.tool.assessment.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +public interface AssessmentConfigDAO extends IBaseDAO { + void setConfigValue(String key, String value); + + String getConfigValue(String key); +} Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentConfigDAOHibernate.java =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentConfigDAOHibernate.java (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentConfigDAOHibernate.java (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -0,0 +1,20 @@ +package org.lamsfoundation.lams.tool.assessment.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; +import org.lamsfoundation.lams.tool.assessment.dao.AssessmentConfigDAO; + +public class AssessmentConfigDAOHibernate extends LAMSBaseDAO implements AssessmentConfigDAO { + @Override + public void setConfigValue(String key, String value) { + getSession() + .createNativeQuery("UPDATE tl_laasse10_configuration SET config_value = :value WHERE config_key = :key") + .setParameter("key", key).setParameter("value", value).executeUpdate(); + } + + @Override + public String getConfigValue(String key) { + return (String) getSession() + .createNativeQuery("SELECT config_value FROM tl_laasse10_configuration WHERE config_key = :key") + .setParameter("key", key).uniqueResult(); + } +} Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20191205.sql =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20191205.sql (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20191205.sql (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -0,0 +1,23 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +--LDEV-4921 Allow question title hiding in learner + + CREATE TABLE `tl_laasse10_configuration` ( + `config_key` varchar(30), + `config_value` varchar(255), + PRIMARY KEY (`config_key`) + ); + +INSERT INTO `tl_laasse10_configuration` (`config_key`, `config_value`) VALUES ('hideTitles', 'false'); + +UPDATE lams_tool SET admin_url = 'tool/laasse10/admin/start.do' WHERE tool_signature = 'laasse10'; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r6b89d0c84a5695fb1ad02d5525eb240a9f4d3134 -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 6b89d0c84a5695fb1ad02d5525eb240a9f4d3134) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -77,6 +77,7 @@ import org.lamsfoundation.lams.tool.ToolSessionExportOutputData; import org.lamsfoundation.lams.tool.ToolSessionManager; import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; +import org.lamsfoundation.lams.tool.assessment.dao.AssessmentConfigDAO; import org.lamsfoundation.lams.tool.assessment.dao.AssessmentDAO; import org.lamsfoundation.lams.tool.assessment.dao.AssessmentQuestionDAO; import org.lamsfoundation.lams.tool.assessment.dao.AssessmentQuestionResultDAO; @@ -143,6 +144,8 @@ private AssessmentResultDAO assessmentResultDao; + private AssessmentConfigDAO assessmentConfigDao; + // tool service private IToolContentHandler assessmentToolContentHandler; @@ -1929,6 +1932,7 @@ userSummaryTitle.addCell(getMessage("label.export.user.summary"), true); ExcelRow summaryRowTitle = userSummarySheet.initRow(); + summaryRowTitle.addCell("#", true, ExcelCell.BORDER_STYLE_BOTTOM_THIN); summaryRowTitle.addCell(getMessage("label.monitoring.question.summary.question"), true, ExcelCell.BORDER_STYLE_BOTTOM_THIN); summaryRowTitle.addCell(getMessage("label.authoring.basic.list.header.type"), true, @@ -1942,6 +1946,7 @@ Float totalGradesPossible = 0F; Float totalAverage = 0F; + int questionIndex = 1; if (assessment.getQuestionReferences() != null) { Set questionReferences = new TreeSet<>(new SequencableComparator()); questionReferences.addAll(assessment.getQuestionReferences()); @@ -1977,6 +1982,7 @@ totalGradesPossible += maxGrade; ExcelRow questCellRow = userSummarySheet.initRow(); + questCellRow.addCell(questionIndex++); questCellRow.addCell(title); questCellRow.addCell(questionType); questCellRow.addCell(penaltyFactor); @@ -2719,6 +2725,10 @@ this.assessmentResultDao = assessmentResultDao; } + public void setAssessmentConfigDao(AssessmentConfigDAO assessmentConfigDao) { + this.assessmentConfigDao = assessmentConfigDao; + } + // ******************************************************************************* // ToolContentManager, ToolSessionManager methods // ******************************************************************************* @@ -3511,4 +3521,14 @@ jsonCommand.put("hookTrigger", "assessment-results-refresh-" + toolContentId); learnerService.createCommandForLearners(toolContentId, userIds, jsonCommand.toString()); } + + @Override + public void setConfigValue(String key, String value) { + assessmentConfigDao.setConfigValue(key, value); + } + + @Override + public String getConfigValue(String key) { + return assessmentConfigDao.getConfigValue(key); + } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -r02ce40b60524aa33d326fbda824dcd43f566ab94 -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 02ce40b60524aa33d326fbda824dcd43f566ab94) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -24,7 +24,6 @@ package org.lamsfoundation.lams.tool.assessment.service; import java.lang.reflect.InvocationTargetException; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -46,12 +45,11 @@ import org.lamsfoundation.lams.tool.assessment.model.AssessmentUser; import org.lamsfoundation.lams.tool.assessment.model.QuestionReference; import org.lamsfoundation.lams.tool.service.ICommonToolService; -import org.lamsfoundation.lams.util.excel.ExcelCell; import org.lamsfoundation.lams.util.excel.ExcelSheet; /** * Interface that defines the contract that all ShareAssessment service provider must follow. - * + * * @author Andrey Balan */ public interface IAssessmentService extends ICommonToolService { @@ -226,7 +224,7 @@ */ void setAttemptStarted(Assessment assessment, AssessmentUser assessmentUser, Long toolSessionId, List> pagedQuestionDtos); - + void storeSingleMarkHedgingQuestion(Assessment assessment, Long userId, List> pagedQuestions, Long singleMarkHedgingQuestionUid) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException; @@ -244,7 +242,7 @@ */ boolean storeUserAnswers(Assessment assessment, Long userId, List> pagedQuestions, boolean isAutosave) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException; - + void loadupLastAttempt(Long assessmentUid, Long userId, List> pagedQuestionDtos); /** @@ -349,7 +347,7 @@ * @return */ int getAssessmentResultCount(Long assessmentUid, Long userId); - + /** * Checks whether anyone has attempted this assessment. */ @@ -425,10 +423,9 @@ * @return */ QuestionSummary getQuestionSummary(Long contentId, Long questionUid); - - void allocateAnswerToOption(Long questionUid, Long targetOptionUid, Long previousOptionUid, - Long questionResultUid); + void allocateAnswerToOption(Long questionUid, Long targetOptionUid, Long previousOptionUid, Long questionResultUid); + /** * For export purposes * @@ -446,8 +443,7 @@ * @param showUserNames * @return */ - List exportSummary(Assessment assessment, List sessionDtos, - boolean showUserNames); + List exportSummary(Assessment assessment, List sessionDtos, boolean showUserNames); /** * Gets the basic statistics for the grades for the Leaders when an Assessment is done using @@ -530,4 +526,7 @@ */ void notifyLearnersOnAnswerDisclose(long toolContentId); -} + void setConfigValue(String key, String value); + + String getConfigValue(String key); +} \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AdminController.java =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AdminController.java (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AdminController.java (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -0,0 +1,65 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.assessment.web.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; +import org.lamsfoundation.lams.tool.assessment.service.IAssessmentService; +import org.lamsfoundation.lams.tool.assessment.web.form.AdminForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +/** + * @author Andrey Balan, Marcin Cieslak + */ +@Controller +@RequestMapping("/admin") +public class AdminController { + + @Autowired + @Qualifier("laasseAssessmentService") + private IAssessmentService assessmentService; + + @RequestMapping("/start") + public String start(@ModelAttribute("adminForm") AdminForm adminForm, HttpServletRequest request) { + adminForm.setHideTitles( + Boolean.valueOf(assessmentService.getConfigValue(AssessmentConstants.CONFIG_KEY_HIDE_TITLES))); + + return "/pages/admin/config"; + } + + @RequestMapping(value = "/saveContent", method = RequestMethod.POST) + public String saveContent(@ModelAttribute("adminForm") AdminForm adminForm, HttpServletRequest request) { + assessmentService.setConfigValue(AssessmentConstants.CONFIG_KEY_HIDE_TITLES, + String.valueOf(adminForm.isHideTitles())); + + request.setAttribute("savedSuccess", true); + return "/pages/admin/config"; + + } +} \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AdminForm.java =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AdminForm.java (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AdminForm.java (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -0,0 +1,35 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.assessment.web.form; + +public class AdminForm { + private boolean hideTitles; + + public boolean isHideTitles() { + return hideTitles; + } + + public void setHideTitles(boolean hideTitles) { + this.hideTitles = hideTitles; + } +} \ No newline at end of file Index: lams_tool_assessment/web/pages/admin/config.jsp =================================================================== diff -u --- lams_tool_assessment/web/pages/admin/config.jsp (revision 0) +++ lams_tool_assessment/web/pages/admin/config.jsp (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -0,0 +1,38 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + <fmt:message key="admin.page.title" /> + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + +
+ + \ No newline at end of file Index: lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp =================================================================== diff -u -rec62f6f6a9e56cd545c527d2fd530614b3a7e744 -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp (.../questionlist.jsp) (revision ec62f6f6a9e56cd545c527d2fd530614b3a7e744) +++ lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp (.../questionlist.jsp) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -71,6 +71,9 @@ + # + + @@ -83,6 +86,9 @@ + ${status.count}) + + Index: lams_tool_assessment/web/pages/authoring/parts/questionlistRestricted.jsp =================================================================== diff -u -r650a97ba89e1fbf54357a5a0a90cc2097e0f13f2 -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/web/pages/authoring/parts/questionlistRestricted.jsp (.../questionlistRestricted.jsp) (revision 650a97ba89e1fbf54357a5a0a90cc2097e0f13f2) +++ lams_tool_assessment/web/pages/authoring/parts/questionlistRestricted.jsp (.../questionlistRestricted.jsp) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -5,6 +5,9 @@ + +
+ # + @@ -16,6 +19,9 @@
+ ${status.count}) + Index: lams_tool_assessment/web/pages/monitoring/summary.jsp =================================================================== diff -u -r394f403c289f0fd7808c228840bead5c4e7d5d32 -r670dd8e248dc4705c92031c79d05a99559e35024 --- lams_tool_assessment/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 394f403c289f0fd7808c228840bead5c4e7d5d32) +++ lams_tool_assessment/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 670dd8e248dc4705c92031c79d05a99559e35024) @@ -387,12 +387,12 @@