Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java,v
diff -u -r1.112.2.1 -r1.112.2.2
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java 3 Jul 2015 16:24:04 -0000 1.112.2.1
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java 5 Jan 2016 18:12:17 -0000 1.112.2.2
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java,v
diff -u -r1.1 -r1.1.2.1
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java 17 May 2014 19:54:42 -0000 1.1
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java 5 Jan 2016 18:12:17 -0000 1.1.2.1
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java,v
diff -u -r1.1 -r1.1.2.1
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java 17 May 2014 19:54:42 -0000 1.1
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java 5 Jan 2016 18:12:17 -0000 1.1.2.1
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java,v
diff -u -r1.61.2.2 -r1.61.2.3
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java 2 Feb 2015 15:30:32 -0000 1.61.2.2
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java 5 Jan 2016 18:12:17 -0000 1.61.2.3
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java,v
diff -u -r1.18 -r1.18.2.1
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java 17 May 2014 19:54:43 -0000 1.18
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java 5 Jan 2016 18:12:17 -0000 1.18.2.1
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java,v
diff -u -r1.24.2.2 -r1.24.2.3
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java 1 Dec 2014 21:11:33 -0000 1.24.2.2
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java 5 Jan 2016 18:12:17 -0000 1.24.2.3
@@ -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