Update of 
/var/cvs/contributions/didactor2/src/assessment/java/nl/didactor/component/assessment
In directory 
james.mmbase.org:/tmp/cvs-serv27983/assessment/java/nl/didactor/component/assessment

Modified Files:
        LessonChecker.java 
Log Message:



See also: 
http://cvs.mmbase.org/viewcvs/contributions/didactor2/src/assessment/java/nl/didactor/component/assessment


Index: LessonChecker.java
===================================================================
RCS file: 
/var/cvs/contributions/didactor2/src/assessment/java/nl/didactor/component/assessment/LessonChecker.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- LessonChecker.java  4 Dec 2008 16:34:28 -0000       1.3
+++ LessonChecker.java  8 Jan 2009 11:09:20 -0000       1.4
@@ -24,7 +24,7 @@
 
  * Functionality are made accessible to front-end jsps using (node) functions 
(see e.g. people.xml).
  *
- * @version $Id: LessonChecker.java,v 1.3 2008/12/04 16:34:28 michiel Exp $
+ * @version $Id: LessonChecker.java,v 1.4 2009/01/08 11:09:20 michiel Exp $
  */
 
 public class LessonChecker {
@@ -76,6 +76,23 @@
         return result;
     }
 
+    protected static List<Node> getLearnBlocks(@Required @Name("education") 
Node education) {
+        List<Node> result = new ArrayList<Node>();
+        Cloud cloud = education.getCloud();
+        NodeQuery q = Queries.createRelatedNodesQuery(education,
+                                                      
cloud.getNodeManager("learnblocks"),
+                                                      "posrel",
+                                                      "destination");
+        Queries.addSortOrders(q, "posrel.pos", "UP");
+        NodeList relatedLearnBlocks = q.getNodeManager().getList(q);
+
+        for (Node learnBlock : relatedLearnBlocks) {
+            boolean related = 
Queries.count(AssessmentField.getRelationsQuery(learnBlock)) > 0;
+            result.add(learnBlock);
+        }
+        return result;
+    }
+
 
     protected static Node getClassRel(Node lesson, Node user) {
         NodeList classRels = user.getCloud().getList("" + lesson.getNumber(),
@@ -132,9 +149,14 @@
            return resultSet;
        }
 
+       List<Node> lessons = getLessons(education);
+       boolean foundALesson = false;
+
        boolean statusBlocked = false;
 
-       for (Node learnBlock : getLessons(education)) {
+       for (Node learnBlock : getLearnBlocks(education)) {
+
+           if (lessons.contains(learnBlock)) foundALesson = true;
 
            if (statusBlocked) {
                //It means the rest of learnblocks is closed.
@@ -146,7 +168,7 @@
                Node classrel = getClassRel(learnBlock, user);
                boolean closed = classrel != null;
                log.debug("" + learnBlock.getNumber() + " closed " + closed);
-               if (! closed) {
+               if (! closed && foundALesson) {
                    statusBlocked = true;
                }
            }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to