Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java,v diff -u -r1.6 -r1.7 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java 17 Nov 2015 04:07:27 -0000 1.6 +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java 23 Nov 2015 11:35:08 -0000 1.7 @@ -97,4 +97,6 @@ public static final int SORT_BY_USERNAME_DESC = 3; public static final int SORT_BY_MARKED_ASC = 4; public static final int SORT_BY_MARKED_DESC = 5; + + public static final int MARK_NUM_DEC_PLACES = 2; } Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dbupdates/patch20151123.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dbupdates/patch20151123.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dbupdates/patch20151123.sql 23 Nov 2015 11:35:08 -0000 1.1 @@ -0,0 +1,14 @@ +-- 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-3612 Marks should accept decimal +ALTER IGNORE TABLE tl_lasprd10_spreadsheet_mark CHANGE COLUMN marks marks FLOAT NULL DEFAULT NULL; + +----------------------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; \ No newline at end of file Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.java,v diff -u -r1.2 -r1.3 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.java 11 Jul 2008 08:19:55 -0000 1.2 +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.java 23 Nov 2015 11:35:08 -0000 1.3 @@ -45,7 +45,7 @@ /** identifier field */ private Long uid; - private String marks; + private Float marks; private String comments; private Date dateMarksReleased; @@ -54,7 +54,7 @@ } /** full constructor */ - public SpreadsheetMark(String comments, String marks, Date dateMarksReleased) { + public SpreadsheetMark(String comments, Float marks, Date dateMarksReleased) { this.comments = comments; this.marks = marks; this.dateMarksReleased = dateMarksReleased; @@ -74,11 +74,11 @@ /** * @hibernate.property column="marks" */ - public String getMarks() { + public Float getMarks() { return this.marks; } - public void setMarks(String marks) { + public void setMarks(Float marks) { this.marks = marks; } @@ -148,5 +148,6 @@ .append(getDateMarksReleased()) .toHashCode(); } + } \ No newline at end of file Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java,v diff -u -r1.7 -r1.8 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java 17 Jan 2014 22:12:25 -0000 1.7 +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java 23 Nov 2015 11:35:08 -0000 1.8 @@ -328,8 +328,8 @@ // get the existing reflection entry ISpreadsheetService submitFilesService = getSpreadsheetService(); - SessionMap map = (SessionMap)request.getSession().getAttribute(sessionMapID); - Long toolSessionID = (Long)map.get(AttributeNames.PARAM_TOOL_SESSION_ID); + SessionMap sessionMap = (SessionMap)request.getSession().getAttribute(sessionMapID); + Long toolSessionID = (Long)sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); NotebookEntry entry = submitFilesService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, SpreadsheetConstants.TOOL_SIGNATURE, user.getUserID()); if (entry != null) { Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java,v diff -u -r1.11 -r1.12 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java 21 Nov 2015 12:16:28 -0000 1.11 +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java 23 Nov 2015 11:35:08 -0000 1.12 @@ -72,6 +72,7 @@ import org.lamsfoundation.lams.tool.spreadsheet.service.ISpreadsheetService; import org.lamsfoundation.lams.tool.spreadsheet.web.form.MarkForm; import org.lamsfoundation.lams.util.DateUtil; +import org.lamsfoundation.lams.util.NumberUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; @@ -182,7 +183,8 @@ if ( user.getUserModifiedSpreadsheet() != null ) { responseRow.put("userModifiedSpreadsheet", "true"); if ( user.getUserModifiedSpreadsheet().getMark() != null ) { - responseRow.put("mark", user.getUserModifiedSpreadsheet().getMark().getMarks()); + responseRow.put("mark", NumberUtil.formatLocalisedNumber(user.getUserModifiedSpreadsheet().getMark().getMarks(), + request.getLocale(), SpreadsheetConstants.MARK_NUM_DEC_PLACES) ); } } @@ -326,15 +328,8 @@ cell = row.createCell(count++); if (mark.getMarks() != null) { - String marks = ""; - try { - NumberFormat format = NumberFormat.getInstance(); - format.setMaximumFractionDigits(1); - marks = format.format(NumberUtils.createFloat(mark.getMarks())); - } - catch (Exception e) { - } - cell.setCellValue(marks); + cell.setCellValue(NumberUtil.formatLocalisedNumber(mark.getMarks(), request.getLocale(), + SpreadsheetConstants.MARK_NUM_DEC_PLACES)); } else { cell.setCellValue(""); @@ -394,7 +389,8 @@ markForm.setUserUid(user.getUid()); if (user.getUserModifiedSpreadsheet().getMark() != null) { SpreadsheetMark mark = user.getUserModifiedSpreadsheet().getMark(); - markForm.setMarks(mark.getMarks()); + markForm.setMarks(NumberUtil.formatLocalisedNumber(mark.getMarks(), request.getLocale(), + SpreadsheetConstants.MARK_NUM_DEC_PLACES)); markForm.setComments(mark.getComments()); } @@ -404,12 +400,34 @@ public ActionForward saveMark(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { MarkForm markForm = (MarkForm) form; - ActionErrors errors = validateSpreadsheetMark(markForm); + Float markFloat = null; + String markComment = null; + + // get the mark details, validating as we go. + ActionErrors errors = new ActionErrors(); + String markStr = markForm.getMarks(); + if (StringUtils.isBlank(markStr)) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(SpreadsheetConstants.ERROR_MSG_MARKS_BLANK)); + } else { + try { + markFloat = NumberUtil.getLocalisedFloat(markStr, request.getLocale()); + } + catch (Exception e) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(SpreadsheetConstants.ERROR_MSG_MARKS_INVALID_NUMBER)); + } + } + + markComment = markForm.getComments(); + if (StringUtils.isBlank(markComment)) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(SpreadsheetConstants.ERROR_MSG_COMMENTS_BLANK)); + } + if (!errors.isEmpty()) { this.addErrors(request, errors); return mapping.findForward("editMark"); } + // passed validation so proceed to save Long userUid = markForm.getUserUid(); SpreadsheetUser user = getSpreadsheetService().getUser(userUid); if (user != null && user.getUserModifiedSpreadsheet() != null) { @@ -422,13 +440,15 @@ else { //edit mark = user.getUserModifiedSpreadsheet().getMark(); } - mark.setMarks(markForm.getMarks()); - mark.setComments(markForm.getComments()); + mark.setMarks(markFloat); + mark.setComments(markComment); + getSpreadsheetService().saveOrUpdateUserModifiedSpreadsheet(user.getUserModifiedSpreadsheet()); } - request.setAttribute("mark",markForm.getMarks()); + request.setAttribute("mark",NumberUtil.formatLocalisedNumber(markFloat, request.getLocale(), + SpreadsheetConstants.MARK_NUM_DEC_PLACES)); // reduce it to the standard number of decimal places for redisplay request.setAttribute("userUid",userUid); //set session map ID so that itemlist.jsp can get sessionMAP @@ -458,30 +478,4 @@ return (ISpreadsheetService) wac.getBean(SpreadsheetConstants.RESOURCE_SERVICE); } - /** - * Vaidate UserModifiedSpreadsheet mark - * @param itemForm - * @return - */ - private ActionErrors validateSpreadsheetMark(MarkForm markForm) { - ActionErrors errors = new ActionErrors(); - - String mark = markForm.getMarks(); - if (StringUtils.isBlank(mark)) { - errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(SpreadsheetConstants.ERROR_MSG_MARKS_BLANK)); - } - - try { - Long.parseLong(mark); - } - catch (Exception e) { - errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(SpreadsheetConstants.ERROR_MSG_MARKS_INVALID_NUMBER)); - } - - if (StringUtils.isBlank(markForm.getComments())) { - errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(SpreadsheetConstants.ERROR_MSG_COMMENTS_BLANK)); - } - - return errors; - } } Index: lams_tool_spreadsheet/web/pages/export/exportportfolio.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/web/pages/export/exportportfolio.jsp,v diff -u -r1.5 -r1.6 --- lams_tool_spreadsheet/web/pages/export/exportportfolio.jsp 1 Apr 2014 17:49:23 -0000 1.5 +++ lams_tool_spreadsheet/web/pages/export/exportportfolio.jsp 23 Nov 2015 11:35:08 -0000 1.6 @@ -1,4 +1,5 @@ <%@ include file="/common/taglibs.jsp"%> +<%@ page import="org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants"%> Index: lams_tool_spreadsheet/web/pages/export/summarylist.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/web/pages/export/summarylist.jsp,v diff -u -r1.3 -r1.4 --- lams_tool_spreadsheet/web/pages/export/summarylist.jsp 1 Apr 2014 17:49:23 -0000 1.3 +++ lams_tool_spreadsheet/web/pages/export/summarylist.jsp 23 Nov 2015 11:35:08 -0000 1.4 @@ -59,7 +59,7 @@ - + Index: lams_tool_spreadsheet/web/pages/learning/learning.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/web/pages/learning/learning.jsp,v diff -u -r1.10 -r1.11 --- lams_tool_spreadsheet/web/pages/learning/learning.jsp 9 Oct 2014 14:52:00 -0000 1.10 +++ lams_tool_spreadsheet/web/pages/learning/learning.jsp 23 Nov 2015 11:35:08 -0000 1.11 @@ -1,6 +1,7 @@ <%@ include file="/common/taglibs.jsp"%> +<%@ page import="org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants"%> @@ -19,7 +20,6 @@ <c:set var="toolSessionID" value="${sessionMap.toolSessionID}" /> <c:set var="spreadsheet" value="${sessionMap.spreadsheet}" /> <c:set var="finishedLock" value="${sessionMap.finishedLock}" /> - <c:set var="user" value="${sessionMap.user}" /> <script type="text/javascript"> <!-- @@ -110,7 +110,7 @@ <fmt:message key="label.learning.not.available" /> </c:when> <c:otherwise> - <c:out value="${mark.marks}" escapeXml="false" /> + <fmt:formatNumber type="number" maxFractionDigits="<%= SpreadsheetConstants.MARK_NUM_DEC_PLACES %>" value="${mark.marks}"/> </c:otherwise> </c:choose> </td> Index: lams_tool_spreadsheet/web/pages/monitoring/parts/viewallmarks.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/web/pages/monitoring/parts/viewallmarks.jsp,v diff -u -r1.2 -r1.3 --- lams_tool_spreadsheet/web/pages/monitoring/parts/viewallmarks.jsp 14 Jul 2008 04:32:53 -0000 1.2 +++ lams_tool_spreadsheet/web/pages/monitoring/parts/viewallmarks.jsp 23 Nov 2015 11:35:08 -0000 1.3 @@ -2,6 +2,8 @@ "http://www.w3.org/TR/html4/strict.dtd"> <%@include file="/common/taglibs.jsp"%> +<%@ page import="org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants"%> + <lams:html> <lams:head> <title><fmt:message key="activity.title" /> @@ -60,7 +62,7 @@ - +