Index: lams_build/common.properties =================================================================== diff -u -r924d4186e55122ce91b5dcaba3311ab026060e94 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_build/common.properties (.../common.properties) (revision 924d4186e55122ce91b5dcaba3311ab026060e94) +++ lams_build/common.properties (.../common.properties) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -18,7 +18,7 @@ # http://www.gnu.org/licenses/gpl.txt # put into EAR MANIFEST.MF file -project.version=4.6 +project.version=4.8 # is HTTPS in use? if so, set it to true, so JSESSIONID cookie is secured secure.cookie=false Index: lams_common/db/sql/insert_lams_config_data.sql =================================================================== diff -u -re6ae9ab9e7c1eba04125fa2dfad3dd7e58d7cf4b -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_common/db/sql/insert_lams_config_data.sql (.../insert_lams_config_data.sql) (revision e6ae9ab9e7c1eba04125fa2dfad3dd7e58d7cf4b) +++ lams_common/db/sql/insert_lams_config_data.sql (.../insert_lams_config_data.sql) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -1,20 +1,18 @@ INSERT INTO lams_configuration VALUES -('AdminScreenSize','1280x720','config.admin.screen.size','config.header.look.feel','STRING',1), ('AllowDirectAccessIntgrtnLrnr','false','config.allow.direct.access.for.integration.learners','config.header.features','BOOLEAN',1), ('AllowDirectLessonLaunch','false','config.allow.direct.lesson.launch','config.header.features','BOOLEAN',1), ('AllowKumalive','true','config.allow.kumalive','config.header.features','BOOLEAN',1), ('AllowLiveEdit','true','config.allow.live.edit','config.header.features','BOOLEAN',1), ('AntivirusEnable','false','config.av.enable','config.header.antivirus','BOOLEAN',1), ('AntivirusHost','localhost','config.av.host','config.header.antivirus','STRING',0), ('AntivirusPort','3310','config.av.port','config.header.antivirus','LONG',0), -('AuthoringScreenSize','1280x720','config.authoring.screen.size','config.header.look.feel','STRING',1), ('CleanupPreviewOlderThanDays','7','config.cleanup.preview.older.than.days','config.header.system','LONG',1), ('ConfigCacheRefreshInterval','0','config.cache.refresh','config.header.system','LONG',0), ('ContentRepositoryPath','@contentrepository.directory@','config.content.repository.path','config.header.uploads','STRING',1), ('CustomTabLink','','config.custom.tab.link','config.header.look.feel','STRING',0), ('CustomTabTitle','','config.custom.tab.title','config.header.look.feel','STRING',0), ('DefaultTheme','defaultHTML','config.default.html.theme','config.header.look.feel','STRING',1), -('DictionaryDateCreated','2021-10-25','config.dictionary.date.created','config.header.versions','STRING',1), +('DictionaryDateCreated','2023-03-25','config.dictionary.date.created','config.header.versions','STRING',1), ('DisplayPortrait','true','config.display.portrait','config.header.look.feel','BOOLEAN',0), ('DisplayPrintButton','false','config.display.print.button','config.header.features','BOOLEAN',1), ('EARDir','@ear.directory@','config.ear.dir','config.header.system','STRING',1), @@ -65,11 +63,9 @@ ('LDAPSecurityProtocol','','config.ldap.security.protocol','config.header.ldap','STRING',0), ('LDAPStateAttr','st','admin.user.state','config.header.ldap.attributes','STRING',0), ('LDAPUpdateOnLogin','true','config.ldap.update.on.login','config.header.ldap','BOOLEAN',1), -('LearnerScreenSize','1280x720','config.learner.screen.size','config.header.look.feel','STRING',1), ('LearningOutcomeQuickAddEnable','true','config.learning.outcome.add.enable','config.header.features','BOOLEAN',1), ('LockOutTime','5','config.lock.out.time','config.header.password.policy','LONG',1), ('LoginAsEnable','true','config.login.as.enable','config.header.privacy.settings','BOOLEAN',1), -('MonitorScreenSize','1280x720','config.monitor.screen.size','config.header.look.feel','STRING',1), ('PasswordExpirationMonths','12','config.password.expiration','config.header.password.policy','LONG',1), ('PasswordHistoryLimit','3','config.password.history','config.header.password.policy','LONG',1), ('PasswordPolicyLowercase','true','config.password.lowercase','config.header.password.policy','BOOLEAN',0), @@ -111,4 +107,4 @@ ('UserValidationEmail','true','config.user.validation.emails','config.header.user.validation','BOOLEAN',0), ('UserValidationFirstLastName','true','config.user.validation.first.last.name','config.header.user.validation','BOOLEAN',0), ('UserValidationUsername','true','config.user.validation.username','config.header.user.validation','BOOLEAN',0), -('Version','4.8','config.version','config.header.system','STRING',1); +('Version','4.8','config.version','config.header.system','STRING',1); \ No newline at end of file Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r466b430b11cd214ae9c8a4737ea5f6ed9253ed27 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 466b430b11cd214ae9c8a4737ea5f6ed9253ed27) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -23,8 +23,28 @@ package org.lamsfoundation.lams.monitoring.service; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TimeZone; +import java.util.TreeSet; +import java.util.Vector; + +import javax.servlet.http.HttpSession; + import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -73,8 +93,6 @@ import org.lamsfoundation.lams.monitoring.quartz.job.FinishScheduleLessonJob; import org.lamsfoundation.lams.monitoring.quartz.job.OpenScheduleGateJob; import org.lamsfoundation.lams.monitoring.quartz.job.StartScheduleLessonJob; -import org.lamsfoundation.lams.notebook.model.NotebookEntry; -import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.rating.model.ToolActivityRatingCriteria; import org.lamsfoundation.lams.security.ISecurityService; import org.lamsfoundation.lams.tool.ToolContent; @@ -107,27 +125,8 @@ import org.quartz.TriggerBuilder; import org.quartz.TriggerKey; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; -import java.util.TimeZone; -import java.util.TreeMap; -import java.util.TreeSet; -import java.util.Vector; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.ObjectNode; /** *

