Index: lams_central/web/css/defaultHTML_learner.css =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/css/defaultHTML_learner.css,v diff -u -r1.30 -r1.31 --- lams_central/web/css/defaultHTML_learner.css 25 Dec 2013 00:02:24 -0000 1.30 +++ lams_central/web/css/defaultHTML_learner.css 31 Jan 2014 19:53:19 -0000 1.31 @@ -322,9 +322,7 @@ .warning { color: #cc0000; padding:8px 10px 10px 40px; - margin-top: 25px; - margin-left: auto; - margin-right: auto; + margin: 25px auto 10px; text-align: left; font-weight: normal; background: url('../images/css/warning.gif') no-repeat #ffeae0 10px 8px; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java,v diff -u -r1.34 -r1.35 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java 17 Jan 2014 21:35:00 -0000 1.34 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java 31 Jan 2014 19:53:21 -0000 1.35 @@ -139,13 +139,7 @@ * Read assessment data from database and put them into HttpSession. It will redirect to init.do directly after this * method run successfully. * - * This method will avoid read database again and lost un-saved resouce question lost when user "refresh page", - * @throws ServletException - * @throws NoSuchMethodException - * @throws InvocationTargetException - * @throws InstantiationException - * @throws IllegalAccessException - * + * This method will avoid read database again and lost un-saved resouce question lost when user "refresh page". */ @SuppressWarnings("unchecked") private ActionForward start(ActionMapping mapping, ActionForm form, HttpServletRequest request, @@ -372,7 +366,7 @@ //check if need to display results page if ((dbResultCount > 0) && finishedLock) { // display results page - populateResultsPage(sessionMap); + prepareResultsPageData(sessionMap); } return mapping.findForward(AssessmentConstants.SUCCESS); @@ -446,7 +440,7 @@ storeUserAnswersIntoDatabase(sessionMap, false); // populate info for displaying results page - populateResultsPage(sessionMap); + prepareResultsPageData(sessionMap); Assessment assessment = (Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT); //calculate whether isResubmitAllowed @@ -459,12 +453,6 @@ boolean isResubmitAllowed = ((attemptsAllowed > dbResultCount) | (attemptsAllowed == 0)); sessionMap.put(AssessmentConstants.ATTR_IS_RESUBMIT_ALLOWED, isResubmitAllowed); - //calculate whether isUserFailed - AssessmentResult result = (AssessmentResult) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT_RESULT); - int passingMark = assessment.getPassingMark(); - boolean isUserFailed = ((passingMark != 0) && (passingMark > result.getGrade())); - sessionMap.put(AssessmentConstants.ATTR_IS_USER_FAILED, isUserFailed); - sessionMap.put(AssessmentConstants.ATTR_FINISHED_LOCK, true); request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMapID); @@ -487,7 +475,10 @@ sessionMap.put(AssessmentConstants.ATTR_FINISHED_LOCK, false); sessionMap.put(AssessmentConstants.ATTR_PAGE_NUMBER, 1); sessionMap.put(AssessmentConstants.ATTR_QUESTION_NUMBERING_OFFSET, 1); - request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMapID); + request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMapID); + //clear isUserFailed indicator + sessionMap.put(AssessmentConstants.ATTR_IS_USER_FAILED, false); + return mapping.findForward(AssessmentConstants.SUCCESS); } @@ -727,7 +718,10 @@ } } - private void populateResultsPage(SessionMap sessionMap){ + /** + * Prepare data for displaying results page + */ + private void prepareResultsPageData(SessionMap sessionMap){ ArrayList> pagedQuestions = (ArrayList>) sessionMap .get(AssessmentConstants.ATTR_PAGED_QUESTIONS); Assessment assessment = (Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT); @@ -773,6 +767,12 @@ lastBorder = overallFeedback.getGradeBoundary(); } } + + //calculate whether user has failed this attempt + int passingMark = assessment.getPassingMark(); + boolean isUserFailed = ((passingMark != 0) && (passingMark > result.getGrade())); + sessionMap.put(AssessmentConstants.ATTR_IS_USER_FAILED, isUserFailed); + sessionMap.put(AssessmentConstants.ATTR_ASSESSMENT_RESULT, result); } Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/learning/learning.jsp,v diff -u -r1.28 -r1.29 --- lams_tool_assessment/web/pages/learning/learning.jsp 17 Jan 2014 21:35:01 -0000 1.28 +++ lams_tool_assessment/web/pages/learning/learning.jsp 31 Jan 2014 19:53:21 -0000 1.29 @@ -48,7 +48,7 @@ @@ -344,69 +344,6 @@ - - - <%@ page import="org.lamsfoundation.lams.util.HashUtil" %> - <%@ page import="org.lamsfoundation.lams.web.util.AttributeNames" %> - <%@ page import="org.lamsfoundation.lams.web.session.SessionManager" %> - <%@ page import="org.lamsfoundation.lams.usermanagement.dto.UserDTO" %> - <%@ page import="java.text.SimpleDateFormat" %> - <%@ page import="java.util.Date" %> - <%@ page import="org.springframework.web.context.WebApplicationContext" %> - <%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %> - <%@ page import="org.lamsfoundation.lams.tool.assessment.service.IAssessmentService" %> - <%@ page import="org.lamsfoundation.lams.util.WebUtil" %> - <%@ page import="org.lamsfoundation.lams.tool.assessment.AssessmentConstants" %> - <%@ page import="org.lamsfoundation.lams.web.util.SessionMap" %> - <%@ page import="org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO" %> - <%@ page import="org.lamsfoundation.lams.lesson.service.ILessonService" %> - <%@ page import="java.net.URLEncoder" %> - <% - //specify serverId - String serverId = "aupwvi"; - //specify serverKey - String serverKey = "255PF776rned"; - - HttpSession ss = SessionManager.getSession(); - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - String userLogin = user.getLogin(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHH:mm:ss"); - String trxdate = format.format(new Date()); - - String hashValue = HashUtil.sha1(userLogin.toLowerCase() + serverId.toLowerCase() + serverKey.toLowerCase() + trxdate.toLowerCase()); - - //get lessonId and lessonName - String sessionMapID = request.getParameter(AssessmentConstants.ATTR_SESSION_MAP_ID); - String lessonId = "n/a"; - String lessonName = "n/a"; - if (sessionMapID != null) { - SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); - WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext()); - ILessonService lessonService = (ILessonService) wac.getBean("lessonService"); - - LessonDetailsDTO lessonDetailsDTO = lessonService.getLessonDetailsFromSessionID(toolSessionId); - lessonId = lessonDetailsDTO.getLessonID().toString(); - lessonName = URLEncoder.encode(lessonDetailsDTO.getLessonName(), "UTF-8"); - } - %> - - - - - F - - - P - - - - https://up.wvstepwise.org/swaupws/swaupservices.asmx/ReceiveExamResult?ServerID=<%=serverId%>&HashValue=<%=hashValue%>&UserID=<%=userLogin%>&Result=${result}&activityName=${assessment.title}[${assessment.uid}]&TrxDateTime=<%=trxdate%>&LessonId=<%=lessonId%>&LessonName=<%=lessonName%> - - - - -