Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java =================================================================== diff -u -r39444d1719a438cb33f7201ba98d4b3292ee9fc2 -r6c1e694a25153c9327c1e6db040a3b690fe1b112 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 39444d1719a438cb33f7201ba98d4b3292ee9fc2) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 6c1e694a25153c9327c1e6db040a3b690fe1b112) @@ -414,27 +414,16 @@ */ public List getSummary(Long contentId) { - List summaryList = new ArrayList(); - - //retrieve all the sessions associated with this taskList - List sessionList = taskListSessionDao.getByContentId(contentId); - TaskList taskList = taskListDao.getByContentId(contentId); - ArrayList itemList = new ArrayList(); - itemList.addAll(taskList.getTaskListItems()); - //create the list containing all taskListItems - for(TaskListSession session:sessionList) { + List sessionList = taskListSessionDao.getByContentId(contentId); - Set newItems = session.getTaskListItems(); - for(TaskListItem item : newItems) { - if (!itemList.contains(item)) itemList.add(item); - } - } + List summaryList = new ArrayList(); - //create the user list of all whom were started this task for(TaskListSession session:sessionList) { + List itemList = getItemListForGroup(contentId, session.getSessionId()); + List userList = taskListUserDao.getBySessionID(session.getSessionId()); //Fill up the copmletion table @@ -465,6 +454,46 @@ return summaryList; } + /** + * @param contentId + * @param sessionId sessionId which defines Group + * @return + */ + public List getItemListForGroup(Long contentId, Long sessionId) { + + //create the list containing all taskListItems + TaskList taskList = taskListDao.getByContentId(contentId); + ArrayList itemList = new ArrayList(); + itemList.addAll(taskList.getTaskListItems()); + + List sessionList = taskListSessionDao.getByContentId(contentId); + for(TaskListSession session:sessionList) { + Set newItems = session.getTaskListItems(); + for(TaskListItem item : newItems) { + if (!itemList.contains(item)) itemList.add(item); + } + } + + List userList = taskListUserDao.getBySessionID(sessionId); + + ArrayList groupItemList = new ArrayList(); + for (TaskListItem item:itemList) { + + if (item.isCreateByAuthor()) { + groupItemList.add(item); + } else { + for (TaskListUser user:userList) { + if (user.getUserId().equals(item.getCreateBy().getUserId())) { + groupItemList.add(item); + break; + } + } + } + } + + return groupItemList; + } + /** * {@inheritDoc} */ @@ -474,8 +503,16 @@ List groupSummaries = new ArrayList(); + //create sessionList depending on if taskListItem created be author or created during learning + List sessionList = new ArrayList(); + if (taskListItem.isCreateByAuthor()) { + sessionList = taskListSessionDao.getByContentId(contentId); + } else { + TaskListSession userSession = taskListItem.getCreateBy().getSession(); + sessionList.add(userSession); + } + //create the user list of all whom were started this task - List sessionList = taskListSessionDao.getByContentId(contentId); for(TaskListSession session:sessionList) { GroupSummary groupSummary = new GroupSummary(); @@ -508,7 +545,7 @@ userItemSummary.setCompleted(false); } - //if we're doing export then fill up all the itemSummaries with reflection information + //if we're doing export then fill up all itemSummaries with reflection information if (isExportProcessing) { NotebookEntry notebookEntry = getEntry(session.getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL,