Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java
===================================================================
diff -u -rdd67faab130f90be03ee1067cfecbdc550f8342b -rbcca58d5b7597693db2f6d01764f29a9145876a7
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision dd67faab130f90be03ee1067cfecbdc550f8342b)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7)
@@ -264,6 +264,7 @@
public static final String LIST_GROUPING_DATA = "listGroupingData";
public static final String LEARNER_NAME = "learnerName";
public static final String LIST_MONITORED_MARKS_CONTAINER_DTO = "listMonitoredMarksContainerDto";
+ public static final String SESSION_DTOS = "sessionDtos";
public static final String TIMEZONE = "timeZone";
public static final String QUESTION_LISTING_MODE = "questionListingMode";
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java
===================================================================
diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java (.../McOptionDTO.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java (.../McOptionDTO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7)
@@ -22,7 +22,6 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.mc;
-import org.apache.commons.lang.builder.ToStringBuilder;
import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent;
/**
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java
===================================================================
diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java (.../McQuestionDTO.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java (.../McQuestionDTO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7)
@@ -25,8 +25,6 @@
import java.util.List;
-import org.apache.commons.lang.builder.ToStringBuilder;
-
/**
* DTO that holds users attempt history data for jsp purposes
*
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java
===================================================================
diff -u -r4ec3dc2b1fbb913b43418958d45d5eb34842e933 -rbcca58d5b7597693db2f6d01764f29a9145876a7
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java (.../McUtils.java) (revision 4ec3dc2b1fbb913b43418958d45d5eb34842e933)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java (.../McUtils.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7)
@@ -24,10 +24,7 @@
import javax.servlet.http.HttpServletRequest;
-import org.lamsfoundation.lams.tool.mc.pojos.McContent;
-import org.lamsfoundation.lams.tool.mc.service.IMcService;
import org.lamsfoundation.lams.tool.mc.web.McAuthoringForm;
-import org.lamsfoundation.lams.web.util.SessionMap;
/**
* Common MCQ utility functions live here.
@@ -67,6 +64,7 @@
request.getSession().removeAttribute(MAP_QUESTIONS_CONTENT);
request.getSession().removeAttribute(IS_REMOVE_CONTENT);
request.getSession().removeAttribute(IS_REVISITING_USER);
+ request.getSession().removeAttribute(USER);
request.getSession().removeAttribute(TOOL_CONTENT_UID);
request.getSession().removeAttribute(TOOL_SESSION_ID);
request.getSession().removeAttribute(USER_ID);
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java
===================================================================
diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (.../IMcUserDAO.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (.../IMcUserDAO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7)
@@ -22,6 +22,9 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.mc.dao;
+import java.util.List;
+
+import org.lamsfoundation.lams.tool.mc.McUserMarkDTO;
import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr;
/**
@@ -42,11 +45,11 @@
* an identifier for the McQueUsr.
* @return the persistent instance of a McQueUsr or null if not found
*/
- public McQueUsr getMcUserByUID(Long uid);
+ McQueUsr getMcUserByUID(Long uid);
- public McQueUsr getMcUserBySession(Long userId, Long sessionUid);
+ McQueUsr getMcUserBySession(Long userId, Long sessionUid);
- public void saveMcUser(McQueUsr mcUser);
+ void saveMcUser(McQueUsr mcUser);
/**
*
@@ -56,7 +59,7 @@
* @param nbUser
* The instance of McQueUsr to persist.
*/
- public void updateMcUser(McQueUsr mcUser);
+ void updateMcUser(McQueUsr mcUser);
/**
*
@@ -66,8 +69,13 @@
* @param nbUser
* The instance of McQueUsr to delete.
*/
- public void removeMcUser(McQueUsr mcUser);
+ void removeMcUser(McQueUsr mcUser);
/** Get the max, min and average mark (in that order) for a session */
- public Integer[] getMarkStatisticsForSession(Long sessionUid);
+ Integer[] getMarkStatisticsForSession(Long sessionUid);
+
+ List getPagedUsersBySession(Long sessionId, int page, int size, String sortBy, String sortOrder,
+ String searchString);
+
+ int getCountPagedUsersBySession(Long sessionId, String searchString);
}
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java
===================================================================
diff -u -r961f7b9e1f0d4e83ac360e6625dcc6248b9d936b -rbcca58d5b7597693db2f6d01764f29a9145876a7
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (.../McUserDAO.java) (revision 961f7b9e1f0d4e83ac360e6625dcc6248b9d936b)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (.../McUserDAO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7)
@@ -22,9 +22,12 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.mc.dao.hibernate;
+import java.util.ArrayList;
import java.util.List;
import org.hibernate.FlushMode;
+import org.hibernate.Query;
+import org.lamsfoundation.lams.tool.mc.McUserMarkDTO;
import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO;
import org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO;
import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr;
@@ -92,4 +95,69 @@
}
+ public List getPagedUsersBySession(Long sessionId, int page, int size, String sortBy,
+ String sortOrder, String searchString) {
+
+
+ final String LOAD_USERS = "SELECT DISTINCT user.uid, user.fullname, user.lastAttemptTotalMark " +
+ "FROM "+ McQueUsr.class.getName() + " user " +
+ "WHERE user.mcSession.mcSessionId = :sessionId " +
+ " AND (user.fullname LIKE CONCAT('%', :searchString, '%')) " +
+ " ORDER BY " +
+ " CASE " +
+ " WHEN :sortBy='userName' THEN user.fullname " +
+ " WHEN :sortBy='total' THEN user.lastAttemptTotalMark " +
+ " END " + sortOrder;
+
+ Query query = getSession().createQuery(LOAD_USERS);
+ query.setLong("sessionId", sessionId);
+ // support for custom search from a toolbar
+ searchString = searchString == null ? "" : searchString;
+ query.setString("searchString", searchString);
+ query.setString("sortBy", sortBy);
+ query.setFirstResult(page * size);
+ query.setMaxResults(size);
+ List