@@ -1168,10 +1167,6 @@ // remove lesson resources lessonDAO.deleteByProperty(LogEvent.class, "lessonId", lessonId); lessonDAO.deleteByProperty(ToolSession.class, "lesson.lessonId", lessonId); - Map notebookProperties = new TreeMap<>(); - notebookProperties.put("externalID", lessonId); - notebookProperties.put("externalIDType", CoreNotebookConstants.SCRATCH_PAD); - lessonDAO.deleteByProperties(NotebookEntry.class, notebookProperties); lessonDAO.deleteLesson(lesson); // remove each Tool activity content Index: lams_tool_assessment/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27) +++ lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -80,7 +80,6 @@ label.authoring.advance.questions.per.page = Questions per page label.authoring.advance.all.in.one.page = All in one page label.authoring.advance.shuffle.questions = Shuffle questions -label.authoring.advance.shuffle.answers = Shuffle answers label.authoring.advance.attempts.allowed = Attempts allowed label.authoring.advance.unlimited = Unlimited label.authoring.advance.allow.students.question.feedback = Allow learners to see question feedback after each question @@ -256,7 +255,7 @@ label.authoring.basic.export.qti = Export IMS QTI label.monitoring.heading = Assessment Monitoring label.maximum.number.words = Maximum number of words -label.minimum.number.words = Minimum number of words +label.minimum.number.words = Minimum number of words in a comment {0} label.info.maximum.number.words = This answer must have a maximum of {0} words. label.info.minimum.number.words = This answer must have a minimum of {0} words. label.info.max.and.min.number.words = This answer must have a minimal of {0} and maximum of {1} words. @@ -460,4 +459,30 @@ label.monitoring.user.summary.marker.comment = Comment label.monitoring.user.summary.marker = Marker label.activity.monitoring = Activity details -message.authoring.rat.questions.sync = You have edited questions in this activity. Do you want to synchronise the changes with the corresponding TBL RAT activity? \ No newline at end of file +# Accessibility labels. Might not be shown in the screen but it is to be read by screen readers. +label.stars.rate = Select stars to rate +# Accessibility labels. Might not be shown in the screen but it is to be read by screen readers. +button.post.comment = Post comment +label.comment.minimum.number.words = Minimum number of words in a comment {0} +label.my.progress = My progress +label.lesson.name = Lesson name +label.side.menu = Side menu +label.close.and.return = Close and return to the course +label.lams.logo = LAMS logo +label.support.activities = Support activities +label.progress = Progress +label.skip.to.main.content = Skip to the main content +label.your.lesson.completion = Your lesson completion +label.your.portrait = Your profile portrait +label.activity.name = Activity name +label.confirm = Confirm +titleHeading.reflection = Notebook entry +label.rating.textarea.tip = Leave a comment... +label.click.to.open = Click to open +label.support.activity = Support activity +label.completed.activity = Activity completed +label.current.activity = Current activity +label.not.started.activity = Activity not reached yet +label.authoring.advance.shuffle.answers = Shuffle answers +label.learning.submit.all.confirm = Are you certain you wish to submit your responses? Once submitted, you will not have the ability to alter them. +message.authoring.rat.questions.sync = You've made edits to the questions in this activity. Would you like to sync these changes with the corresponding TBL RAT activity? \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java =================================================================== diff -u -r7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -127,8 +127,6 @@ public static final String ATTR_QUESTION_UID = "questionUid"; - public static final String ATTR_NEXT_ACTIVITY_URL = "nextActivityUrl"; - public static final String ATTR_SUMMARY_LIST = "summaryList"; public static final String ATTR_USER_SUMMARY = "userSummary"; @@ -179,14 +177,6 @@ public static final String ATTR_IS_GROUPED_ACTIVITY = "isGroupedActivity"; - public static final String ATTR_REFLECTION_ON = "reflectOn"; - - public static final String ATTR_REFLECTION_INSTRUCTION = "reflectInstructions"; - - public static final String ATTR_REFLECTION_ENTRY = "reflectEntry"; - - public static final String ATTR_REFLECT_LIST = "reflectList"; - public static final String ATTR_ACTIVITY_EVALUATION = "activityEvaluation"; public static final String ATTR_TOOL_OUTPUT_DEFINITIONS = "toolOutputDefinitions"; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r466b430b11cd214ae9c8a4737ea5f6ed9253ed27 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 466b430b11cd214ae9c8a4737ea5f6ed9253ed27) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -23,10 +23,33 @@ package org.lamsfoundation.lams.tool.assessment.service; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.nio.charset.StandardCharsets; +import java.security.InvalidParameterException; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.UUID; +import java.util.function.Function; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -50,9 +73,6 @@ import org.lamsfoundation.lams.logevent.LearnerInteractionEvent; import org.lamsfoundation.lams.logevent.service.ILearnerInteractionService; import org.lamsfoundation.lams.logevent.service.ILogEventService; -import org.lamsfoundation.lams.notebook.model.NotebookEntry; -import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; -import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; import org.lamsfoundation.lams.outcome.Outcome; import org.lamsfoundation.lams.outcome.OutcomeMapping; import org.lamsfoundation.lams.outcome.service.IOutcomeService; @@ -85,7 +105,6 @@ import org.lamsfoundation.lams.tool.assessment.dto.OptionDTO; import org.lamsfoundation.lams.tool.assessment.dto.QuestionDTO; import org.lamsfoundation.lams.tool.assessment.dto.QuestionSummary; -import org.lamsfoundation.lams.tool.assessment.dto.ReflectDTO; import org.lamsfoundation.lams.tool.assessment.dto.UserSummary; import org.lamsfoundation.lams.tool.assessment.dto.UserSummaryItem; import org.lamsfoundation.lams.tool.assessment.model.Assessment; @@ -123,32 +142,10 @@ import org.lamsfoundation.lams.util.hibernate.HibernateSessionManager; import org.springframework.web.util.UriUtils; -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.nio.charset.StandardCharsets; -import java.security.InvalidParameterException; -import java.sql.Timestamp; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.SortedMap; -import java.util.SortedSet; -import java.util.TreeMap; -import java.util.TreeSet; -import java.util.UUID; -import java.util.function.Function; -import java.util.regex.Pattern; -import java.util.stream.Collectors; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.ObjectNode; /** * @author Andrey Balan @@ -193,8 +190,6 @@ private IExportToolContentService exportContentService; - private ICoreNotebookService coreNotebookService; - private IEventNotificationService eventNotificationService; private IQbService qbService; @@ -1293,56 +1288,6 @@ } @Override - public Long createNotebookEntry(Long sessionId, Integer userId, String entryText) { - return coreNotebookService.createNotebookEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL, - AssessmentConstants.TOOL_SIGNATURE, userId, "", entryText); - } - - @Override - public NotebookEntry getEntry(Long sessionId, Integer userId) { - List list = coreNotebookService.getEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL, - AssessmentConstants.TOOL_SIGNATURE, userId); - if ((list == null) || list.isEmpty()) { - return null; - } else { - return list.get(0); - } - } - - @Override - public void updateEntry(NotebookEntry notebookEntry) { - coreNotebookService.updateEntry(notebookEntry); - } - - @Override - public List getReflectList(Long contentId) { - List reflectList = new LinkedList<>(); - - List sessionList = assessmentSessionDao.getByContentId(contentId); - for (AssessmentSession session : sessionList) { - Long sessionId = session.getSessionId(); - // get all users in this session - List users = assessmentUserDao.getBySessionID(sessionId); - for (AssessmentUser user : users) { - - NotebookEntry entry = getEntry(sessionId, user.getUserId().intValue()); - if (entry != null) { - ReflectDTO ref = new ReflectDTO(user); - ref.setReflect(entry.getEntry()); - Date postedDate = (entry.getLastModified() != null) - ? entry.getLastModified() - : entry.getCreateDate(); - ref.setDate(postedDate); - reflectList.add(ref); - } - - } - } - - return reflectList; - } - - @Override public String finishToolSession(Long toolSessionId, Long userId) throws AssessmentApplicationException { //mark user as finished AssessmentUser user = assessmentUserDao.getUserByUserIDAndSessionID(userId, toolSessionId); @@ -3315,14 +3260,6 @@ return; } - for (AssessmentSession session : assessmentSessionDao.getByContentId(toolContentId)) { - List entries = coreNotebookService.getEntry(session.getSessionId(), - CoreNotebookConstants.NOTEBOOK_TOOL, AssessmentConstants.TOOL_SIGNATURE); - for (NotebookEntry entry : entries) { - coreNotebookService.deleteEntry(entry); - } - } - assessmentDao.delete(assessment); } @@ -3362,16 +3299,10 @@ AssessmentUser user = assessmentUserDao.getUserByUserIDAndSessionID(userId.longValue(), session.getSessionId()); if (user != null) { - if (resetActivityCompletionOnly) { user.setSessionFinished(false); assessmentUserDao.saveObject(user); } else { - NotebookEntry entry = getEntry(session.getSessionId(), userId); - if (entry != null) { - assessmentDao.removeObject(NotebookEntry.class, entry.getUid()); - } - if ((session.getGroupLeader() != null) && session.getGroupLeader().getUid().equals(user.getUid())) { session.setGroupLeader(null); } @@ -3746,14 +3677,6 @@ this.userManagementService = userManagementService; } - public ICoreNotebookService getCoreNotebookService() { - return coreNotebookService; - } - - public void setCoreNotebookService(ICoreNotebookService coreNotebookService) { - this.coreNotebookService = coreNotebookService; - } - public void setLearnerService(ILearnerService learnerService) { this.learnerService = learnerService; } @@ -3857,9 +3780,6 @@ assessment.setInstructions(toolContentJSON.get(RestTags.INSTRUCTIONS).asText()); assessment.setCreated(new Date()); - assessment.setReflectOnActivity( - JsonUtil.optBoolean(toolContentJSON, RestTags.REFLECT_ON_ACTIVITY, Boolean.FALSE)); - assessment.setReflectInstructions(JsonUtil.optString(toolContentJSON, RestTags.REFLECT_INSTRUCTIONS)); assessment.setAllowGradesAfterAttempt( JsonUtil.optBoolean(toolContentJSON, "allowGradesAfterAttempt", Boolean.FALSE)); assessment.setAllowHistoryResponses( @@ -3886,9 +3806,6 @@ assessment.setNumbered(JsonUtil.optBoolean(toolContentJSON, "numbered", Boolean.TRUE)); assessment.setPassingMark(JsonUtil.optInt(toolContentJSON, "passingMark", 0)); assessment.setQuestionsPerPage(JsonUtil.optInt(toolContentJSON, "questionsPerPage", 0)); - assessment.setReflectInstructions(JsonUtil.optString(toolContentJSON, RestTags.REFLECT_INSTRUCTIONS, "")); - assessment.setReflectOnActivity( - JsonUtil.optBoolean(toolContentJSON, RestTags.REFLECT_ON_ACTIVITY, Boolean.FALSE)); assessment.setShuffled(JsonUtil.optBoolean(toolContentJSON, "shuffled", Boolean.FALSE)); assessment.setRelativeTimeLimit(JsonUtil.optInt(toolContentJSON, "timeLimit", 0)); assessment.setUseSelectLeaderToolOuput( Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java =================================================================== diff -u -r61ba91daf34855e5d8abbae23949a215396900a4 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision 61ba91daf34855e5d8abbae23949a215396900a4) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -33,7 +33,6 @@ import org.lamsfoundation.lams.lesson.service.ILessonService; import org.lamsfoundation.lams.logevent.LearnerInteractionEvent; import org.lamsfoundation.lams.logevent.service.ILearnerInteractionService; -import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.qb.model.QbOption; import org.lamsfoundation.lams.qb.model.QbQuestion; import org.lamsfoundation.lams.rating.dto.ItemRatingDTO; @@ -56,11 +55,9 @@ import org.lamsfoundation.lams.tool.assessment.model.AssessmentSession; import org.lamsfoundation.lams.tool.assessment.model.AssessmentUser; import org.lamsfoundation.lams.tool.assessment.model.QuestionReference; -import org.lamsfoundation.lams.tool.assessment.service.AssessmentApplicationException; import org.lamsfoundation.lams.tool.assessment.service.IAssessmentService; import org.lamsfoundation.lams.tool.assessment.util.AssessmentSessionComparator; import org.lamsfoundation.lams.tool.assessment.util.SequencableComparator; -import org.lamsfoundation.lams.tool.assessment.web.form.ReflectionForm; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; @@ -77,7 +74,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.HttpStatus; 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; import org.springframework.web.bind.annotation.RequestParam; @@ -302,14 +298,6 @@ //showResults if user has finished the last result boolean showResults = (lastResult != null) && (lastResult.getFinishDate() != null); - // get notebook entry - String entryText = new String(); - AssessmentUser notebookCreator = (groupLeader == null) ? user : groupLeader; - NotebookEntry notebookEntry = service.getEntry(toolSessionId, notebookCreator.getUserId().intValue()); - if (notebookEntry != null) { - entryText = notebookEntry.getEntry(); - } - // basic information sessionMap.put(AssessmentConstants.ATTR_TITLE, assessment.getTitle()); sessionMap.put(AssessmentConstants.ATTR_INSTRUCTIONS, assessment.getInstructions()); @@ -321,10 +309,6 @@ sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, toolSessionId); sessionMap.put(AssessmentConstants.ATTR_USER, user); sessionMap.put(AttributeNames.ATTR_MODE, mode); - // reflection information - sessionMap.put(AssessmentConstants.ATTR_REFLECTION_ON, assessment.isReflectOnActivity()); - sessionMap.put(AssessmentConstants.ATTR_REFLECTION_INSTRUCTION, assessment.getReflectInstructions()); - sessionMap.put(AssessmentConstants.ATTR_REFLECTION_ENTRY, entryText); Boolean isLastActivity = (Boolean) sessionMap.get(AttributeNames.ATTR_IS_LAST_ACTIVITY); if (isLastActivity == null) { @@ -691,28 +675,19 @@ * Finish learning session. */ @RequestMapping("/finish") - public String finish(HttpServletRequest request) { + public void finish(HttpServletRequest request, HttpServletResponse response) throws IOException { SessionMap sessionMap = getSessionMap(request); - String nextActivityUrl = null; - try { - HttpSession ss = SessionManager.getSession(); - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - Long userID = user.getUserID().longValue(); - Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + Long userID = user.getUserID().longValue(); + Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); - nextActivityUrl = service.finishToolSession(sessionId, userID); - request.setAttribute(AssessmentConstants.ATTR_NEXT_ACTIVITY_URL, nextActivityUrl); - } catch (AssessmentApplicationException e) { - log.error("Failed get next activity url:" + e.getMessage()); - } - - return "pages/learning/finish"; + String nextActivityUrl = service.finishToolSession(sessionId, userID); + response.sendRedirect(nextActivityUrl); } /** * auto saves responses - * - * @throws IOException */ @RequestMapping("/autoSaveAnswers") @ResponseStatus(HttpStatus.OK) @@ -768,59 +743,6 @@ return responseJSON.toString(); } - /** - * Display empty reflection form. - */ - @RequestMapping("/newReflection") - public String newReflection(@ModelAttribute("reflectionForm") ReflectionForm refForm, HttpServletRequest request) { - - // get session value - String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID); - HttpSession ss = SessionManager.getSession(); - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - - refForm.setUserID(user.getUserID()); - refForm.setSessionMapID(sessionMapID); - - // get the existing reflection entry - SessionMap sessionMap = getSessionMap(request); - Long toolSessionID = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); - NotebookEntry entry = service.getEntry(toolSessionID, user.getUserID()); - - if (entry != null) { - refForm.setEntryText(entry.getEntry()); - } - - return "pages/learning/notebook"; - } - - /** - * Submit reflection form input database. - */ - @RequestMapping("/submitReflection") - public String submitReflection(@ModelAttribute("reflectionForm") ReflectionForm refForm, - HttpServletRequest request) { - Integer userId = refForm.getUserID(); - - SessionMap sessionMap = getSessionMap(request); - Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); - - // check for existing notebook entry - NotebookEntry entry = service.getEntry(sessionId, userId); - - if (entry == null) { - // create new entry - service.createNotebookEntry(sessionId, userId, refForm.getEntryText()); - } else { - // update existing entry - entry.setEntry(refForm.getEntryText()); - entry.setLastModified(new Date()); - service.updateEntry(entry); - } - - return finish(request); - } - // ************************************************************************************* // Private method // ************************************************************************************* @@ -1343,9 +1265,10 @@ sessionMap.put(AssessmentConstants.ATTR_ASSESSMENT, assessment); sessionMap.put(AssessmentConstants.CONFIG_KEY_HIDE_TITLES, Boolean.valueOf(service.getConfigValue(AssessmentConstants.CONFIG_KEY_HIDE_TITLES))); - boolean newUI = WebUtil.readBooleanParam(request, "newUI", false); + + boolean isBootstrap5 = WebUtil.readBooleanParam(request, "bootstrap5", false); - return "pages/learning/results" + (embedded ? "/allquestions" + (newUI ? "5" : "") : ""); + return "pages/learning/" + (isBootstrap5 ? "results" : "resultsbootstrap3") + (embedded ? "/allquestions" : ""); } @RequestMapping(path = "/logLearnerInteractionEvent", method = RequestMethod.POST) Index: lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/service/LeaderselectionService.java =================================================================== diff -u -r466b430b11cd214ae9c8a4737ea5f6ed9253ed27 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/service/LeaderselectionService.java (.../LeaderselectionService.java) (revision 466b430b11cd214ae9c8a4737ea5f6ed9253ed27) +++ lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/service/LeaderselectionService.java (.../LeaderselectionService.java) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -23,16 +23,18 @@ package org.lamsfoundation.lams.tool.leaderselection.service; -import com.fasterxml.jackson.databind.node.ObjectNode; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.SortedMap; + import org.apache.log4j.Logger; import org.lamsfoundation.lams.confidencelevel.ConfidenceLevelDTO; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException; import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; -import org.lamsfoundation.lams.notebook.model.NotebookEntry; -import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; -import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; import org.lamsfoundation.lams.rest.RestTags; import org.lamsfoundation.lams.rest.ToolRestManager; import org.lamsfoundation.lams.tool.ToolCompletionStatus; @@ -56,11 +58,7 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.JsonUtil; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.SortedMap; +import com.fasterxml.jackson.databind.node.ObjectNode; /** * An implementation of the ILeaderselectionService interface. @@ -85,8 +83,6 @@ private IExportToolContentService exportContentService; - private ICoreNotebookService coreNotebookService; - private LeaderselectionOutputFactory leaderselectionOutputFactory; /* ************ Methods from ToolSessionManager ************* */ @@ -203,13 +199,6 @@ log.warn("Can not remove the tool content as it does not exist, ID: " + toolContentId); return; } - for (LeaderselectionSession session : content.getLeaderselectionSessions()) { - List entries = coreNotebookService.getEntry(session.getSessionId(), - CoreNotebookConstants.NOTEBOOK_TOOL, LeaderselectionConstants.TOOL_SIGNATURE); - for (NotebookEntry entry : entries) { - coreNotebookService.deleteEntry(entry); - } - } leaderselectionDAO.delete(content); } @@ -370,21 +359,6 @@ } @Override - public Long createNotebookEntry(Long id, Integer idType, String signature, Integer userID, String entry) { - return coreNotebookService.createNotebookEntry(id, idType, signature, userID, "", entry); - } - - @Override - public NotebookEntry getEntry(Long uid) { - return coreNotebookService.getEntry(uid); - } - - @Override - public void updateEntry(Long uid, String entry) { - coreNotebookService.updateEntry(uid, "", entry); - } - - @Override public Long getDefaultContentIdBySignature(String toolSignature) { long toolContentId = toolService.getToolDefaultContentIdBySignature(toolSignature); if (toolContentId == 0) { @@ -556,14 +530,6 @@ this.exportContentService = exportContentService; } - public ICoreNotebookService getCoreNotebookService() { - return coreNotebookService; - } - - public void setCoreNotebookService(ICoreNotebookService coreNotebookService) { - this.coreNotebookService = coreNotebookService; - } - public LeaderselectionOutputFactory getLeaderselectionOutputFactory() { return leaderselectionOutputFactory; } Index: lams_tool_scratchie/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_tool_scratchie/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27) +++ lams_tool_scratchie/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -152,7 +152,7 @@ label.your.answer = Your answer: label.other.groups = Other groups: label.all = All -monitor.summary.date.restriction = Date and time restriction +monitor.summary.date.restriction = Deadline monitor.summary.when.date.restriction.is.set = If a date and time restriction is set, learners will not be able to submit assignments after this date. monitor.summary.after.date = Date and time: monitor.summary.set.restriction = Set restriction @@ -312,4 +312,24 @@ label.minutes = minutes label.hours = hour(s) label.incorrect.answer = Incorrect answer -message.authoring.rat.questions.sync = You have edited questions in this activity. Do you want to synchronise the changes with the corresponding TBL RAT activity? \ No newline at end of file +label.side.menu = Side menu +label.close.and.return = Close and return to the course +label.lams.logo = LAMS logo +label.support.activities = Support activities +label.my.progress = My progress +label.progress = Progress +label.skip.to.main.content = Skip to the main content +label.your.lesson.completion = Your lesson completion +label.your.portrait = Your profile portrait +label.lesson.name = Lesson name +label.activity.name = Activity name +label.confirm = Confirm +label.close = Close +label.cancel = Cancel +label.notebook = Notebook entry +label.click.to.open = Click to open +label.support.activity = Support activity +label.completed.activity = Activity completed +label.current.activity = Current activity +label.not.started.activity = Activity not reached yet +message.authoring.rat.questions.sync = You've made edits to the questions in this activity. Would you like to sync these changes with the corresponding TBL RAT activity? \ No newline at end of file Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java =================================================================== diff -u -r7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27 -r5ac2673214d4a3e9d831e1c468e235015b8bd0b2 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 7521e0cd5b5f4b01d188ca0ddad1e5f59d3bde27) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 5ac2673214d4a3e9d831e1c468e235015b8bd0b2) @@ -35,8 +35,6 @@ // for action forward name public static final String SUCCESS = "success"; - public static final String NOTEBOOK = "notebook"; - public static final String ERROR = "error"; public static final String DEFINE_LATER = "definelater"; @@ -193,7 +191,7 @@ public static final String ATTR_REFERENCES_SEQUENCE_IDS = "sequenceIds"; public static final String ATTR_HAS_MATCHING_RAT_ACTIVITY = "hasMatchingRatActivity"; - + //flux management public static final String ANSWERS_UPDATED_SINK_NAME = "scratchie learner answers updated"; public static final String STUDENT_CHOICES_UPDATE_FLUX_NAME = "scratchie student choices updated";