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

Modified Files:
        LessonChecker.java 
Log Message:
javadoc, some more cleaning


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.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- LessonChecker.java  4 Dec 2008 16:00:23 -0000       1.1
+++ LessonChecker.java  4 Dec 2008 16:13:01 -0000       1.2
@@ -14,8 +14,17 @@
 
 
 /**
- * @javadoc
- * @version $Id: LessonChecker.java,v 1.1 2008/12/04 16:00:23 michiel Exp $
+ * The assessment component attributes some statuses to 'learnblocks' directly 
related to the
+ * education ('lessons'). E.g. it can keep track on whether the lesson is 
'closed' and whether
+ * feedback on a lesson was given by a coach (and it can also maintain this 
feedback).
+ *
+ * This class collects some functionalilty for this, it e.g. implements what 
are lessons [EMAIL PROTECTED]
+ * #getLessons}), which lessons are still inaccessible ([EMAIL PROTECTED] 
#getBlockedLearnblocksForUser}) and
+ * whether a lesson already given feedback on ([EMAIL PROTECTED] 
lessonHasFeedback}).
+
+ * Functionality are made accessible to front-end jsps using (node) functions 
(see e.g. people.xml).
+ *
+ * @version $Id: LessonChecker.java,v 1.2 2008/12/04 16:13:01 michiel Exp $
  */
 
 public class LessonChecker {
@@ -67,6 +76,21 @@
         return result;
     }
 
+
+    protected static Node getClassRel(Node lesson, Node user) {
+        NodeList classRels = user.getCloud().getList("" + lesson.getNumber(),
+                                           "learnblocks,classrel,people",
+                                           "classrel.number",
+                                           "people.number='" + 
user.getNumber() + "'",
+                                           null,
+                                           null, null, true);
+        if (classRels.size() == 0) {
+            return null;
+        } else {
+            return classRels.get(0).getNodeValue("classrel.number");
+        }
+    }
+
    /**
     * Returns all learnblocks (or 'lessons') that are blocked for a certain 
user. A learnblock is
     * blocked if
@@ -119,21 +143,10 @@
            } else {
                log.debug("Checking relation " + learnBlock.getNumber() + " -> 
" + user.getNumber());
 
-               NodeList classRels = cloud.getList("" + learnBlock.getNumber(),
-                                                  
"learnblocks,classrel,people",
-                                                  "classrel.number",
-                                                  "people.number='" + 
user.getNumber() + "'",
-                                                  null,
-                                                  null, null, true);
-               boolean assessed = classRels.size() > 0;
-               log.debug("" + learnBlock.getNumber() + " assessed " + 
assessed);
-               if (assessed) {
-                   boolean hasFeedBack = 
classRels.getNode(0).getNodeValue("classrel.number").countRelatedNodes("popfeedback")
 > 0;
-                   if (! hasFeedBack) {
-                       log.debug("" + learnBlock.getNumber() + " has no 
popfeedback object yet, so next lessons are blocked");
-                       statusBlocked = true;
-                   }
-               } else {
+               Node classrel = getClassRel(learnBlock, user);
+               boolean closed = classrel != null;
+               log.debug("" + learnBlock.getNumber() + " closed " + closed);
+               if (! closed) {
                    statusBlocked = true;
                }
            }
@@ -145,8 +158,8 @@
     public static boolean lessonHasFeedback(@Required @Name("node") Node user,
                                             @Required @Name("lesson") Node 
lesson) {
 
-
-        return  true;
+        Node classRel = getClassRel(lesson, user);
+        return classRel.countRelatedNodes("popfeedback") > 0;
     }
 
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to