Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskList.java =================================================================== diff -u -r721fa349b42e0b7e2ae19d60756fea47146bfdd4 -rc19117bbf8b26bb55afe48dfa8942eece6bb5a67 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskList.java (.../TaskList.java) (revision 721fa349b42e0b7e2ae19d60756fea47146bfdd4) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskList.java (.../TaskList.java) (revision c19117bbf8b26bb55afe48dfa8942eece6bb5a67) @@ -162,7 +162,7 @@ // taskListItem. Will need then for making ties beetween conditions' // taskListItems and real ones. HashMap taskListItemsSeq = new HashMap(); - for(Object itemObject:taskListItems) { + for(Object itemObject:taskList.taskListItems) { TaskListItem item = (TaskListItem) itemObject; taskListItemsSeq.put(item.getSequenceId(), item); } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java =================================================================== diff -u -r721fa349b42e0b7e2ae19d60756fea47146bfdd4 -rc19117bbf8b26bb55afe48dfa8942eece6bb5a67 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 721fa349b42e0b7e2ae19d60756fea47146bfdd4) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision c19117bbf8b26bb55afe48dfa8942eece6bb5a67) @@ -502,20 +502,25 @@ } } - boolean result = false; + boolean result = true; if (condition != null) { Iterator it = condition.getTaskListItems().iterator(); while(it.hasNext()) { TaskListItem item = (TaskListItem) it.next(); - TaskListItemVisitLog visitLog = taskListItemVisitDao.getTaskListItemLog(item.getUid(), user.getUid()); + TaskListItemVisitLog visitLog = taskListItemVisitDao.getTaskListItemLog(item.getUid(), userUid); if (visitLog != null) { + //result is being calculated depending on visitLog value result &= visitLog.isComplete(); } else { + //user hadn't complete this task. So this means the condition isn't met. result = false; break; } } + } else { + //there is no such a condition + result = false; } return result;