Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java
===================================================================
diff -u -re1a335ed6fa2072efc12776a3573856a386938dc -rf5e874d7fa041f79705ddc6a1799d2188ae24bc9
--- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java (.../SpreadsheetConstants.java) (revision e1a335ed6fa2072efc12776a3573856a386938dc)
+++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java (.../SpreadsheetConstants.java) (revision f5e874d7fa041f79705ddc6a1799d2188ae24bc9)
@@ -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
===================================================================
diff -u
--- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dbupdates/patch20151123.sql (revision 0)
+++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dbupdates/patch20151123.sql (revision f5e874d7fa041f79705ddc6a1799d2188ae24bc9)
@@ -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
===================================================================
diff -u -ra7fed1be51941ace379dbb695d52bd08a315dae6 -rf5e874d7fa041f79705ddc6a1799d2188ae24bc9
--- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.java (.../SpreadsheetMark.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6)
+++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.java (.../SpreadsheetMark.java) (revision f5e874d7fa041f79705ddc6a1799d2188ae24bc9)
@@ -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
===================================================================
diff -u -rbe07c35c372d904a65581d98660e73f3b13b69db -rf5e874d7fa041f79705ddc6a1799d2188ae24bc9
--- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java (.../LearningAction.java) (revision be07c35c372d904a65581d98660e73f3b13b69db)
+++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java (.../LearningAction.java) (revision f5e874d7fa041f79705ddc6a1799d2188ae24bc9)
@@ -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
===================================================================
diff -u -r216fed3c7edfdf10855196a0e9450c68f6ed4485 -rf5e874d7fa041f79705ddc6a1799d2188ae24bc9
--- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 216fed3c7edfdf10855196a0e9450c68f6ed4485)
+++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision f5e874d7fa041f79705ddc6a1799d2188ae24bc9)
@@ -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
===================================================================
diff -u -rd21e7fac21ab19cb876cdf2673297d3204614828 -rf5e874d7fa041f79705ddc6a1799d2188ae24bc9
--- lams_tool_spreadsheet/web/pages/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision d21e7fac21ab19cb876cdf2673297d3204614828)
+++ lams_tool_spreadsheet/web/pages/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision f5e874d7fa041f79705ddc6a1799d2188ae24bc9)
@@ -1,4 +1,5 @@
<%@ include file="/common/taglibs.jsp"%>
+<%@ page import="org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants"%>