Update of
/var/cvs/contributions/didactor2/src/assessment/java/nl/didactor/component/assessment/education_menu/utils
In directory james.mmbase.org:/tmp/cvs-serv15461/education_menu/utils
Modified Files:
LessonChecker.java
Log Message:
impelmentation was overly complicated and incorrect. Let's hope this is better
See also:
http://cvs.mmbase.org/viewcvs/contributions/didactor2/src/assessment/java/nl/didactor/component/assessment/education_menu/utils
Index: LessonChecker.java
===================================================================
RCS file:
/var/cvs/contributions/didactor2/src/assessment/java/nl/didactor/component/assessment/education_menu/utils/LessonChecker.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- LessonChecker.java 17 Oct 2008 14:28:18 -0000 1.6
+++ LessonChecker.java 23 Oct 2008 16:00:38 -0000 1.7
@@ -13,7 +13,7 @@
/**
* @javadoc
- * @version $Id: LessonChecker.java,v 1.6 2008/10/17 14:28:18 michiel Exp $
+ * @version $Id: LessonChecker.java,v 1.7 2008/10/23 16:00:38 michiel Exp $
*/
public class LessonChecker {
@@ -25,6 +25,10 @@
return Component.getComponent("assessment");
}
+
+ /**
+ * Wether, or not, for given neducation the 'relate_learnblocks' setting
is set.
+ */
protected static boolean checkRelated(Cloud cloud, Node education) {
Map wtf = new HashMap();
wtf.put("education", education);
@@ -49,6 +53,7 @@
Node assessment = cloud.getNode(getComponent().getNumber());
if (! education.getRelatedNodes("components", "settingrel",
"destination").contains(assessment)) {
+ log.debug("Nothing blocked because education not related to " +
assessment);
return resultSet;
}
@@ -57,6 +62,7 @@
roles.contains("courseeditor") ||
roles.contains("systemadministrator")) {
// nothing blocked
+ log.debug("Nothing blocked because high role");
return resultSet;
}
@@ -69,9 +75,7 @@
boolean checkRelated = checkRelated(cloud, education);
- int counter = 0;
boolean statusBlocked = false;
- boolean firstHasFeedback = false;
for (NodeIterator it = relatedLearnBlocks.nodeIterator(); it.hasNext();
) {
Node clusterNode = it.nextNode();
@@ -83,36 +87,27 @@
log.debug("Learnblock=" + learnBlock.getNumber() + " is blocked
because the previous one is blocked.");
resultSet.add(learnBlock);
} else {
+ log.debug("Checking relation " + learnBlock.getNumber() + " ->
" + user.getNumber());
+
+ if (checkRelated) {
+ boolean related =
Queries.count(AssessmentField.getRelationsQuery(learnBlock)) > 0;
+ if (! related) continue;
+ }
NodeList classRels = cloud.getList("" + learnBlock.getNumber(),
"learnblocks,classrel,people",
"classrel.number",
"people.number='" +
user.getNumber() + "'",
null,
null, null, true);
+ boolean assessed = classRels.size() > 0;
-
- if (classRels.size() == 0) {
- if (checkRelated) {
- if
(Queries.count(AssessmentField.getRelationsQuery(learnBlock)) != 0) {
- statusBlocked = noFeedbackRelated(learnBlock,
resultSet, counter, statusBlocked, firstHasFeedback);
- }
- } else {
- //blocked
- statusBlocked = noFeedbackRelated(learnBlock,
resultSet, counter, statusBlocked, firstHasFeedback);
- }
+ if (assessed) {
+ boolean hasFeedBack =
cloud.getNode(classRels.getNode(0).getIntValue("classrel.number")).countRelatedNodes("popfeedback")
> 0;
+ if (! hasFeedBack) statusBlocked = true;
} else {
- if
(cloud.getNode(classRels.getNode(0).getIntValue("classrel.number")).countRelatedNodes("popfeedback")
> 0) {
- if (counter == 0) {
- firstHasFeedback = true;
- }
- } else {
- //blocked
- statusBlocked = noFeedbackRelated(learnBlock,
resultSet, counter, statusBlocked, firstHasFeedback);
- }
+ statusBlocked = true;
}
}
-
- counter++;
}
return resultSet;
@@ -121,28 +116,6 @@
-
- private static boolean noFeedbackRelated(Node nodeLearnBlock, Set<Node>
resultSet, int counter, boolean statusBlocked, boolean firstHasFeedback){
- if(counter == 0) {
- log.debug("Learnblock=" + nodeLearnBlock.getNumber() + " is open
because it is the first one in the list");
- } else {
- statusBlocked = true;
- }
-
- if (counter == 1) {
- if (!firstHasFeedback) {
- //The first learnblock has got no feedback
- log.debug("Learnblock=" + nodeLearnBlock.getNumber() + " is
blocked because the previous one has got no feedback.");
- resultSet.add(nodeLearnBlock);
- }
- }
-
- log.debug("Learnblock=" + nodeLearnBlock.getNumber() + " has got no
feedback related.");
-
- return statusBlocked;
- }
-
-
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs