exportForTeacher(Long contentUid);
/**
* Return summary list for the specified TaskList. Used in monitoring.
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java
===================================================================
diff -u -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 -r23988377bb0a1acee31a9908d19288fa2916546b
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 23988377bb0a1acee31a9908d19288fa2916546b)
@@ -357,6 +357,18 @@
}
return nextUrl;
}
+
+ public int checkMinimumNumberTasksComplete(Long toolSessionId, Long userUid) {
+ int miniView = taskListItemVisitDao.getTasksCompletedCountByUser(toolSessionId, userUid);
+ TaskListSession session = taskListSessionDao.getSessionBySessionId(toolSessionId);
+ if(session == null){
+ log.error("Failed get session by ID [" + toolSessionId + "]");
+ return 0;
+ }
+ int reqView = session.getTaskList().getMinimumNumberTasksComplete();
+
+ return (reqView - miniView);
+ }
/**
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java
===================================================================
diff -u -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 -r23988377bb0a1acee31a9908d19288fa2916546b
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 23988377bb0a1acee31a9908d19288fa2916546b)
@@ -428,6 +428,9 @@
service.deleteTaskListItem(item.getUid());
}
+ //if MinimumNumberTasksComplete is bigger than available items, then set it topics size
+ if(taskListPO.getMinimumNumberTasksComplete() > items.size())
+ taskListPO.setMinimumNumberTasksComplete(items.size());
//**********************************************
//finally persist taskListPO again
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java
===================================================================
diff -u -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 -r23988377bb0a1acee31a9908d19288fa2916546b
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision 23988377bb0a1acee31a9908d19288fa2916546b)
@@ -324,7 +324,9 @@
}else
request.setAttribute(TaskListConstants.ATTR_RUN_AUTO,false);
-
+ if(!validateBeforeFinish(request, sessionMapID))
+ return mapping.getInputForward();
+
ITaskListService service = getTaskListService();
// get sessionId from HttpServletRequest
String nextActivityUrl = null ;
@@ -523,6 +525,9 @@
//get session value
String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID);
+ if(!validateBeforeFinish(request, sessionMapID))
+ return mapping.getInputForward();
+
ReflectionForm refForm = (ReflectionForm) form;
HttpSession ss = SessionManager.getSession();
UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
@@ -626,6 +631,31 @@
return errors;
}
+
+ private boolean validateBeforeFinish(HttpServletRequest request, String sessionMapID) {
+ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
+ Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID);
+
+ HttpSession ss = SessionManager.getSession();
+ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ Long userID = new Long(user.getUserID().longValue());
+
+ ITaskListService service = getTaskListService();
+ int miniViewFlag = service.checkMinimumNumberTasksComplete(sessionId, userID);
+ //if current user view less than reqired view count number, then just return error message.
+ //if it is runOffline content, then need not check minimum view count
+ Boolean runOffline = (Boolean) sessionMap.get(TaskListConstants.PARAM_RUN_OFFLINE);
+ if(miniViewFlag > 0 && !runOffline){
+ ActionErrors errors = new ActionErrors();
+ errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("lable.learning.minimum.view.number.less",miniViewFlag));
+ this.addErrors(request,errors);
+ return false;
+ }
+
+ return true;
+ }
+
+
/**
* Set complete flag for given taskList item.
* @param request
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListForm.java
===================================================================
diff -u -r875f56cb6917d1a52bed0545f2933c3b55497a02 -r23988377bb0a1acee31a9908d19288fa2916546b
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListForm.java (.../TaskListForm.java) (revision 875f56cb6917d1a52bed0545f2933c3b55497a02)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListForm.java (.../TaskListForm.java) (revision 23988377bb0a1acee31a9908d19288fa2916546b)
@@ -73,6 +73,7 @@
if(!StringUtils.equals(param,"start") && !StringUtils.equals(param,"initPage")){
taskList.setLockWhenFinished(false);
taskList.setSequentialOrder(false);
+ taskList.setMinimumNumberTasksComplete(0);
taskList.setAllowContributeTasks(false);
taskList.setMonitorVerificationRequired(false);
taskList.setDefineLater(false);
Index: lams_tool_task/web/pages/authoring/advance.jsp
===================================================================
diff -u -r875f56cb6917d1a52bed0545f2933c3b55497a02 -r23988377bb0a1acee31a9908d19288fa2916546b
--- lams_tool_task/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 875f56cb6917d1a52bed0545f2933c3b55497a02)
+++ lams_tool_task/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 23988377bb0a1acee31a9908d19288fa2916546b)
@@ -1,56 +1,74 @@
<%@ include file="/common/taglibs.jsp"%>
-
+
-
-
+
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
-
+
-
+
+
@@ -112,5 +148,10 @@
+
+
+