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