Index: lams_tool_scratchie/.classpath
===================================================================
diff -u -r5a5f3640c4d5fdf0c302347e7d6b502a972fd9cc -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/.classpath (.../.classpath) (revision 5a5f3640c4d5fdf0c302347e7d6b502a972fd9cc)
+++ lams_tool_scratchie/.classpath (.../.classpath) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -20,5 +20,6 @@
+
Index: lams_tool_scratchie/conf/xdoclet/struts-actions.xml
===================================================================
diff -u -rc7569597546126af159f169353e68e91241b7f10 -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision c7569597546126af159f169353e68e91241b7f10)
+++ lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -246,7 +246,11 @@
type="org.lamsfoundation.lams.tool.scratchie.web.action.MonitoringAction"
parameter="itemSummary" >
-
+
+
+
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java
===================================================================
diff -u -rfc1a34815de226b286ef1adfaf83eef4f96d049b -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision fc1a34815de226b286ef1adfaf83eef4f96d049b)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -152,6 +152,10 @@
public static final String ATTR_GROUP_LEADER = "groupLeader";
public static final String ATTR_IS_USER_LEADER = "isUserLeader";
+
+ public static final String PARAM_NOT_A_NUMBER = "nan";
+
+ public static final String PARAM_MARK = "mark";
public static final String LEARNER_MARK = "learner.mark";
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20130912.sql
===================================================================
diff -u
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20130912.sql (revision 0)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20130912.sql (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -0,0 +1,13 @@
+-- Turn off autocommit, so nothing is committed if there is an error
+SET AUTOCOMMIT = 0;
+
+----------------------Put all sql statements below here-------------------------
+
+-- LDEV-xxx(LDEV-3110) Ability to modify marks in monitor
+ALTER TABLE tl_lascrt11_user ADD COLUMN mark INTEGER DEFAULT 0;
+
+----------------------Put all sql statements above here-------------------------
+
+-- If there were no errors, commit and restore autocommit to on
+COMMIT;
+SET AUTOCOMMIT = 1;
\ No newline at end of file
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java
===================================================================
diff -u -rc7569597546126af159f169353e68e91241b7f10 -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java (.../ScratchieUser.java) (revision c7569597546126af159f169353e68e91241b7f10)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java (.../ScratchieUser.java) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -47,12 +47,12 @@
private String loginName;
private boolean sessionFinished;
private boolean scratchingFinished;
+ private int mark;
private ScratchieSession session;
private Scratchie scratchie;
// =============== NON Persisit value: for display use ===========
- private int mark;
private int totalAttempts;
public ScratchieUser() {
@@ -221,7 +221,19 @@
public void setScratchingFinished(boolean scratchingFinished) {
this.scratchingFinished = scratchingFinished;
}
+
+ /**
+ * @hibernate.property column="mark"
+ * @return
+ */
+ public int getMark() {
+ return mark;
+ }
+ public void setMark(int mark) {
+ this.mark = mark;
+ }
+
public boolean equals(Object obj) {
if (this == obj)
return true;
@@ -239,14 +251,6 @@
return new HashCodeBuilder().append(uid).append(firstName).append(lastName).append(loginName).toHashCode();
}
- public int getMark() {
- return mark;
- }
-
- public void setMark(int mark) {
- this.mark = mark;
- }
-
public int getTotalAttempts() {
return totalAttempts;
}
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml
===================================================================
diff -u -rc7569597546126af159f169353e68e91241b7f10 -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml (.../scratchieApplicationContext.xml) (revision c7569597546126af159f169353e68e91241b7f10)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml (.../scratchieApplicationContext.xml) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -93,6 +93,8 @@
+
+
@@ -117,19 +119,21 @@
+ PROPAGATION_REQUIRED,readOnly
+ PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
- PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
- PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java
===================================================================
diff -u -rfc1a34815de226b286ef1adfaf83eef4f96d049b -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision fc1a34815de226b286ef1adfaf83eef4f96d049b)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -218,11 +218,12 @@
Set getItemsWithIndicatedScratches(Long toolSessionId, ScratchieUser user);
/**
- * Leader has scratched the specified answer. Will store this scratch for all users in his group.
+ * Leader has scratched the specified answer. Will store this scratch for all users in his group. It will also
+ * update all the marks.
*/
- void setAnswerAccess(Long scratchieItemUid, Long sessionId);
+ void logAnswerAccess(ScratchieUser leader, Long scratchieItemUid);
- int getUserMark(ScratchieSession session, Long userUid);
+ void recalculateMarkForSession(ScratchieUser leader, boolean isPropagateToGradebook);
/**
* Mark all users in agroup as ScratchingFinished so that users can't continue scratching after this.
@@ -346,4 +347,6 @@
* @return
*/
Set getAllLearners(Long contentId);
+
+ void changeUserMark(Long userId, Long userUid, Integer newMark);
}
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java
===================================================================
diff -u -rfc1a34815de226b286ef1adfaf83eef4f96d049b -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision fc1a34815de226b286ef1adfaf83eef4f96d049b)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -84,12 +84,11 @@
*/
private ToolOutput getUserMark(IScratchieService scratchieService, Long toolSessionId, Long learnerId) {
- ScratchieSession session = scratchieService.getScratchieSessionBySessionId(toolSessionId);
ScratchieUser user = scratchieService.getUserByIDAndSession(learnerId, toolSessionId);
- int userMark = scratchieService.getUserMark(session, user.getUid());
+ int userMark = user.getMark();
- return new ToolOutput(ScratchieConstants.LEARNER_MARK, getI18NText(
- ScratchieConstants.LEARNER_MARK, true), userMark);
+ return new ToolOutput(ScratchieConstants.LEARNER_MARK, getI18NText(ScratchieConstants.LEARNER_MARK, true),
+ userMark);
}
}
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java
===================================================================
diff -u -rfc1a34815de226b286ef1adfaf83eef4f96d049b -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision fc1a34815de226b286ef1adfaf83eef4f96d049b)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -57,6 +57,7 @@
import org.lamsfoundation.lams.contentrepository.service.IRepositoryService;
import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials;
import org.lamsfoundation.lams.events.IEventNotificationService;
+import org.lamsfoundation.lams.gradebook.service.IGradebookService;
import org.lamsfoundation.lams.learning.service.ILearnerService;
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
@@ -105,6 +106,7 @@
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.ExcelCell;
import org.lamsfoundation.lams.util.MessageService;
+import org.lamsfoundation.lams.util.audit.IAuditService;
/**
*
@@ -143,6 +145,10 @@
private IUserManagementService userManagementService;
private IExportToolContentService exportContentService;
+
+ private IGradebookService gradebookService;
+
+ private IAuditService auditService;
private ICoreNotebookService coreNotebookService;
@@ -273,7 +279,6 @@
@Override
public void deleteScratchieAttachment(Long attachmentUid) {
scratchieAttachmentDao.removeObject(ScratchieAttachment.class, attachmentUid);
-
}
@Override
@@ -383,8 +388,34 @@
scratchieAnswerVisitDao.saveObject(userLog);
}
}
+
+ //update user mark
+ user.setMark(leader.getMark());
+ this.saveUser(user);
}
+
+ @Override
+ public void changeUserMark(Long userId, Long sessionId, Integer newMark) {
+ if (newMark == null) {
+ return;
+ }
+
+ ScratchieUser user = this.getUserByIDAndSession(userId, sessionId);
+ int oldMark = user.getMark();
+
+ user.setMark(newMark);
+ this.saveUser(user);
+ // propagade changes to Gradebook
+ gradebookService.updateActivityMark(new Double(newMark), null, user.getUserId().intValue(), user.getSession()
+ .getSessionId(), true);
+
+ //record mark change with audit service
+ auditService.logMarkChange(ScratchieConstants.TOOL_SIGNATURE, user.getUserId(), user.getLoginName(), ""
+ + oldMark, "" + newMark);
+
+ }
+
@Override
public List exportBySessionId(Long sessionId) {
ScratchieSession session = scratchieSessionDao.getSessionBySessionId(sessionId);
@@ -475,24 +506,63 @@
}
@Override
- public void setAnswerAccess(Long answerUid, Long sessionId) {
+ public void logAnswerAccess(ScratchieUser leader, Long answerUid) {
+ ScratchieAnswer answer = getScratchieAnswerById(answerUid);
+ Long sessionId = leader.getSession().getSessionId();
+
List users = getUsersBySession(sessionId);
for (ScratchieUser user : users) {
ScratchieAnswerVisitLog log = scratchieAnswerVisitDao.getLog(answerUid, user.getUserId());
if (log == null) {
log = new ScratchieAnswerVisitLog();
- ScratchieAnswer answer = getScratchieAnswerById(answerUid);
log.setScratchieAnswer(answer);
log.setUser(user);
log.setSessionId(sessionId);
log.setAccessDate(new Timestamp(new Date().getTime()));
scratchieAnswerVisitDao.saveObject(log);
}
}
+
+ recalculateMarkForSession(leader, false);
}
+
+ /**
+ * Recalculate mark for leader and sets it to all members of a group
+ *
+ * @param leader
+ * @param answerUid
+ */
+ public void recalculateMarkForSession(ScratchieUser leader, boolean isPropagateToGradebook) {
+
+ List userLogs = scratchieAnswerVisitDao.getLogsByScratchieUser(leader.getUid());
+ Scratchie scratchie = leader.getSession().getScratchie();
+ Set items = scratchie.getScratchieItems();
+ //clculate mark
+ int mark = 0;
+ if (!items.isEmpty()) {
+ for (ScratchieItem item : items) {
+ mark += getUserMarkPerItem(scratchie, item, userLogs);
+ }
+ }
+
+ //change mark for all learners in a group
+ Long sessionId = leader.getSession().getSessionId();
+ List users = getUsersBySession(sessionId);
+ for (ScratchieUser user : users) {
+ user.setMark(mark);
+ this.saveUser(user);
+
+ if (isPropagateToGradebook) {
+ // propagade changes to Gradebook
+ gradebookService.updateActivityMark(new Double(mark), null, user.getUserId().intValue(), user.getSession()
+ .getSessionId(), true);
+ }
+ }
+ }
+
@Override
public ScratchieAnswer getScratchieAnswerById(Long answerUid) {
return (ScratchieAnswer) userManagementService.findById(ScratchieAnswer.class, answerUid);
@@ -557,8 +627,8 @@
@Override
public List getMonitoringSummary(Long contentId) {
List groupSummaryList = new ArrayList();
-
List sessionList = scratchieSessionDao.getByContentId(contentId);
+
for (ScratchieSession session : sessionList) {
Long sessionId = session.getSessionId();
// one new summary for one session.
@@ -569,10 +639,6 @@
int totalAttempts = scratchieAnswerVisitDao.getLogCountTotal(sessionId, user.getUserId());
user.setTotalAttempts(totalAttempts);
-
- // for displaying purposes if there is no attemps we assign -1 which will be shown as "-"
- int mark = (totalAttempts == 0) ? -1 : getUserMark(session, user.getUid());
- user.setMark(mark);
}
groupSummary.setUsers(users);
@@ -673,31 +739,13 @@
return isItemUnraveled;
}
- @Override
- public int getUserMark(ScratchieSession session, Long userUid) {
-
- //created to reduce number of queries to DB
- List userLogs = scratchieAnswerVisitDao.getLogsByScratchieUser(userUid);
-
- Scratchie scratchie = session.getScratchie();
- Set items = scratchie.getScratchieItems();
-
- int mark = 0;
- for (ScratchieItem item : items) {
- mark += getUserMarkPerItem(scratchie, item, userLogs);
- }
-
- return mark;
- }
-
/**
*
*
* @param scratchie
* @param item
* @param userLogs
- * if this parameter is provided - uses logs from it, otherwise queries DB. (The main reason to have this
- * parameter is to reduce number of queries to DB)
+ * uses list of logs to reduce number of queries to DB
* @return
*/
private int getUserMarkPerItem(Scratchie scratchie, ScratchieItem item, List userLogs) {
@@ -1154,7 +1202,7 @@
row = new ExcelCell[4];
row[0] = new ExcelCell(user.getFirstName() + " " + user.getLastName(), false);
row[1] = new ExcelCell(new Long(user.getTotalAttempts()), false);
- Long mark = (user.getMark() == -1) ? null : new Long(user.getMark());
+ Long mark = (user.getTotalAttempts() == 0) ? null : new Long(user.getMark());
row[2] = new ExcelCell(mark, false);
row[3] = new ExcelCell(summary.getSessionName(), false);
rowList.add(row);
@@ -1281,7 +1329,7 @@
Long attempts = (long) scratchieAnswerVisitDao.getLogCountTotal(sessionId, userId);
row[2] = new ExcelCell(attempts, false);
row[3] = new ExcelCell(getMessage("label.mark") + ":", false);
- row[4] = new ExcelCell(new Long(getUserMark(session, groupLeader.getUid())), false);
+ row[4] = new ExcelCell(new Long(groupLeader.getMark()), false);
rowList.add(row);
row = new ExcelCell[1];
@@ -1893,6 +1941,14 @@
public void setExportContentService(IExportToolContentService exportContentService) {
this.exportContentService = exportContentService;
}
+
+ public void setGradebookService(IGradebookService gradebookService) {
+ this.gradebookService = gradebookService;
+ }
+
+ public void setAuditService(IAuditService auditService) {
+ this.auditService = auditService;
+ }
public IUserManagementService getUserManagementService() {
return userManagementService;
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java
===================================================================
diff -u -rfc1a34815de226b286ef1adfaf83eef4f96d049b -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision fc1a34815de226b286ef1adfaf83eef4f96d049b)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -296,9 +296,9 @@
Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID);
ScratchieSession toolSession = service.getScratchieSessionBySessionId(toolSessionId);
- ScratchieUser user = getCurrentUser(toolSessionId);
+ ScratchieUser leader = getCurrentUser(toolSessionId);
// only leaders are allowed to scratch answers
- if (!service.isUserGroupLeader(user, toolSession)) {
+ if (!service.isUserGroupLeader(leader, toolSession)) {
return null;
}
@@ -308,7 +308,7 @@
return mapping.findForward(ScratchieConstants.ERROR);
}
- service.setAnswerAccess(answer.getUid(), toolSessionId);
+ service.logAnswerAccess(leader, answer.getUid());
JSONObject JSONObject = new JSONObject();
JSONObject.put(ScratchieConstants.ATTR_ANSWER_CORRECT, answer.isCorrect());
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java
===================================================================
diff -u -rfc1a34815de226b286ef1adfaf83eef4f96d049b -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision fc1a34815de226b286ef1adfaf83eef4f96d049b)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -35,20 +35,18 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import org.lamsfoundation.lams.notebook.model.NotebookEntry;
-import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
import org.lamsfoundation.lams.tool.scratchie.ScratchieConstants;
import org.lamsfoundation.lams.tool.scratchie.dto.GroupSummary;
import org.lamsfoundation.lams.tool.scratchie.dto.ReflectDTO;
import org.lamsfoundation.lams.tool.scratchie.model.Scratchie;
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieAnswer;
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem;
-import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession;
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser;
import org.lamsfoundation.lams.tool.scratchie.service.IScratchieService;
import org.lamsfoundation.lams.util.ExcelCell;
@@ -78,6 +76,9 @@
if (param.equals("itemSummary")) {
return itemSummary(mapping, form, request, response);
}
+ if (param.equals("saveUserMark")) {
+ return saveUserMark(mapping, form, request, response);
+ }
if (param.equals("exportExcel")) {
return exportExcel(mapping, form, request, response);
}
@@ -151,12 +152,29 @@
request.setAttribute(ScratchieConstants.ATTR_SUMMARY_LIST, summaryList);
return mapping.findForward(ScratchieConstants.SUCCESS);
}
+
+ private ActionForward saveUserMark(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) {
+ if ((request.getParameter(ScratchieConstants.PARAM_NOT_A_NUMBER) == null)
+ && !StringUtils.isEmpty(request.getParameter(ScratchieConstants.ATTR_USER_ID))
+ && !StringUtils.isEmpty(request.getParameter(ScratchieConstants.PARAM_SESSION_ID))) {
+ initializeScratchieService();
+
+ Long userId = WebUtil.readLongParam(request, ScratchieConstants.ATTR_USER_ID);
+ Long sessionId = WebUtil.readLongParam(request, ScratchieConstants.PARAM_SESSION_ID);
+ Integer newMark = Integer.valueOf(request.getParameter(ScratchieConstants.PARAM_MARK));
+ service.changeUserMark(userId, sessionId, newMark);
+ }
+
+ return null;
+ }
+
/**
* Exports tool results into excel.
* @throws IOException
*/
- public ActionForward exportExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ private ActionForward exportExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws IOException {
initializeScratchieService();
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/servlet/PopulateMarksServlet.java
===================================================================
diff -u
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/servlet/PopulateMarksServlet.java (revision 0)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/servlet/PopulateMarksServlet.java (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -0,0 +1,90 @@
+/****************************************************************
+ * 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
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.tool.scratchie.web.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession;
+import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser;
+import org.lamsfoundation.lams.tool.scratchie.service.IScratchieService;
+import org.lamsfoundation.lams.tool.scratchie.service.ScratchieServiceProxy;
+
+public class PopulateMarksServlet extends HttpServlet {
+
+ private static Logger log = Logger.getLogger(PopulateMarksServlet.class);
+
+ private IScratchieService service;
+
+ @Override
+ public void init() throws ServletException {
+ service = ScratchieServiceProxy.getScratchieService(getServletContext());
+ super.init();
+ }
+
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+
+ PrintWriter out = response.getWriter();
+ int sessionCount = 0;
+ try {
+
+
+ for (int i = 1; i < 20000; i++) {
+ ScratchieSession session = service.getScratchieSessionBySessionId(new Long(i));
+
+ if (session != null) {
+ sessionCount++;
+
+ ScratchieUser leader = session.getGroupLeader();
+ if ((leader != null)) {
+ service.recalculateMarkForSession(leader, true);
+ log.debug("recalculateMarkForSession uid:" + session.getUid());
+ out.println("recalculateMarkForSession uid:" + session.getUid());
+ }
+ }
+
+ }
+
+ } catch (Exception e) {
+ log.error("LAMS ERROR: " + e.getMessage() + e.getCause());
+ out.println("LAMS ERROR: " + e.getMessage() + e.getCause());
+ throw new ServletException("LAMS ERROR: " + e.getMessage() + e.getCause());
+ }
+
+ out.println("OK. Total number of sessions processed " + sessionCount);
+
+ }
+
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+ IOException {
+ doGet(request, response);
+ }
+
+}
Index: lams_tool_scratchie/web/WEB-INF/web.xml
===================================================================
diff -u -r6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18 -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/web/WEB-INF/web.xml (.../web.xml) (revision 6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18)
+++ lams_tool_scratchie/web/WEB-INF/web.xml (.../web.xml) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -92,6 +92,11 @@
+ populateMarks
+ org.lamsfoundation.lams.tool.scratchie.web.servlet.PopulateMarksServlet
+
+
+
completeItem
org.lamsfoundation.lams.tool.scratchie.web.servlet.CompleteItemServlet
@@ -164,6 +169,11 @@
exportPortfolio
/exportPortfolio
+
+
+ populateMarks
+ /populateMarks
+
completeItem
Index: lams_tool_scratchie/web/pages/export/parts/exportTeacher.jsp
===================================================================
diff -u -r99545d1824fcf0b2ea23a6bdce46aab3b288bff5 -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/web/pages/export/parts/exportTeacher.jsp (.../exportTeacher.jsp) (revision 99545d1824fcf0b2ea23a6bdce46aab3b288bff5)
+++ lams_tool_scratchie/web/pages/export/parts/exportTeacher.jsp (.../exportTeacher.jsp) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -51,7 +51,7 @@
sessionId:"${user.session.sessionId}",
userName:"${user.lastName}, ${user.firstName}",
totalAttempts:"${user.totalAttempts}",
- mark:" - ${user.mark} "
+ mark:" - ${user.mark} "
});
Index: lams_tool_scratchie/web/pages/monitoring/statistic.jsp
===================================================================
diff -u -rded32af47a9de99cb3319fdd7461906323f7e293 -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/web/pages/monitoring/statistic.jsp (.../statistic.jsp) (revision ded32af47a9de99cb3319fdd7461906323f7e293)
+++ lams_tool_scratchie/web/pages/monitoring/statistic.jsp (.../statistic.jsp) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -38,7 +38,7 @@
- -
+ -
${user.mark}
|
Index: lams_tool_scratchie/web/pages/monitoring/summary.jsp
===================================================================
diff -u -rc7569597546126af159f169353e68e91241b7f10 -raab18261022d7746e10b3651bd3c864356c58a8b
--- lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision c7569597546126af159f169353e68e91241b7f10)
+++ lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision aab18261022d7746e10b3651bd3c864356c58a8b)
@@ -8,17 +8,25 @@
#user-dropdown-div {padding-left: 30px; margin-top: -5px; margin-bottom: 50px;}
.bottom-buttons {margin: 20px 20px 0px; padding-bottom: 20px;}
.section-header {padding-left: 20px; margin-bottom: 15px; margin-top: 60px;}
+ .ui-jqgrid tr.jqgrow td {
+ white-space: normal !important;
+ height:auto;
+ vertical-align:text-top;
+ padding-top:2px;
+ }