Index: lams_tool_task/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
diff -u -rfd67b35d233f4ae667c65d43a42c382fb2cd58d4 -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision fd67b35d233f4ae667c65d43a42c382fb2cd58d4)
+++ lams_tool_task/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -165,6 +165,7 @@
monitor.summary.date.restriction.removed =Deadline has been removed
label.submit =Finish
label.download =Download
+label.confirm =Confirm
#======= End labels: Exported 159 labels for en AU =====
Index: lams_tool_task/conf/xdoclet/struts-actions.xml
===================================================================
diff -u -r8b97231e320c0c5b674f07c14da711f232ba9e1c -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 8b97231e320c0c5b674f07c14da711f232ba9e1c)
+++ lams_tool_task/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -254,18 +254,14 @@
parameter="setVerifiedByMonitor">
-
-
+ parameter="getPagedUsers" >
-
-
-
+ parameter="getPagedUsersByItem" >
-
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java
===================================================================
diff -u -r8b97231e320c0c5b674f07c14da711f232ba9e1c -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java (.../TaskListConstants.java) (revision 8b97231e320c0c5b674f07c14da711f232ba9e1c)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java (.../TaskListConstants.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -25,7 +25,7 @@
public class TaskListConstants {
public static final String TOOL_SIGNATURE = "latask10";
- public static final String RESOURCE_SERVICE = "lataskTaskListService";
+ public static final String TASKLIST_SERVICE = "lataskTaskListService";
public static final String TOOL_CONTENT_HANDLER_NAME = "lataskTaskListToolContentHandler";
public static final int COMPLETED = 1;
@@ -37,38 +37,31 @@
//for parameters' name
public static final String PARAM_TOOL_CONTENT_ID = "toolContentID";
- public static final String PARAM_TOOL_SESSION_ID = "toolSessionID";
- public static final String PARAM_FILE_VERSION_ID = "fileVersionId";
- public static final String PARAM_FILE_UUID = "fileUuid";
+ public static final String PARAM_TOOL_SESSION_ID = "toolSessionID";
public static final String PARAM_ITEM_INDEX = "itemIndex";
public static final String PARAM_SEQUENCE_ID = "sequenceId";
- public static final String PARAM_RESOURCE_ITEM_UID = "itemUid";
- public static final String PARAM_CURRENT_INSTRUCTION_INDEX = "insIdx";
- public static final String PARAM_OPEN_URL_POPUP = "popupUrl";
+ public static final String PARAM_ITEM_UID = "itemUid";
public static final String PARAM_TITLE = "title";
//for request attribute name
public static final String ATTR_TOOL_CONTENT_ID = "toolContentID";
public static final String ATTR_TOOL_SESSION_ID = "toolSessionID";
- public static final String ATTR_RESOURCE_ITEM_LIST = "taskListList";
+ public static final String ATTR_TASKLIST_ITEM_LIST = "taskListList";
public static final String ATTR_CONDITION_LIST = "conditionList";
- public static final String ATTR_DELETED_RESOURCE_ITEM_LIST = "deleteTaskListList";
+ public static final String ATTR_DELETED_TASKLIST_ITEM_LIST = "deleteTaskListList";
public static final String ATTR_DELETED_CONDITION_LIST = "deleteConditionList";
- public static final String ATT_LEARNING_OBJECT = "cpPackage";
- public static final String ATTR_RESOURCE_REVIEW_URL = "taskListItemReviewUrl";
- public static final String ATTR_RESOURCE = "taskList";
+ public static final String ATTR_TASKLIST = "taskList";
public static final String ATTR_RUN_AUTO = "runAuto";
- public static final String ATTR_RESOURCE_ITEM_UID = "itemUid";
+ public static final String ATTR_ITEM_UID = "itemUid";
public static final String ATTR_NEXT_ACTIVITY_URL = "nextActivityUrl";
- public static final String ATTR_SUMMARY_LIST = "summaryList";
+ public static final String ATTR_MONITOR_VERIFICATION_REQUIRED = "monitorVerificationRequired";
+ public static final String ATTR_SESSION_DTOS = "sessionDtos";
public static final String ATTR_ITEM_SUMMARY = "itemSummary";
public static final String ATTR_ITEM_SUMMARY_LIST = "itemSummaryList";
public static final String ATTR_USER_LIST = "userList";
public static final String ATTR_FINISH_LOCK = "finishedLock";
public static final String ATTR_SESSION_MAP_ID = "sessionMapID";
- public static final String ATTR_RESOURCE_FORM = "taskListForm";
- public static final String ATTR_TASKLIST_FORM = "taskListItemForm";
- public static final String ATTR_FILE_TYPE_FLAG = "fileTypeFlag";
+ public static final String ATTR_TASKLIST_FORM = "taskListForm";
public static final String ATTR_TITLE = "title";
public static final String ATTR_USER_FINISHED = "userFinished";
public static final String ATTR_USER_VERIFIED_BY_MONITOR = "userVerifiedByMonitor";
@@ -96,7 +89,6 @@
public static final String ERROR_MSG_UPLOAD_FAILED = "error.upload.failed";
public static final String PAGE_EDITABLE = "isPageEditable";
- public static final String MODE_AUTHOR_SESSION = "author_session";
public static final String ATTR_REFLECTION_ON = "reflectOn";
public static final String ATTR_REFLECTION_INSTRUCTION = "reflectInstructions";
public static final String ATTR_REFLECTION_ENTRY = "reflectEntry";
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListItemVisitDAOHibernate.java
===================================================================
diff -u -r4227424058633c04349f03d61622e6ba22f5826c -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListItemVisitDAOHibernate.java (.../TaskListItemVisitDAOHibernate.java) (revision 4227424058633c04349f03d61622e6ba22f5826c)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListItemVisitDAOHibernate.java (.../TaskListItemVisitDAOHibernate.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -37,67 +37,52 @@
* @see org.lamsfoundation.lams.tool.taskList.dao.TaskListItemVisitDAO
*/
@Repository
-public class TaskListItemVisitDAOHibernate extends LAMSBaseDAO implements TaskListItemVisitDAO{
-
- private static final String FIND_BY_ITEM_AND_USER = "from " + TaskListItemVisitLog.class.getName()
- + " as r where r.user.userId = ? and r.taskListItem.uid=?";
+public class TaskListItemVisitDAOHibernate extends LAMSBaseDAO implements TaskListItemVisitDAO {
- private static final String FIND_BY_ITEM_BYSESSION = "from " + TaskListItemVisitLog.class.getName()
- + " as r where r.sessionId = ? and r.taskListItem.uid=?";
-
- private static final String FIND_TASKS_COMPLETED_COUNT_BY_USER = "select count(*) from " + TaskListItemVisitLog.class.getName()
- + " as r where r.complete=true and r.sessionId=? and r.user.userId =?";
+ private static final String FIND_BY_ITEM_AND_USER = "from " + TaskListItemVisitLog.class.getName()
+ + " as r where r.user.userId = ? and r.taskListItem.uid=?";
-// private static final String FIND_SUMMARY = "select v.taskListItem.uid, count(v.taskListItem) from "
-// + TaskListItemVisitLog.class.getName() + " as v , "
-// + TaskListSession.class.getName() + " as s, "
-// + TaskList.class.getName() + " as r "
-// +" where v.sessionId = s.sessionId "
-// +" and s.taskList.uid = r.uid "
-// +" and r.contentId =? "
-// +" group by v.sessionId, v.taskListItem.uid ";
-
- /**
- * {@inheritDoc}
- */
- public TaskListItemVisitLog getTaskListItemLog(Long itemUid,Long userId){
- List list = doFind(FIND_BY_ITEM_AND_USER,new Object[]{userId,itemUid});
- if(list == null || list.size() ==0)
- return null;
- return (TaskListItemVisitLog) list.get(0);
- }
+ private static final String FIND_BY_ITEM_BYSESSION = "from " + TaskListItemVisitLog.class.getName()
+ + " as r where r.sessionId = ? and r.taskListItem.uid=?";
- /**
- * {@inheritDoc}
- */
- public int getTasksCompletedCountByUser(Long toolSessionId ,Long userUid) {
- List list = doFind(FIND_TASKS_COMPLETED_COUNT_BY_USER, new Object[]{toolSessionId, userUid});
- if(list == null || list.size() ==0)
- return 0;
- return ((Number) list.get(0)).intValue();
- }
+ private static final String FIND_COUNT_COMPLETED_TASKS_BY_USER = "select count(*) from "
+ + TaskListItemVisitLog.class.getName()
+ + " as r where r.complete=true and r.sessionId=? and r.user.userId =?";
-// public Map getSummary(Long contentId) {
-//
-// // Note: Hibernate 3.1 query.uniqueResult() returns Integer, Hibernate 3.2 query.uniqueResult() returns Long
-// List result = doFind(FIND_SUMMARY,contentId);
-// Map summaryList = new HashMap (result.size());
-// for(Object[] list : result){
-// if ( list[1] != null ) {
-// summaryList.put((Long)list[0],new Integer(((Number)list[1]).intValue()));
-// }
-// }
-// return summaryList;
-//
-// }
+ private static final String FIND_COUNT_COMPLETED_TASKS_BY_SESSION_AND_ITEM = "select count(*) from "
+ + TaskListItemVisitLog.class.getName()
+ + " as r where r.complete=true and r.sessionId=? and r.taskListItem.uid =?";
- /**
- * {@inheritDoc}
- */
- @SuppressWarnings("unchecked")
- public List getTaskListItemLogBySession(Long sessionId, Long itemUid) {
-
- return (List) doFind(FIND_BY_ITEM_BYSESSION,new Object[]{sessionId,itemUid});
- }
+ @Override
+ public TaskListItemVisitLog getTaskListItemLog(Long itemUid, Long userId) {
+ List list = doFind(FIND_BY_ITEM_AND_USER, new Object[] { userId, itemUid });
+ if (list == null || list.size() == 0)
+ return null;
+ return (TaskListItemVisitLog) list.get(0);
+ }
+ @Override
+ public int getCountCompletedTasksByUser(Long toolSessionId, Long userUid) {
+ List list = doFind(FIND_COUNT_COMPLETED_TASKS_BY_USER, new Object[] { toolSessionId, userUid });
+ if (list == null || list.size() == 0)
+ return 0;
+ return ((Number) list.get(0)).intValue();
+ }
+
+ @Override
+ public int getCountCompletedTasksBySessionAndItem(Long toolSessionId, Long itemUid) {
+ List list = doFind(FIND_COUNT_COMPLETED_TASKS_BY_SESSION_AND_ITEM,
+ new Object[] { toolSessionId, itemUid });
+ if (list == null || list.size() == 0)
+ return 0;
+ return ((Number) list.get(0)).intValue();
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public List getTaskListItemLogBySession(Long sessionId, Long itemUid) {
+
+ return (List) doFind(FIND_BY_ITEM_BYSESSION, new Object[] { sessionId, itemUid });
+ }
+
}
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListUserDAOHibernate.java
===================================================================
diff -u -r4227424058633c04349f03d61622e6ba22f5826c -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListUserDAOHibernate.java (.../TaskListUserDAOHibernate.java) (revision 4227424058633c04349f03d61622e6ba22f5826c)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListUserDAOHibernate.java (.../TaskListUserDAOHibernate.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -23,10 +23,19 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.taskList.dao.hibernate;
+import java.sql.Timestamp;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
import java.util.List;
+import org.hibernate.Query;
+import org.hibernate.SQLQuery;
import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO;
import org.lamsfoundation.lams.tool.taskList.dao.TaskListUserDAO;
+import org.lamsfoundation.lams.tool.taskList.dto.TaskListUserDTO;
import org.lamsfoundation.lams.tool.taskList.model.TaskListUser;
import org.springframework.stereotype.Repository;
@@ -37,38 +46,161 @@
* @see org.lamsfoundation.lams.tool.taskList.dao.TaskListUserDAO
*/
@Repository
-public class TaskListUserDAOHibernate extends LAMSBaseDAO implements TaskListUserDAO{
+public class TaskListUserDAOHibernate extends LAMSBaseDAO implements TaskListUserDAO {
+
+ private static final String FIND_BY_USER_ID_CONTENT_ID = "from " + TaskListUser.class.getName()
+ + " as u where u.userId =? and u.taskList.contentId=?";
+ private static final String FIND_BY_USER_ID_SESSION_ID = "from " + TaskListUser.class.getName()
+ + " as u where u.userId =? and u.session.sessionId=?";
+ private static final String FIND_BY_SESSION_ID = "from " + TaskListUser.class.getName()
+ + " as u where u.session.sessionId=?";
+
+ @Override
+ public TaskListUser getUserByUserIDAndSessionID(Long userID, Long sessionId) {
+ List list = this.doFind(FIND_BY_USER_ID_SESSION_ID, new Object[] { userID, sessionId });
+ if (list == null || list.size() == 0)
+ return null;
+ return (TaskListUser) list.get(0);
+ }
+
+ @Override
+ public TaskListUser getUserByUserIDAndContentID(Long userId, Long contentId) {
+ List list = this.doFind(FIND_BY_USER_ID_CONTENT_ID, new Object[] { userId, contentId });
+ if (list == null || list.size() == 0)
+ return null;
+ return (TaskListUser) list.get(0);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public List getBySessionID(Long sessionId) {
+ return (List) this.doFind(FIND_BY_SESSION_ID, sessionId);
+ }
+
+ @Override
+ public Collection getPagedUsersBySession(Long sessionId, int page, int size, String sortBy,
+ String sortOrder, String searchString) {
- private static final String FIND_BY_USER_ID_CONTENT_ID = "from " + TaskListUser.class.getName() + " as u where u.userId =? and u.taskList.contentId=?";
- private static final String FIND_BY_USER_ID_SESSION_ID = "from " + TaskListUser.class.getName() + " as u where u.userId =? and u.session.sessionId=?";
- private static final String FIND_BY_SESSION_ID = "from " + TaskListUser.class.getName() + " as u where u.session.sessionId=?";
+ String LOAD_USERS = "SELECT user.uid, CONCAT(user.last_name, ' ', user.first_name), user.is_verified_by_monitor, visitLog.taskList_item_uid" +
+ " FROM tl_latask10_user user" +
+ " INNER JOIN tl_latask10_session session" +
+ " ON user.session_uid=session.uid" +
+
+ " LEFT OUTER JOIN tl_latask10_item_log visitLog " +
+ " ON visitLog.user_uid = user.uid" +
+ " AND visitLog.complete = 1" +
+
+ " WHERE session.session_id = :sessionId " +
+ " AND (CONCAT(user.last_name, ' ', user.first_name) LIKE CONCAT('%', :searchString, '%')) " +
+ " ORDER BY CONCAT(user.last_name, ' ', user.first_name) " + sortOrder;
- /**
- * {@inheritDoc}
- */
- public TaskListUser getUserByUserIDAndSessionID(Long userID, Long sessionId) {
- List list = this.doFind(FIND_BY_USER_ID_SESSION_ID,new Object[]{userID,sessionId});
- if(list == null || list.size() == 0)
- return null;
- return (TaskListUser) list.get(0);
+ SQLQuery query = getSession().createSQLQuery(LOAD_USERS);
+ query.setLong("sessionId", sessionId);
+ // support for custom search from a toolbar
+ searchString = searchString == null ? "" : searchString;
+ query.setString("searchString", searchString);
+ query.setFirstResult(page * size);
+ query.setMaxResults(size);
+ List list = query.list();
+
+ //group by userId as long as it returns all completed visitLogs for each user
+ HashMap userIdToUserDto = new LinkedHashMap();
+ if (list != null && list.size() > 0) {
+ for (Object[] element : list) {
+
+ Long userId = ((Number) element[0]).longValue();
+ String fullName = (String) element[1];
+ boolean isVerifiedByMonitor = new Boolean(((Byte) element[2]).intValue() == 1);
+ Long completedTaskUid = element[3] == null ? 0 : ((Number) element[3]).longValue();
+
+ TaskListUserDTO userDto = (userIdToUserDto.get(userId) == null) ? new TaskListUserDTO()
+ : userIdToUserDto.get(userId);
+ userDto.setUserId(userId);
+ userDto.setFullName(fullName);
+ userDto.setVerifiedByMonitor(isVerifiedByMonitor);
+ userDto.getCompletedTaskUids().add(completedTaskUid);
+
+ userIdToUserDto.put(userId, userDto);
+ }
}
- /**
- * {@inheritDoc}
- */
- public TaskListUser getUserByUserIDAndContentID(Long userId, Long contentId) {
- List list = this.doFind(FIND_BY_USER_ID_CONTENT_ID,new Object[]{userId,contentId});
- if(list == null || list.size() == 0)
- return null;
- return (TaskListUser) list.get(0);
+ return userIdToUserDto.values();
+ }
+
+ @Override
+ public Collection getPagedUsersBySessionAndItem(Long sessionId, Long taskListItemUid, int page, int size, String sortBy,
+ String sortOrder, String searchString) {
+
+ String LOAD_USERS = "SELECT user.user_id, CONCAT(user.last_name, ' ', user.first_name), visitLog.complete, visitLog.access_date" +
+ " FROM tl_latask10_user user" +
+ " INNER JOIN tl_latask10_session session" +
+ " ON user.session_uid=session.uid" +
+
+ " LEFT OUTER JOIN tl_latask10_item_log visitLog " +
+ " ON visitLog.user_uid = user.uid" +
+ " AND visitLog.taskList_item_uid = :taskListItemUid" +
+
+ " WHERE session.session_id = :sessionId " +
+ " AND (CONCAT(user.last_name, ' ', user.first_name) LIKE CONCAT('%', :searchString, '%')) " +
+ " ORDER BY " +
+ " CASE " +
+ " WHEN :sortBy='userName' THEN CONCAT(user.last_name, ' ', user.first_name) " +
+ " WHEN :sortBy='completed' THEN visitLog.complete " +
+ " WHEN :sortBy='accessDate' THEN visitLog.access_date " +
+ " END " + sortOrder;
+
+ SQLQuery query = getSession().createSQLQuery(LOAD_USERS);
+ query.setLong("sessionId", sessionId);
+ query.setLong("taskListItemUid", taskListItemUid);
+ // 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 list = query.list();
+
+ Collection userDtos = new LinkedList();
+ if (list != null && list.size() > 0) {
+ for (Object[] element : list) {
+
+ Long userId = ((Number) element[0]).longValue();
+ String fullName = (String) element[1];
+ boolean isCompleted = element[2] == null ? false : new Boolean(((Byte) element[2]).intValue() == 1);
+ Date accessDate = element[3] == null ? null : new Date(((Timestamp) element[3]).getTime());
+
+ TaskListUserDTO userDto = new TaskListUserDTO();
+ userDto.setUserId(userId);
+ userDto.setFullName(fullName);
+ userDto.setCompleted(isCompleted);
+ userDto.setAccessDate(accessDate);;
+
+ userDtos.add(userDto);
+ }
}
- /**
- * {@inheritDoc}
- */
- @SuppressWarnings("unchecked")
- public List getBySessionID(Long sessionId) {
- return (List) this.doFind(FIND_BY_SESSION_ID,sessionId);
+ return userDtos;
+ }
+
+ @Override
+ public int getCountPagedUsersBySession(Long sessionId, String searchString) {
+
+ String LOAD_USERS_ORDERED_BY_NAME = "SELECT COUNT(*) FROM " + TaskListUser.class.getName() + " user"
+ + " WHERE user.session.sessionId = :sessionId "
+ + " AND (CONCAT(user.lastName, ' ', user.firstName) LIKE CONCAT('%', :searchString, '%')) ";
+
+ Query query = getSession().createQuery(LOAD_USERS_ORDERED_BY_NAME);
+ query.setLong("sessionId", sessionId);
+ // support for custom search from a toolbar
+ searchString = searchString == null ? "" : searchString;
+ query.setString("searchString", searchString);
+ List list = query.list();
+
+ if ((list == null) || (list.size() == 0)) {
+ return 0;
+ } else {
+ return ((Number) list.get(0)).intValue();
}
-
+ }
+
}
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskListItemVisitLog.java
===================================================================
diff -u -r9bd21433617c6dbccfacfb09752344c640570966 -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskListItemVisitLog.java (.../TaskListItemVisitLog.java) (revision 9bd21433617c6dbccfacfb09752344c640570966)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskListItemVisitLog.java (.../TaskListItemVisitLog.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -25,87 +25,93 @@
package org.lamsfoundation.lams.tool.taskList.model;
import java.util.Date;
+
/**
* TaskList
- * @author Dapeng Ni
+ *
+ * @author Andrey Balan
*
- * @hibernate.class table="tl_latask10_item_log"
- *
+ * @hibernate.class table="tl_latask10_item_log"
*/
public class TaskListItemVisitLog {
- private Long uid;
- private TaskListUser user;
- private TaskListItem taskListItem;
- private boolean complete;
- private Date accessDate;
- private Long sessionId;
-
- /**
- * @hibernate.property column="access_date"
- * @return
- */
- public Date getAccessDate() {
- return accessDate;
- }
- public void setAccessDate(Date accessDate) {
- this.accessDate = accessDate;
- }
- /**
- * @hibernate.many-to-one column="taskList_item_uid"
- * cascade="none"
- * @return
- */
- public TaskListItem getTaskListItem() {
- return taskListItem;
- }
- public void setTaskListItem(TaskListItem item) {
- this.taskListItem = item;
- }
-
- /**
- * @hibernate.id generator-class="native" type="java.lang.Long" column="uid"
- * @return Returns the log Uid.
- */
- public Long getUid() {
- return uid;
- }
- public void setUid(Long uid) {
- this.uid = uid;
- }
- /**
- * @hibernate.many-to-one column="user_uid"
- * cascade="save-update"
- * @return
- */
- public TaskListUser getUser() {
- return user;
- }
- public void setUser(TaskListUser user) {
- this.user = user;
- }
- /**
- * @hibernate.property column="complete"
- * @return
- */
- public boolean isComplete() {
- return complete;
- }
- public void setComplete(boolean complete) {
- this.complete = complete;
- }
- /**
- * @hibernate.property column="session_id"
- * @return
- */
- public Long getSessionId() {
- return sessionId;
- }
- public void setSessionId(Long sessionId) {
- this.sessionId = sessionId;
- }
+ private Long uid;
+ private TaskListUser user;
+ private TaskListItem taskListItem;
+ private boolean complete;
+ private Date accessDate;
+ private Long sessionId;
+ /**
+ * @hibernate.property column="access_date"
+ * @return
+ */
+ public Date getAccessDate() {
+ return accessDate;
+ }
-
-
+ public void setAccessDate(Date accessDate) {
+ this.accessDate = accessDate;
+ }
+
+ /**
+ * @hibernate.many-to-one column="taskList_item_uid" cascade="none"
+ * @return
+ */
+ public TaskListItem getTaskListItem() {
+ return taskListItem;
+ }
+
+ public void setTaskListItem(TaskListItem item) {
+ this.taskListItem = item;
+ }
+
+ /**
+ * @hibernate.id generator-class="native" type="java.lang.Long" column="uid"
+ * @return Returns the log Uid.
+ */
+ public Long getUid() {
+ return uid;
+ }
+
+ public void setUid(Long uid) {
+ this.uid = uid;
+ }
+
+ /**
+ * @hibernate.many-to-one column="user_uid" cascade="save-update"
+ * @return
+ */
+ public TaskListUser getUser() {
+ return user;
+ }
+
+ public void setUser(TaskListUser user) {
+ this.user = user;
+ }
+
+ /**
+ * @hibernate.property column="complete"
+ * @return
+ */
+ public boolean isComplete() {
+ return complete;
+ }
+
+ public void setComplete(boolean complete) {
+ this.complete = complete;
+ }
+
+ /**
+ * @hibernate.property column="session_id"
+ * @return
+ */
+ public Long getSessionId() {
+ return sessionId;
+ }
+
+ public void setSessionId(Long sessionId) {
+ this.sessionId = sessionId;
+ }
+
}
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java
===================================================================
diff -u -r8b97231e320c0c5b674f07c14da711f232ba9e1c -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java (.../ITaskListService.java) (revision 8b97231e320c0c5b674f07c14da711f232ba9e1c)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java (.../ITaskListService.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -23,13 +23,16 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.taskList.service;
+import java.util.Collection;
import java.util.List;
import java.util.Set;
import org.apache.struts.upload.FormFile;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.tool.taskList.dto.ItemSummary;
-import org.lamsfoundation.lams.tool.taskList.dto.Summary;
+import org.lamsfoundation.lams.tool.taskList.dto.ReflectDTO;
+import org.lamsfoundation.lams.tool.taskList.dto.SessionDTO;
+import org.lamsfoundation.lams.tool.taskList.dto.TaskListUserDTO;
import org.lamsfoundation.lams.tool.taskList.model.TaskList;
import org.lamsfoundation.lams.tool.taskList.model.TaskListItem;
import org.lamsfoundation.lams.tool.taskList.model.TaskListItemAttachment;
@@ -40,296 +43,348 @@
/**
* Interface that defines the contract that all TaskLisk service providers must follow.
*
- * @author Dapeng.Ni
* @author Andrey Balan
*/
public interface ITaskListService {
-
-
- /**
- * Returns number of tasks completed by user. Used in TaskListOutputFactory
.
- *
- * @param toolSessionId
- * @param userUid
- * @return
- */
- int getNumTasksCompletedByUser(Long toolSessionId, Long userUid);
-
- /**
- * Checks current condition for matching. This condition belongs to the
- * taskList from this particular toolSession.Used in
- * TaskListOutputFactory
.
- *
- * @param conditionName name of a condition
- * @param toolSessionId session Id contains particular taskList
- * @param userUid user for whom this condition is being checked
- * @return
- */
- boolean checkCondition(String conditionName, Long toolSessionId, Long userUid);
-
- /**
- * Get TaskList
by toolContentID.
- *
- * @param contentId
- * @return
- */
- TaskList getTaskListByContentId(Long contentId);
-
- /**
- * Get a cloned copy of tool default tool content (TaskList) and assign the toolContentId of that copy as the
- * given contentId
- *
- * @param contentId
- * @return
- * @throws TaskListException
- */
- TaskList getDefaultContent(Long contentId) throws TaskListException;
-
- /**
- * Get list of taskList items by given taskListUid. These taskList items must be created by author.
- *
- * @param taskListUid
- * @return
- */
- List getAuthoredItems(Long taskListUid);
-
-
- /**
- * Upload tasklistItem file to repository.
- *
- * @param uploadFile
- * @param userLogin
- * @return
- * @throws UploadTaskListFileException
- */
- TaskListItemAttachment uploadTaskListItemFile(FormFile uploadFile, TaskListUser user) throws UploadTaskListFileException;
-
- /**
- * Returns Message service. It makes available to have access to message resources files.
- *
- * @return MessageService
- */
- MessageService getMessageService();
-
- //********** for user methods *************
- /**
- * Create a new user in database.
- */
- void createUser(TaskListUser taskListUser);
-
- /**
- * Get user by given userID and toolContentID.
- *
- * @param long1
- * @return
- */
- TaskListUser getUserByIDAndContent(Long userID, Long contentId);
+ /**
+ * Returns number of tasks completed by user. Used in TaskListOutputFactory
.
+ *
+ * @param toolSessionId
+ * @param userUid
+ * @return
+ */
+ int getNumTasksCompletedByUser(Long toolSessionId, Long userUid);
- /**
- * Get user by sessionID and UserID
- *
- * @param long1
- * @param sessionId
- * @return
- */
- TaskListUser getUserByIDAndSession(Long long1, Long sessionId);
-
- /**
- * Get user list by sessionId and itemUid
- *
- * @param sessionId
- * @param uid
- * @return
- */
- List getUserListBySessionItem(Long sessionId, Long itemUid);
-
- /**
- * Get user list by sessionId. (thus users belonging to one group)
- *
- * @param sessionId
- * @return
- */
- List getUserListBySessionId(Long sessionId);
+ /**
+ * Checks current condition for matching. This condition belongs to the taskList from this particular
+ * toolSession.Used in TaskListOutputFactory
.
+ *
+ * @param conditionName
+ * name of a condition
+ * @param toolSessionId
+ * session Id contains particular taskList
+ * @param userUid
+ * user for whom this condition is being checked
+ * @return
+ */
+ boolean checkCondition(String conditionName, Long toolSessionId, Long userUid);
- /**
- * Get user by UID
- *
- * @param uid
- * @return
- */
- TaskListUser getUser(Long uid);
+ /**
+ * Get TaskList
by toolContentID.
+ *
+ * @param contentId
+ * @return
+ */
+ TaskList getTaskListByContentId(Long contentId);
- //********** Repository methods ***********************
+ /**
+ * Get a cloned copy of tool default tool content (TaskList) and assign the toolContentId of that copy as the given
+ * contentId
+ *
+ * @param contentId
+ * @return
+ * @throws TaskListException
+ */
+ TaskList getDefaultContent(Long contentId) throws TaskListException;
- /**
- * Save or update taskList into database.
- *
- * @param TaskList
- */
- void saveOrUpdateTaskList(TaskList TaskList);
-
- /**
- * Delete resoruce item from database.
- *
- * @param uid
- */
- void deleteTaskListItem(Long uid);
-
- /**
- * Delete tasklist condition from the database.
- *
- * @param uid
- */
- void deleteTaskListCondition(Long uid);
-
- /**
- * Get taskList which is relative with the special toolSession.
- *
- * @param sessionId
- * @return
- */
- TaskList getTaskListBySessionId(Long sessionId);
-
- /**
- * Get taskList with the specified itemUid.
- *
- * @param itemUid
- * @return
- */
- TaskListItem getTaskListItemByUid(Long itemUid);
-
- /**
- * Save/update current TaskListItem.
- *
- * @param item current TaskListItem
- * @return
- */
- void saveOrUpdateTaskListItem(TaskListItem item);
-
- /**
- * Fill in taskListItemList's complete flags.
- *
- * @param taskListItemList
- * @param user
- */
- void retrieveComplete(Set taskListItemList, TaskListUser user);
-
- /**
- * Mark taskListItem as completed.
- *
- * @param taskListItemUid
- * @param userId
- * @param sessionId
- */
- void setItemComplete(Long taskListItemUid, Long userId , Long sessionId);
-
-
- /**
- * Creates a new TaskListItemVisitLog describing access to specifeid taskListItem.
- *
- * @param taskListItemUid Uid of the specified taskListItem
- * @param userId Id of a user who accessed this taskListItem
- * @param sessionId id of a session during which it occured
- */
- void setItemAccess(Long taskListItemUid, Long userId, Long sessionId);
-
- /**
- * Get taskList toolSession by toolSessionId
- *
- * @param sessionId
- * @return
- */
- TaskListSession getTaskListSessionBySessionId(Long sessionId);
+ /**
+ * Get list of taskList items by given taskListUid. These taskList items must be created by author.
+ *
+ * @param taskListUid
+ * @return
+ */
+ List getAuthoredItems(Long taskListUid);
- /**
- * Save or update taskList session.
- *
- * @param resSession
- */
- void saveOrUpdateTaskListSession(TaskListSession resSession);
-
- /**
- * If success return next activity's url, otherwise return null.
- *
- * @param toolSessionId
- * @param userId
- * @return
- */
- String finishToolSession(Long toolSessionId, Long userId) throws TaskListException;
-
- /**
- * Create refection entry into notebook tool.
- *
- * @param sessionId
- * @param notebook_tool
- * @param tool_signature
- * @param userId
- * @param entryText
- */
- Long createNotebookEntry(Long sessionId, Integer notebookToolType, String toolSignature, Integer userId, String entryText);
-
- /**
- * Get reflection entry from notebook tool.
- *
- * @param sessionId
- * @param idType
- * @param signature
- * @param userID
- * @return
- */
- NotebookEntry getEntry(Long sessionId, Integer idType, String signature, Integer userID);
+ /**
+ * Upload tasklistItem file to repository.
+ *
+ * @param uploadFile
+ * @param userLogin
+ * @return
+ * @throws UploadTaskListFileException
+ */
+ TaskListItemAttachment uploadTaskListItemFile(FormFile uploadFile, TaskListUser user)
+ throws UploadTaskListFileException;
- /**
- * @param notebookEntry
- */
- void updateEntry(NotebookEntry notebookEntry);
-
- //********** Export methods ***********************
-
- /**
- * Make an export for the specified learner.
- *
- * @param sessionId
- * @param learner user which portfolio is being exported
- *
- * @return
- */
- List exportForLearner(Long contentUid, TaskListUser learner);
-
- /**
- * Make an export for the whole TaskList.
- *
- * @param contentUid
- * @return
- */
- List exportForTeacher(Long contentUid);
-
- /**
- * Return summary list for the specified TaskList. Used in monitoring.
- *
- * @param contentId specified TaskList uid
- * @return
- */
- List getSummary(Long contentId);
-
- /**
- * Return task summary for the specified TaskListItem. Used in monitoring.
- *
- * @param contentId toolContenId
- * @param taskListItemUid specified TaskListItem uid
- * @param isExportProcessing true if this method called for export, false otherwise
- * @return
- */
- ItemSummary getItemSummary(Long contentId, Long taskListItemUid, boolean isExportProcessing);
-
- /**
- * Returns whether activity is grouped and therefore it is expected more than one tool session.
- *
- * @param toolContentID
- * @return
- */
- boolean isGroupedActivity(long toolContentID);
-
-}
+ /**
+ * Returns Message service. It makes available to have access to message resources files.
+ *
+ * @return MessageService
+ */
+ MessageService getMessageService();
+ // ********** for user methods *************
+ /**
+ * Create a new user in database.
+ */
+ void createUser(TaskListUser taskListUser);
+
+ /**
+ * Get user by given userID and toolContentID.
+ *
+ * @param long1
+ * @return
+ */
+ TaskListUser getUserByIDAndContent(Long userID, Long contentId);
+
+ /**
+ * Get user by sessionID and UserID
+ *
+ * @param long1
+ * @param sessionId
+ * @return
+ */
+ TaskListUser getUserByIDAndSession(Long long1, Long sessionId);
+
+ /**
+ * Get user list by sessionId and itemUid
+ *
+ * @param sessionId
+ * @param uid
+ * @return
+ */
+ List getUserListBySessionItem(Long sessionId, Long itemUid);
+
+ /**
+ * Get user list by sessionId. (thus users belonging to one group)
+ *
+ * @param sessionId
+ * @return
+ */
+ List getUserListBySessionId(Long sessionId);
+
+ /**
+ * Get user by UID
+ *
+ * @param uid
+ * @return
+ */
+ TaskListUser getUser(Long uid);
+
+ // ********** Repository methods ***********************
+
+ /**
+ * Save or update taskList into database.
+ *
+ * @param TaskList
+ */
+ void saveOrUpdateTaskList(TaskList TaskList);
+
+ /**
+ * Delete resoruce item from database.
+ *
+ * @param uid
+ */
+ void deleteTaskListItem(Long uid);
+
+ /**
+ * Delete tasklist condition from the database.
+ *
+ * @param uid
+ */
+ void deleteTaskListCondition(Long uid);
+
+ /**
+ * Get taskList which is relative with the special toolSession.
+ *
+ * @param sessionId
+ * @return
+ */
+ TaskList getTaskListBySessionId(Long sessionId);
+
+ /**
+ * Get taskList with the specified itemUid.
+ *
+ * @param itemUid
+ * @return
+ */
+ TaskListItem getTaskListItemByUid(Long itemUid);
+
+ /**
+ * Save/update current TaskListItem.
+ *
+ * @param item
+ * current TaskListItem
+ * @return
+ */
+ void saveOrUpdateTaskListItem(TaskListItem item);
+
+ /**
+ * Fill in taskListItemList's complete flags.
+ *
+ * @param taskListItemList
+ * @param user
+ */
+ void retrieveComplete(Set taskListItemList, TaskListUser user);
+
+ /**
+ * Mark taskListItem as completed.
+ *
+ * @param taskListItemUid
+ * @param userId
+ * @param sessionId
+ */
+ void setItemComplete(Long taskListItemUid, Long userId, Long sessionId);
+
+ /**
+ * Creates a new TaskListItemVisitLog describing access to specifeid taskListItem.
+ *
+ * @param taskListItemUid
+ * Uid of the specified taskListItem
+ * @param userId
+ * Id of a user who accessed this taskListItem
+ * @param sessionId
+ * id of a session during which it occured
+ */
+ void setItemAccess(Long taskListItemUid, Long userId, Long sessionId);
+
+ /**
+ * Get all available sessions for contentId.
+ *
+ * @param contentId
+ * @return
+ */
+ List getSessionsByContentId(Long contentId);
+
+ /**
+ * Get taskList toolSession by toolSessionId
+ *
+ * @param sessionId
+ * @return
+ */
+ TaskListSession getSessionBySessionId(Long sessionId);
+
+ /**
+ * Save or update taskList session.
+ *
+ * @param resSession
+ */
+ void saveOrUpdateSession(TaskListSession resSession);
+
+ /**
+ * If success return next activity's url, otherwise return null.
+ *
+ * @param toolSessionId
+ * @param userId
+ * @return
+ */
+ String finishToolSession(Long toolSessionId, Long userId) throws TaskListException;
+
+ /**
+ * Create refection entry into notebook tool.
+ *
+ * @param sessionId
+ * @param notebook_tool
+ * @param tool_signature
+ * @param userId
+ * @param entryText
+ */
+ Long createNotebookEntry(Long sessionId, Integer notebookToolType, String toolSignature, Integer userId,
+ String entryText);
+
+ /**
+ * Get reflection entry from notebook tool.
+ *
+ * @param sessionId
+ * @param idType
+ * @param signature
+ * @param userID
+ * @return
+ */
+ NotebookEntry getEntry(Long sessionId, Integer idType, String signature, Integer userID);
+
+ /**
+ * @param notebookEntry
+ */
+ void updateEntry(NotebookEntry notebookEntry);
+
+ // ********** Export methods ***********************
+
+ /**
+ * Make an export for the specified learner.
+ *
+ * @param sessionId
+ * @param learner
+ * user which portfolio is being exported
+ *
+ * @return
+ */
+ List exportForLearner(Long contentUid, TaskListUser learner);
+
+ /**
+ * Make an export for the whole TaskList.
+ *
+ * @param contentUid
+ * @return
+ */
+ List exportForTeacher(Long contentUid);
+
+ /**
+ * Returns paged users for jqGrid based on sessionId.
+ *
+ * @param sessionId
+ * @param page
+ * @param size
+ * @param sortBy
+ * @param sortOrder
+ * @param searchString
+ * @return
+ */
+ Collection getPagedUsersBySession(Long sessionId, int page, int size, String sortBy,
+ String sortOrder, String searchString);
+
+ /**
+ * Returns paged users for jqGrid based on sessionId and taskListItemUid.
+ *
+ * @param sessionId
+ * @param taskListItemUid
+ * @param page
+ * @param size
+ * @param sortBy
+ * @param sortOrder
+ * @param searchString
+ * @return
+ */
+ Collection getPagedUsersBySessionAndItem(Long sessionId, Long taskListItemUid, int page, int size, String sortBy,
+ String sortOrder, String searchString);
+
+ /**
+ * Returns total number of users in a specified session.
+ *
+ * @param sessionId
+ * @param searchString
+ * @return
+ */
+ int getCountPagedUsersBySession(Long sessionId, String searchString);
+
+ /**
+ * Return summary list for the specified TaskList. Used in monitoring.
+ *
+ * @param contentId
+ * specified TaskList uid
+ * @return
+ */
+ List getSummary(Long contentId);
+
+ NotebookEntry getEntry(Long sessionId, Integer userId);
+
+ List getReflectList(Long contentId);
+
+ /**
+ * Returns whether activity is grouped and therefore it is expected more than one tool session.
+ *
+ * @param toolContentID
+ * @return
+ */
+ boolean isGroupedActivity(long toolContentID);
+
+ /**
+ * Get localized message.
+ *
+ * @param key
+ * @return
+ */
+ String getMessage(String key);
+
+}
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java
===================================================================
diff -u -r708bd4d049ae0a59d70c964ef2f864d2b7a352e6 -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 708bd4d049ae0a59d70c964ef2f864d2b7a352e6)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -27,9 +27,11 @@
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.Hashtable;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.SortedMap;
@@ -68,8 +70,9 @@
import org.lamsfoundation.lams.tool.taskList.dto.GroupSummary;
import org.lamsfoundation.lams.tool.taskList.dto.ItemSummary;
import org.lamsfoundation.lams.tool.taskList.dto.ReflectDTO;
-import org.lamsfoundation.lams.tool.taskList.dto.Summary;
+import org.lamsfoundation.lams.tool.taskList.dto.SessionDTO;
import org.lamsfoundation.lams.tool.taskList.dto.TaskListItemVisitLogSummary;
+import org.lamsfoundation.lams.tool.taskList.dto.TaskListUserDTO;
import org.lamsfoundation.lams.tool.taskList.model.TaskList;
import org.lamsfoundation.lams.tool.taskList.model.TaskListCondition;
import org.lamsfoundation.lams.tool.taskList.model.TaskListItem;
@@ -87,7 +90,6 @@
/**
* Class implements org.lamsfoundation.lams.tool.taskList.service.ITaskListService
.
*
- * @author Dapeng.Ni
* @author Andrey Balan
* @see org.lamsfoundation.lams.tool.taskList.service.ITaskListService
*/
@@ -218,14 +220,19 @@
public TaskListItem getTaskListItemByUid(Long itemUid) {
return taskListItemDao.getByUid(itemUid);
}
+
+ @Override
+ public List getSessionsByContentId(Long contentId) {
+ return taskListSessionDao.getByContentId(contentId);
+ }
@Override
- public TaskListSession getTaskListSessionBySessionId(Long sessionId) {
+ public TaskListSession getSessionBySessionId(Long sessionId) {
return taskListSessionDao.getSessionBySessionId(sessionId);
}
@Override
- public void saveOrUpdateTaskListSession(TaskListSession resSession) {
+ public void saveOrUpdateSession(TaskListSession resSession) {
taskListSessionDao.saveObject(resSession);
}
@@ -293,69 +300,75 @@
}
}
}
+
+ @Override
+ public Collection getPagedUsersBySession(Long sessionId, int page, int size, String sortBy,
+ String sortOrder, String searchString) {
+ return taskListUserDao.getPagedUsersBySession(sessionId, page, size, sortBy, sortOrder, searchString);
+ }
+
+ @Override
+ public Collection getPagedUsersBySessionAndItem(Long sessionId, Long taskListItemUid, int page, int size, String sortBy,
+ String sortOrder, String searchString) {
+ return taskListUserDao.getPagedUsersBySessionAndItem(sessionId, taskListItemUid, page, size, sortBy, sortOrder, searchString);
+ }
@Override
- public List getSummary(Long contentId) {
+ public int getCountPagedUsersBySession(Long sessionId, String searchString) {
+ return taskListUserDao.getCountPagedUsersBySession(sessionId, searchString);
+ }
- TaskList taskList = taskListDao.getByContentId(contentId);
+ @Override
+ public List getSummary(Long contentId) {
+
List sessionList = taskListSessionDao.getByContentId(contentId);
- List summaryList = new ArrayList();
+ List summaryList = new ArrayList();
// create the user list of all whom were started this task
for (TaskListSession session : sessionList) {
+ Long toolSessionId = session.getSessionId();
- List itemList = getItemListForGroup(contentId, session.getSessionId());
+ List itemList = getItemListForGroup(contentId, toolSessionId);
+ List userList = taskListUserDao.getBySessionID(toolSessionId);
- List userList = taskListUserDao.getBySessionID(session.getSessionId());
-
- // Fill up the copmletion table
- boolean[][] complete = new boolean[userList.size()][itemList.size()];
// Fill up the array of visitNumbers
int[] visitNumbers = new int[itemList.size()];
- for (int i = 0; i < userList.size(); i++) {
- TaskListUser user = userList.get(i);
+ for (int j = 0; j < itemList.size(); j++) {
+ TaskListItem item = itemList.get(j);
- for (int j = 0; j < itemList.size(); j++) {
- TaskListItem item = itemList.get(j);
-
- // retreiving TaskListItemVisitLog for current taskList and user
- TaskListItemVisitLog visitLog = taskListItemVisitDao.getTaskListItemLog(item.getUid(),
- user.getUserId());
- if (visitLog != null) {
- complete[i][j] = visitLog.isComplete();
- if (visitLog.isComplete()) {
- visitNumbers[j]++;
- }
- } else {
- complete[i][j] = false;
- }
- }
+ // retreiving TaskListItemVisitLog for current taskList and user
+ visitNumbers[j] = taskListItemVisitDao.getCountCompletedTasksBySessionAndItem(toolSessionId, item.getUid());
}
- Summary summary = new Summary(session.getSessionName(), itemList, userList, complete, visitNumbers,
- taskList.isMonitorVerificationRequired());
+ SessionDTO summary = new SessionDTO(toolSessionId, session.getSessionName(), itemList, visitNumbers);
summaryList.add(summary);
}
return summaryList;
}
- @Override
- public ItemSummary getItemSummary(Long contentId, Long taskListItemUid, boolean isExportProcessing) {
+ /*
+ * Return task summary for the specified TaskListItem. Used in monitoring.
+ *
+ * @param contentId
+ * toolContenId
+ * @param item
+ * specified TaskListItem
+ * @return
+ */
+ private ItemSummary exportItem(Long contentId, TaskListItem item) {
- TaskListItem taskListItem = taskListItemDao.getByUid(taskListItemUid);
-
ItemSummary itemSummary = new ItemSummary();
- itemSummary.setTaskListItem(taskListItem);
+ itemSummary.setTaskListItem(item);
List groupSummaries = itemSummary.getGroupSummaries();
- // create sessionList depending on if taskListItem created be author or created during learning
+ // create sessionList depending on if item created be author or created during learning
List sessionList = new ArrayList();
- if (taskListItem.isCreateByAuthor()) {
+ if (item.isCreateByAuthor()) {
sessionList = taskListSessionDao.getByContentId(contentId);
} else {
- TaskListSession userSession = taskListItem.getCreateBy().getSession();
+ TaskListSession userSession = item.getCreateBy().getSession();
sessionList.add(userSession);
}
@@ -371,7 +384,7 @@
TaskListItemVisitLogSummary taskListItemVisitLogSummary = new TaskListItemVisitLogSummary();
taskListItemVisitLogSummary.setUser(user);
- TaskListItemVisitLog visitLog = taskListItemVisitDao.getTaskListItemLog(taskListItem.getUid(),
+ TaskListItemVisitLog visitLog = taskListItemVisitDao.getTaskListItemLog(item.getUid(),
user.getUserId());
// If TaskListItemVisitLog exists then fill up taskSummaryItem otherwise put false in a completed field
if (visitLog != null) {
@@ -381,14 +394,14 @@
}
// fill up with comments and attachments made by this user
- Set itemComments = taskListItem.getComments();
+ Set itemComments = item.getComments();
for (TaskListItemComment comment : itemComments) {
if (user.getUserId().equals(comment.getCreateBy().getUserId())) {
taskListItemVisitLogSummary.getComments().add(comment);
}
}
- Set itemAttachments = taskListItem.getAttachments();
+ Set itemAttachments = item.getAttachments();
for (TaskListItemAttachment attachment : itemAttachments) {
if (user.getUserId().equals(attachment.getCreateBy().getUserId())) {
taskListItemVisitLogSummary.getAttachments().add(attachment);
@@ -398,24 +411,19 @@
taskListItemVisitLogSummary.setCompleted(false);
}
- // if we're doing export then fill up all itemSummaries with reflection information
- if (isExportProcessing) {
-
- NotebookEntry notebookEntry = getEntry(session.getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL,
- TaskListConstants.TOOL_SIGNATURE, user.getUserId().intValue());
-
- ReflectDTO reflectDTO = new ReflectDTO(user);
- if (notebookEntry == null) {
- reflectDTO.setFinishReflection(false);
- reflectDTO.setReflect(null);
- } else {
- reflectDTO.setFinishReflection(true);
- reflectDTO.setReflect(notebookEntry.getEntry());
- }
- reflectDTO.setReflectInstructions(session.getTaskList().getReflectInstructions());
-
- taskListItemVisitLogSummary.setReflectDTO(reflectDTO);
+ // fill up all itemSummaries with reflection information
+ NotebookEntry notebookEntry = getEntry(session.getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL,
+ TaskListConstants.TOOL_SIGNATURE, user.getUserId().intValue());
+ ReflectDTO reflectDTO = new ReflectDTO(user);
+ if (notebookEntry == null) {
+ reflectDTO.setFinishReflection(false);
+ reflectDTO.setReflect(null);
+ } else {
+ reflectDTO.setFinishReflection(true);
+ reflectDTO.setReflect(notebookEntry.getEntry());
}
+ reflectDTO.setReflectInstructions(session.getTaskList().getReflectInstructions());
+ taskListItemVisitLogSummary.setReflectDTO(reflectDTO);
groupSummary.getTaskListItemVisitLogSummaries().add(taskListItemVisitLogSummary);
}
@@ -424,7 +432,45 @@
return itemSummary;
}
+
+ @Override
+ public NotebookEntry getEntry(Long sessionId, Integer userId) {
+ List list = coreNotebookService.getEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL,
+ TaskListConstants.TOOL_SIGNATURE, userId);
+ if ((list == null) || list.isEmpty()) {
+ return null;
+ } else {
+ return list.get(0);
+ }
+ }
+
+ @Override
+ public List getReflectList(Long contentId) {
+ List reflectList = new LinkedList();
+ List sessionList = taskListSessionDao.getByContentId(contentId);
+ for (TaskListSession session : sessionList) {
+ Long sessionId = session.getSessionId();
+ // get all users in this session
+ List users = taskListUserDao.getBySessionID(sessionId);
+ for (TaskListUser user : users) {
+
+ NotebookEntry entry = getEntry(sessionId, user.getUserId().intValue());
+ if (entry != null) {
+ ReflectDTO ref = new ReflectDTO(user);
+ ref.setReflect(entry.getEntry());
+ Date postedDate = (entry.getLastModified() != null) ? entry.getLastModified()
+ : entry.getCreateDate();
+ ref.setDate(postedDate);
+ reflectList.add(ref);
+ }
+
+ }
+ }
+
+ return reflectList;
+ }
+
@Override
public List exportForTeacher(Long contentId) {
TaskList taskList = taskListDao.getByContentId(contentId);
@@ -445,7 +491,7 @@
List itemSummaries = new ArrayList();
for (TaskListItem item : itemList) {
- itemSummaries.add(getItemSummary(contentId, item.getUid(), true));
+ itemSummaries.add(exportItem(contentId, item));
}
return itemSummaries;
@@ -460,7 +506,7 @@
List itemSummaries = new ArrayList();
for (TaskListItem item : itemList) {
- itemSummaries.add(getItemSummary(contentId, item.getUid(), true));
+ itemSummaries.add(exportItem(contentId, item));
}
// get rid of information that doesn't belong to the current user
@@ -487,8 +533,8 @@
}
@Override
- public int getNumTasksCompletedByUser(Long toolSessionId, Long userUid) {
- return getTaskListItemVisitDao().getTasksCompletedCountByUser(toolSessionId, userUid);
+ public int getNumTasksCompletedByUser(Long toolSessionId, Long userId) {
+ return getTaskListItemVisitDao().getCountCompletedTasksByUser(toolSessionId, userId);
}
@Override
@@ -571,6 +617,11 @@
public boolean isGroupedActivity(long toolContentID) {
return toolService.isGroupedActivity(toolContentID);
}
+
+ @Override
+ public String getMessage(String key) {
+ return messageService.getMessage(key);
+ }
// *****************************************************************************
// Set methods for Spring Bean
@@ -826,6 +877,7 @@
coreNotebookService.deleteEntry(entry);
}
}
+
taskListDao.delete(taskList);
}
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceProxy.java
===================================================================
diff -u -rf976c3bd40613835d2b5ac91a1eee6748afbe2c7 -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceProxy.java (.../TaskListServiceProxy.java) (revision f976c3bd40613835d2b5ac91a1eee6748afbe2c7)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceProxy.java (.../TaskListServiceProxy.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -62,7 +62,7 @@
private static Object getTaskListDomainService(ServletContext servletContext) {
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
- return wac.getBean(TaskListConstants.RESOURCE_SERVICE);
+ return wac.getBean(TaskListConstants.TASKLIST_SERVICE);
}
}
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java
===================================================================
diff -u -r8b97231e320c0c5b674f07c14da711f232ba9e1c -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 8b97231e320c0c5b674f07c14da711f232ba9e1c)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -235,7 +235,7 @@
taskListItemList.clear();
taskListItemList.addAll(items);
- sessionMap.put(TaskListConstants.ATTR_RESOURCE_FORM, taskListForm);
+ sessionMap.put(TaskListConstants.ATTR_TASKLIST_FORM, taskListForm);
request.getSession().setAttribute(AttributeNames.PARAM_NOTIFY_CLOSE_URL,
request.getParameter(AttributeNames.PARAM_NOTIFY_CLOSE_URL));
return mapping.findForward(TaskListConstants.SUCCESS);
@@ -255,7 +255,7 @@
HttpServletResponse response) throws ServletException {
String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID);
SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
- TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_RESOURCE_FORM);
+ TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_TASKLIST_FORM);
TaskListForm taskListForm = (TaskListForm) form;
try {
@@ -619,7 +619,7 @@
private ITaskListService getTaskListService() {
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet()
.getServletContext());
- return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE);
+ return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE);
}
/**
@@ -630,10 +630,10 @@
*/
private SortedSet getTaskListItemList(SessionMap sessionMap) {
SortedSet list = (SortedSet) sessionMap
- .get(TaskListConstants.ATTR_RESOURCE_ITEM_LIST);
+ .get(TaskListConstants.ATTR_TASKLIST_ITEM_LIST);
if (list == null) {
list = new TreeSet(new TaskListItemComparator());
- sessionMap.put(TaskListConstants.ATTR_RESOURCE_ITEM_LIST, list);
+ sessionMap.put(TaskListConstants.ATTR_TASKLIST_ITEM_LIST, list);
}
return list;
}
@@ -671,7 +671,7 @@
* @return
*/
private List getDeletedTaskListItemList(SessionMap sessionMap) {
- return getListFromSession(sessionMap, TaskListConstants.ATTR_DELETED_RESOURCE_ITEM_LIST);
+ return getListFromSession(sessionMap, TaskListConstants.ATTR_DELETED_TASKLIST_ITEM_LIST);
}
/**
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java
===================================================================
diff -u -rc80f5cfa126621b04cfe9254bc9fc6f1b487a288 -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java (.../AuthoringTaskListConditionAction.java) (revision c80f5cfa126621b04cfe9254bc9fc6f1b487a288)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java (.../AuthoringTaskListConditionAction.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -114,7 +114,7 @@
HttpServletResponse response) throws ServletException {
String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID);
SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
- TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_RESOURCE_FORM);
+ TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_TASKLIST_FORM);
TaskListForm taskListForm = (TaskListForm) form;
try {
@@ -328,7 +328,7 @@
private ITaskListService getTaskListService() {
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet()
.getServletContext());
- return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE);
+ return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE);
}
/**
@@ -355,10 +355,10 @@
*/
private SortedSet getTaskListItemList(SessionMap sessionMap) {
SortedSet list = (SortedSet) sessionMap
- .get(TaskListConstants.ATTR_RESOURCE_ITEM_LIST);
+ .get(TaskListConstants.ATTR_TASKLIST_ITEM_LIST);
if (list == null) {
list = new TreeSet(new TaskListItemComparator());
- sessionMap.put(TaskListConstants.ATTR_RESOURCE_ITEM_LIST, list);
+ sessionMap.put(TaskListConstants.ATTR_TASKLIST_ITEM_LIST, list);
}
return list;
}
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java
===================================================================
diff -u -r883c4cc054a636dc8017da1b244b89bdaf0ff974 -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision 883c4cc054a636dc8017da1b244b89bdaf0ff974)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -350,7 +350,7 @@
}
- sessionMap.put(TaskListConstants.ATTR_RESOURCE, taskList);
+ sessionMap.put(TaskListConstants.ATTR_TASKLIST, taskList);
return mapping.findForward(TaskListConstants.SUCCESS);
}
@@ -399,7 +399,7 @@
// auto run mode, when use finish the only one taskList item, mark it as complete then finish this activity as
// well.
- String taskListItemUid = request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID);
+ String taskListItemUid = request.getParameter(TaskListConstants.PARAM_ITEM_UID);
if (taskListItemUid != null) {
doComplete(request);
// NOTE:So far this flag is useless(31/08/2006).
@@ -481,7 +481,7 @@
item.setCreateBy(taskListUser);
// setting SequenceId
- TaskList taskList = (TaskList) sessionMap.get(TaskListConstants.ATTR_RESOURCE);
+ TaskList taskList = (TaskList) sessionMap.get(TaskListConstants.ATTR_TASKLIST);
Set taskListItems = taskList.getTaskListItems();
int maxSeq = 0;
for (TaskListItem dbItem : taskListItems) {
@@ -533,7 +533,7 @@
comment.setCreateDate(new Timestamp(new Date().getTime()));
// persist TaskListItem changes in DB
- Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID));
+ Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_ITEM_UID));
TaskListItem dbItem = service.getTaskListItemByUid(itemUid);
Set dbComments = dbItem.getComments();
dbComments.add(comment);
@@ -589,7 +589,7 @@
TaskListItemAttachment att = service.uploadTaskListItemFile(file, taskListUser);
// persist TaskListItem changes in DB
- Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID));
+ Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_ITEM_UID));
TaskListItem dbItem = service.getTaskListItemByUid(itemUid);
Set dbAttachments = dbItem.getAttachments();
dbAttachments.add(att);
@@ -690,7 +690,7 @@
private ITaskListService getTaskListService() {
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet()
.getServletContext());
- return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE);
+ return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE);
}
private TaskListUser getCurrentUser(ITaskListService service, Long sessionId) {
@@ -701,7 +701,7 @@
TaskListUser taskListUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()), sessionId);
if (taskListUser == null) {
- TaskListSession session = service.getTaskListSessionBySessionId(sessionId);
+ TaskListSession session = service.getSessionBySessionId(sessionId);
taskListUser = new TaskListUser(user, session);
service.createUser(taskListUser);
}
@@ -764,7 +764,7 @@
String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID);
SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
- Long taskListItemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID));
+ Long taskListItemUid = new Long(request.getParameter(TaskListConstants.PARAM_ITEM_UID));
ITaskListService service = getTaskListService();
HttpSession ss = SessionManager.getSession();
// get back login user DTO
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java
===================================================================
diff -u -r8b97231e320c0c5b674f07c14da711f232ba9e1c -rdef4291c38fd0644305ee8a76ec6569ce391bc83
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 8b97231e320c0c5b674f07c14da711f232ba9e1c)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision def4291c38fd0644305ee8a76ec6569ce391bc83)
@@ -25,32 +25,44 @@
package org.lamsfoundation.lams.tool.taskList.web.action;
import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.util.Set;
import java.util.TimeZone;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import org.apache.commons.lang.StringEscapeUtils;
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.apache.struts.action.ActionRedirect;
-import org.lamsfoundation.lams.notebook.model.NotebookEntry;
-import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
+import org.apache.tomcat.util.json.JSONArray;
+import org.apache.tomcat.util.json.JSONException;
+import org.apache.tomcat.util.json.JSONObject;
import org.lamsfoundation.lams.tool.taskList.TaskListConstants;
-import org.lamsfoundation.lams.tool.taskList.dto.ItemSummary;
import org.lamsfoundation.lams.tool.taskList.dto.ReflectDTO;
-import org.lamsfoundation.lams.tool.taskList.dto.Summary;
+import org.lamsfoundation.lams.tool.taskList.dto.SessionDTO;
+import org.lamsfoundation.lams.tool.taskList.dto.TaskListUserDTO;
import org.lamsfoundation.lams.tool.taskList.model.TaskList;
+import org.lamsfoundation.lams.tool.taskList.model.TaskListItem;
+import org.lamsfoundation.lams.tool.taskList.model.TaskListItemAttachment;
+import org.lamsfoundation.lams.tool.taskList.model.TaskListItemComment;
import org.lamsfoundation.lams.tool.taskList.model.TaskListSession;
import org.lamsfoundation.lams.tool.taskList.model.TaskListUser;
import org.lamsfoundation.lams.tool.taskList.service.ITaskListService;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.util.Configuration;
+import org.lamsfoundation.lams.util.ConfigurationKeys;
import org.lamsfoundation.lams.util.DateUtil;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.session.SessionManager;
@@ -60,148 +72,361 @@
import org.springframework.web.context.support.WebApplicationContextUtils;
public class MonitoringAction extends Action {
- public static Logger log = Logger.getLogger(MonitoringAction.class);
-
- public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
- String param = mapping.getParameter();
+ public static Logger log = Logger.getLogger(MonitoringAction.class);
+ private static String TOOL_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/"
+ + TaskListConstants.TOOL_SIGNATURE + "/";
- if (param.equals("summary")) {
- return summary(mapping, form, request, response);
- }
- if (param.equals("itemSummary")) {
- return itemSummary(mapping, form, request, response);
- }
- if(param.equals("setVerifiedByMonitor")){
- return setVerifiedByMonitor(mapping, form, request, response);
- }
- if (param.equals("listuser")) {
- return listuser(mapping, form, request, response);
- }
- if (param.equals("viewReflection")) {
- return viewReflection(mapping, form, request, response);
- }
+ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) throws IOException, ServletException, JSONException {
+ String param = mapping.getParameter();
- if (param.equals("setSubmissionDeadline")) {
- return setSubmissionDeadline(mapping, form, request, response);
- }
-
- return mapping.findForward(TaskListConstants.ERROR);
+ if (param.equals("summary")) {
+ return summary(mapping, form, request, response);
}
+ if (param.equals("itemSummary")) {
+ return itemSummary(mapping, form, request, response);
+ }
+ if (param.equals("getPagedUsers")) {
+ return getPagedUsers(mapping, form, request, response);
+ }
+ if (param.equals("getPagedUsersByItem")) {
+ return getPagedUsersByItem(mapping, form, request, response);
+ }
+ if (param.equals("setVerifiedByMonitor")) {
+ return setVerifiedByMonitor(mapping, form, request, response);
+ }
+ if (param.equals("setSubmissionDeadline")) {
+ return setSubmissionDeadline(mapping, form, request, response);
+ }
- private ActionForward summary(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
-
- //initial Session Map
- SessionMap sessionMap = new SessionMap();
- request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap);
-
- request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
- request.setAttribute("initialTabId",WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB,true));
- Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
- request.setAttribute(AttributeNames.PARAM_TOOL_CONTENT_ID, contentId);
+ return mapping.findForward(TaskListConstants.ERROR);
+ }
- ITaskListService service = getTaskListService();
- TaskList taskList = service.getTaskListByContentId(contentId);
-
- List summaryList = service.getSummary(contentId);
-
- //cache into sessionMap
- sessionMap.put(TaskListConstants.ATTR_SUMMARY_LIST, summaryList);
- sessionMap.put(TaskListConstants.PAGE_EDITABLE, taskList.isContentInUse());
- sessionMap.put(TaskListConstants.ATTR_RESOURCE, taskList);
- sessionMap.put(TaskListConstants.ATTR_TOOL_CONTENT_ID, contentId);
- sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID,WebUtil.readStrParam(request,AttributeNames.PARAM_CONTENT_FOLDER_ID));
+ private ActionForward summary(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) {
- if (taskList.getSubmissionDeadline() != null) {
- Date submissionDeadline = taskList.getSubmissionDeadline();
- HttpSession ss = SessionManager.getSession();
- UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER);
- TimeZone teacherTimeZone = teacher.getTimeZone();
- Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(teacherTimeZone, submissionDeadline);
- sessionMap.put(TaskListConstants.ATTR_SUBMISSION_DEADLINE, tzSubmissionDeadline.getTime());
-
- }
-
- return mapping.findForward(TaskListConstants.SUCCESS);
+ // initial Session Map
+ SessionMap sessionMap = new SessionMap();
+ request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap);
+
+ request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
+ request.setAttribute("initialTabId", WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true));
+ Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
+ request.setAttribute(AttributeNames.PARAM_TOOL_CONTENT_ID, contentId);
+
+ ITaskListService service = getTaskListService();
+ TaskList taskList = service.getTaskListByContentId(contentId);
+
+ List sessionDtos = service.getSummary(contentId);
+
+ // cache into sessionMap
+ sessionMap.put(TaskListConstants.ATTR_SESSION_DTOS, sessionDtos);
+ sessionMap.put(TaskListConstants.ATTR_MONITOR_VERIFICATION_REQUIRED, taskList.isMonitorVerificationRequired());
+ sessionMap.put(TaskListConstants.PAGE_EDITABLE, taskList.isContentInUse());
+ sessionMap.put(TaskListConstants.ATTR_TASKLIST, taskList);
+ sessionMap.put(TaskListConstants.ATTR_TOOL_CONTENT_ID, contentId);
+ sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID,
+ WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID));
+ sessionMap.put(TaskListConstants.ATTR_IS_GROUPED_ACTIVITY, service.isGroupedActivity(contentId));
+
+ if (taskList.getSubmissionDeadline() != null) {
+ Date submissionDeadline = taskList.getSubmissionDeadline();
+ HttpSession ss = SessionManager.getSession();
+ UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ TimeZone teacherTimeZone = teacher.getTimeZone();
+ Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(teacherTimeZone, submissionDeadline);
+ sessionMap.put(TaskListConstants.ATTR_SUBMISSION_DEADLINE, tzSubmissionDeadline.getTime());
}
- private ActionForward itemSummary(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
- ITaskListService service = getTaskListService();
+ // Create reflectList if reflection is enabled.
+ if (taskList.isReflectOnActivity()) {
+ List reflectList = service.getReflectList(taskList.getContentId());
+ // Add reflectList to sessionMap
+ sessionMap.put(TaskListConstants.ATTR_REFLECT_LIST, reflectList);
+ }
+
+ return mapping.findForward(TaskListConstants.SUCCESS);
+ }
+
+ private ActionForward itemSummary(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) {
+ ITaskListService service = getTaskListService();
+ String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID);
+ SessionMap sessionMap = (SessionMap) request.getSession()
+ .getAttribute(sessionMapID);
+ request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMapID);
+
+ Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
+ Long itemUid = WebUtil.readLongParam(request, TaskListConstants.PARAM_ITEM_UID);
+
+ TaskListItem item = service.getTaskListItemByUid(itemUid);
+
+ // create sessionList depending on whether the item was created by author or by learner
+ List sessionDtos = new ArrayList();
+ if (item.isCreateByAuthor()) {
+ List sessionList = service.getSessionsByContentId(contentId);
+ for (TaskListSession session : sessionList) {
+ SessionDTO sessionDto = new SessionDTO(session);
+ sessionDtos.add(sessionDto);
+ }
- Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
- Long taskListItemId = WebUtil.readLongParam(request, TaskListConstants.ATTR_TASK_LIST_ITEM_UID);
- ItemSummary ItemSummary = service.getItemSummary(contentId, taskListItemId, false);
-
- request.setAttribute(TaskListConstants.ATTR_ITEM_SUMMARY, ItemSummary);
- request.setAttribute(TaskListConstants.ATTR_IS_GROUPED_ACTIVITY, service.isGroupedActivity(contentId));
- return mapping.findForward(TaskListConstants.SUCCESS);
+ } else {
+ TaskListSession userSession = item.getCreateBy().getSession();
+ SessionDTO sessionDto = new SessionDTO(userSession);
+ sessionDtos.add(sessionDto);
}
+
+ request.setAttribute(TaskListConstants.ATTR_SESSION_DTOS, sessionDtos);
+ request.setAttribute(TaskListConstants.ATTR_TASK_LIST_ITEM, item);
- /**
- * Mark taskList item as complete status.
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return
- */
- private ActionForward setVerifiedByMonitor(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
+ return mapping.findForward(TaskListConstants.SUCCESS);
+ }
- Long uid = WebUtil.readLongParam(request, TaskListConstants.ATTR_USER_UID);
- ITaskListService service = getTaskListService();
- TaskListUser user = service.getUser(uid);
- user.setVerifiedByMonitor(true);
- service.createUser(user);
+ /**
+ * Refreshes user list.
+ */
+ public ActionForward getPagedUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse res) throws IOException, ServletException, JSONException {
+ ITaskListService service = getTaskListService();
+
+ String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID);
+ SessionMap sessionMap = (SessionMap) request.getSession()
+ .getAttribute(sessionMapID);
+ TaskList tasklist = (TaskList) sessionMap.get(TaskListConstants.ATTR_TASKLIST);
+ Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID);
+ List sessionDtos = (List) sessionMap.get(TaskListConstants.ATTR_SESSION_DTOS);
+
+ //find according sessionDto
+ SessionDTO sessionDto = null;
+ for (SessionDTO sessionDtoIter : sessionDtos) {
+ if (sessionDtoIter.getSessionId().equals(sessionId)) {
+ sessionDto = sessionDtoIter;
+ }
+ }
+ List items = sessionDto.getTaskListItems();
- Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
- String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID);
-
- ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig(TaskListConstants.SUCCESS));
- redirect.addParameter(AttributeNames.PARAM_TOOL_CONTENT_ID, contentId);
- redirect.addParameter(AttributeNames.PARAM_CONTENT_FOLDER_ID, contentFolderID);
- return redirect;
+ // Getting the params passed in from the jqGrid
+ int page = WebUtil.readIntParam(request, AttributeNames.PARAM_PAGE);
+ int rowLimit = WebUtil.readIntParam(request, AttributeNames.PARAM_ROWS);
+ String sortOrder = WebUtil.readStrParam(request, AttributeNames.PARAM_SORD);
+ String sortBy = WebUtil.readStrParam(request, AttributeNames.PARAM_SIDX, true);
+ if (sortBy == "") {
+ sortBy = "userName";
}
+ String searchString = WebUtil.readStrParam(request, "userName", true);
- private ActionForward listuser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
- Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID);
- Long itemUid = WebUtil.readLongParam(request, TaskListConstants.PARAM_RESOURCE_ITEM_UID);
+ // Get the user list from the db
+ Collection userDtos = service.getPagedUsersBySession(sessionId, page - 1, rowLimit, sortBy,
+ sortOrder, searchString);
+ int countSessionUsers = service.getCountPagedUsersBySession(sessionId, searchString);
- //get user list by given item uid
- ITaskListService service = getTaskListService();
- List list = service.getUserListBySessionItem(sessionId, itemUid);
-
- //set to request
- request.setAttribute(TaskListConstants.ATTR_USER_LIST, list);
- return mapping.findForward(TaskListConstants.SUCCESS);
+ int totalPages = new Double(
+ Math.ceil(new Integer(countSessionUsers).doubleValue() / new Integer(rowLimit).doubleValue()))
+ .intValue();
+
+ JSONArray rows = new JSONArray();
+ int i = 1;
+ for (TaskListUserDTO userDto : userDtos) {
+
+ JSONArray userData = new JSONArray();
+ userData.put(userDto.getUserId());
+ String fullName = StringEscapeUtils.escapeHtml(userDto.getFullName());
+ userData.put(fullName);
+
+ Set completedTaskUids = userDto.getCompletedTaskUids();
+ for (TaskListItem item : items) {
+ String completionImage = completedTaskUids.contains(item.getUid())
+ ? " "
+ : " ";
+ userData.put(completionImage);
+ }
+
+ if (tasklist.isMonitorVerificationRequired()) {
+ String label = StringEscapeUtils.escapeHtml(service.getMessage("label.confirm"));
+
+ String verificationStatus = userDto.isVerifiedByMonitor()
+ ? " "
+ : "" + label + " ";
+ userData.put(verificationStatus);
+ }
+
+ JSONObject userRow = new JSONObject();
+ userRow.put("id", i++);
+ userRow.put("cell", userData);
+
+ rows.put(userRow);
}
+
+ JSONObject responseJSON = new JSONObject();
+ responseJSON.put("total", totalPages);
+ responseJSON.put("page", page);
+ responseJSON.put("records", countSessionUsers);
+ responseJSON.put("rows", rows);
+
+ res.setContentType("application/json;charset=utf-8");
+ res.getWriter().print(new String(responseJSON.toString()));
+ return null;
+ }
+
+ /**
+ * Refreshes user list.
+ */
+ public ActionForward getPagedUsersByItem(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse res) throws IOException, ServletException, JSONException {
+ ITaskListService service = getTaskListService();
- private ActionForward viewReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
+ Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID);
+ Long itemUid = WebUtil.readLongParam(request, TaskListConstants.PARAM_ITEM_UID);
+
+ // Getting the params passed in from the jqGrid
+ int page = WebUtil.readIntParam(request, AttributeNames.PARAM_PAGE);
+ int rowLimit = WebUtil.readIntParam(request, AttributeNames.PARAM_ROWS);
+ String sortOrder = WebUtil.readStrParam(request, AttributeNames.PARAM_SORD);
+ String sortBy = WebUtil.readStrParam(request, AttributeNames.PARAM_SIDX, true);
+ if (sortBy == "") {
+ sortBy = "userName";
+ }
+ String searchString = WebUtil.readStrParam(request, "userName", true);
+
+ // Get the user list from the db
+ Collection userDtos = service.getPagedUsersBySessionAndItem(sessionId, itemUid, page - 1,
+ rowLimit, sortBy, sortOrder, searchString);
+ int countSessionUsers = service.getCountPagedUsersBySession(sessionId, searchString);
+
+ int totalPages = new Double(
+ Math.ceil(new Integer(countSessionUsers).doubleValue() / new Integer(rowLimit).doubleValue()))
+ .intValue();
+
+ //date formatters
+ DateFormat dateFormatter = new SimpleDateFormat("d-MMM-yyyy h:mm a");
+ HttpSession ss = SessionManager.getSession();
+ UserDTO monitorDto = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ TimeZone monitorTimeZone = monitorDto.getTimeZone();
+
+ //get all comments and attachments
+ TaskListItem item = service.getTaskListItemByUid(itemUid);
+ Set itemComments = item.getComments();
+ Set itemAttachments = item.getAttachments();
+ String label = StringEscapeUtils.escapeHtml(service.getMessage("label.download"));
+
+ int i = 0;
+ JSONArray rows = new JSONArray();
+ for (TaskListUserDTO userDto : userDtos) {
+
+ JSONArray userData = new JSONArray();
+ String fullName = StringEscapeUtils.escapeHtml(userDto.getFullName());
+ userData.put(fullName);
+
+ String completionImage = userDto.isCompleted()
+ ? " "
+ : " ";
+ userData.put(completionImage);
+
+ String accessDate = (userDto.getAccessDate() == null) ? "" : dateFormatter.format(DateUtil
+ .convertToTimeZoneFromDefault(monitorTimeZone, userDto.getAccessDate()));
+ userData.put(accessDate);
+
+ // fill up with comments and attachments made by this user
+ if (item.isCommentsAllowed() || item.isFilesAllowed()) {
+ String commentsFiles = "";
- Long uid = WebUtil.readLongParam(request, TaskListConstants.ATTR_USER_UID);
+ ArrayList userComments = new ArrayList();
+ for (TaskListItemComment comment : itemComments) {
+ if (userDto.getUserId().equals(comment.getCreateBy().getUserId())) {
+ userComments.add(comment.getComment());
+ }
+ }
+ if (!userComments.isEmpty()) {
+ commentsFiles += "";
+ for (String userComment : userComments) {
+ commentsFiles += StringEscapeUtils.escapeHtml(userComment);
+ }
+ commentsFiles += " ";
+ }
+
+ ArrayList userAttachments = new ArrayList();
+ for (TaskListItemAttachment attachment : itemAttachments) {
+ if (userDto.getUserId().equals(attachment.getCreateBy().getUserId())) {
+ userAttachments.add(attachment);
+ }
+ }
+ if (!userAttachments.isEmpty()) {
+ commentsFiles += "";
+ for (TaskListItemAttachment userAttachment : userAttachments) {
+ commentsFiles += StringEscapeUtils.escapeHtml(userAttachment.getFileName()) + " ";
+ commentsFiles += "" + label + " ";
+ }
+ commentsFiles += " ";
+ }
- ITaskListService service = getTaskListService();
- TaskListUser user = service.getUser(uid);
- Long sessionID = user.getSession().getSessionId();
- NotebookEntry notebookEntry = service.getEntry(sessionID,
- CoreNotebookConstants.NOTEBOOK_TOOL,
- TaskListConstants.TOOL_SIGNATURE, user.getUserId().intValue());
+ commentsFiles += " ";
- TaskListSession session = service.getTaskListSessionBySessionId(sessionID);
- ReflectDTO refDTO = new ReflectDTO(user);
- if(notebookEntry == null){
- refDTO.setFinishReflection(false);
- refDTO.setReflect(null);
- }else{
- refDTO.setFinishReflection(true);
- refDTO.setReflect(notebookEntry.getEntry());
- }
- refDTO.setReflectInstructions(session.getTaskList().getReflectInstructions());
-
- request.setAttribute("userDTO", refDTO);
- return mapping.findForward("success");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+ userData.put(commentsFiles);
+ }
+
+ JSONObject userRow = new JSONObject();
+ userRow.put("id", i++);
+ userRow.put("cell", userData);
+
+ rows.put(userRow);
}
+
+ JSONObject responseJSON = new JSONObject();
+ responseJSON.put("total", totalPages);
+ responseJSON.put("page", page);
+ responseJSON.put("records", countSessionUsers);
+ responseJSON.put("rows", rows);
+
+ res.setContentType("application/json;charset=utf-8");
+ res.getWriter().print(new String(responseJSON.toString()));
+ return null;
+ }
+
+ /**
+ * Mark taskList user as verified.
+ *
+ * @param mapping
+ * @param form
+ * @param request
+ * @param response
+ * @return
+ * @throws IOException
+ */
+ private ActionForward setVerifiedByMonitor(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) throws IOException {
+
+ Long userUid = WebUtil.readLongParam(request, TaskListConstants.ATTR_USER_UID);
+ ITaskListService service = getTaskListService();
+ TaskListUser user = service.getUser(userUid);
+ user.setVerifiedByMonitor(true);
+ service.createUser(user);
+ response.setContentType("text/html");
+ PrintWriter out = response.getWriter();
+ out.write(userUid.toString());
+ out.flush();
+ out.close();
+ return null;
+ }
+
/**
* Set Submission Deadline
*
@@ -213,34 +438,33 @@
*/
public ActionForward setSubmissionDeadline(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
-
- ITaskListService service = getTaskListService();
- Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
- TaskList taskList = service.getTaskListByContentId(contentID);
-
- Long dateParameter = WebUtil.readLongParam(request, TaskListConstants.ATTR_SUBMISSION_DEADLINE, true);
- Date tzSubmissionDeadline = null;
- if (dateParameter != null) {
- Date submissionDeadline = new Date(dateParameter);
- HttpSession ss = SessionManager.getSession();
- org.lamsfoundation.lams.usermanagement.dto.UserDTO teacher = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss.getAttribute(AttributeNames.USER);
- TimeZone teacherTimeZone = teacher.getTimeZone();
- tzSubmissionDeadline = DateUtil.convertFromTimeZoneToDefault(teacherTimeZone, submissionDeadline);
- }
- taskList.setSubmissionDeadline(tzSubmissionDeadline);
- service.saveOrUpdateTaskList(taskList);
- return null;
+
+ ITaskListService service = getTaskListService();
+ Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
+ TaskList taskList = service.getTaskListByContentId(contentID);
+
+ Long dateParameter = WebUtil.readLongParam(request, TaskListConstants.ATTR_SUBMISSION_DEADLINE, true);
+ Date tzSubmissionDeadline = null;
+ if (dateParameter != null) {
+ Date submissionDeadline = new Date(dateParameter);
+ HttpSession ss = SessionManager.getSession();
+ org.lamsfoundation.lams.usermanagement.dto.UserDTO teacher = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss
+ .getAttribute(AttributeNames.USER);
+ TimeZone teacherTimeZone = teacher.getTimeZone();
+ tzSubmissionDeadline = DateUtil.convertFromTimeZoneToDefault(teacherTimeZone, submissionDeadline);
+ }
+ taskList.setSubmissionDeadline(tzSubmissionDeadline);
+ service.saveOrUpdateTaskList(taskList);
+ return null;
}
-
-
-
- // *************************************************************************************
- // Private method
- // *************************************************************************************
- private ITaskListService getTaskListService() {
- WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext());
- return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE);
- }
-
+ // *************************************************************************************
+ // Private method
+ // *************************************************************************************
+ private ITaskListService getTaskListService() {
+ WebApplicationContext wac = WebApplicationContextUtils
+ .getRequiredWebApplicationContext(getServlet().getServletContext());
+ return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE);
+ }
+
}