diff --git a/src/main/java/org/olat/ims/qti21/manager/QTI21StatisticsManagerImpl.java b/src/main/java/org/olat/ims/qti21/manager/QTI21StatisticsManagerImpl.java index 8e54fffece6a436effee5bab587c49a0cbeb88df..68e0055fb7b3262bc4c61965f21839e4270a5c73 100644 --- a/src/main/java/org/olat/ims/qti21/manager/QTI21StatisticsManagerImpl.java +++ b/src/main/java/org/olat/ims/qti21/manager/QTI21StatisticsManagerImpl.java @@ -108,7 +108,8 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { } sb.append(" and asession.lastModified = (select max(a2session.lastModified) from qtiassessmenttestsession a2session") - .append(" where asession.testEntry.key=a2session.testEntry.key and a2session.repositoryEntry.key=asession.repositoryEntry.key"); + .append(" where asession.testEntry.key=a2session.testEntry.key and a2session.repositoryEntry.key=asession.repositoryEntry.key") + .append(" and a2session.exploded=false and a2session.cancelled=false"); if(searchParams.getNodeIdent() != null ) { sb.append(" and a2session.subIdent=asession.subIdent"); } else { @@ -125,7 +126,7 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { sb.append(" and asession.identity.key in (select data.identity.key from assessmententry data") .append(" where data.repositoryEntry.key=asession.repositoryEntry.key") .append(" )"); - } else if(searchParams.getLimitToGroups() != null && searchParams.getLimitToGroups().size() > 0) { + } else if(searchParams.getLimitToGroups() != null && !searchParams.getLimitToGroups().isEmpty()) { sb.append(" and asession.identity.key in ( select membership.identity.key from bgroupmember membership") .append(" where membership.group in (:baseGroups) and membership.role='").append(GroupRole.participant).append("'") .append(" )"); @@ -164,7 +165,7 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { // } else if(searchParams.isViewAllUsers()) { // - } else if(searchParams.getLimitToGroups() != null && searchParams.getLimitToGroups().size() > 0) { + } else if(searchParams.getLimitToGroups() != null && !searchParams.getLimitToGroups().isEmpty()) { query.setParameter("baseGroups", searchParams.getLimitToGroups()); } } @@ -236,7 +237,7 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { } dataPos++; } - if (rawDatas.size() == 0) { + if (rawDatas.isEmpty()) { minScore = 0; } @@ -344,7 +345,7 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { } for(RawData result:results) { - Long numOfAnswers = result.getCount();; + Long numOfAnswers = result.getCount(); if(numOfAnswers != null && numOfAnswers.longValue() > 0) { String stringuifiedResponse = result.getStringuifiedResponse(); for(int i=simpleChoices.size(); i-->0; ) { @@ -377,7 +378,7 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { } for(RawData result:results) { - Long numOfAnswers = result.getCount();; + Long numOfAnswers = result.getCount(); if(numOfAnswers != null && numOfAnswers.longValue() > 0) { String stringuifiedResponse = result.getStringuifiedResponse(); for(int i=hottexts.size(); i-->0; ) { @@ -410,7 +411,7 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { } for(RawData result:results) { - Long numOfAnswers = result.getCount();; + Long numOfAnswers = result.getCount(); if(numOfAnswers != null && numOfAnswers.longValue() > 0) { String stringuifiedResponse = result.getStringuifiedResponse(); for(int i=hotspotChoices.size(); i-->0; ) { @@ -583,7 +584,7 @@ public class QTI21StatisticsManagerImpl implements QTI21StatisticsManager { correctResponse = solution.toString(); } - double points = Double.NaN; + double points; if(numericalEntry.getScore() == null) { points = 0.0d;//all score } else { diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentTestSessionTableModel.java b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentTestSessionTableModel.java index 957c7468deb6692010114d97854b803054ed65f2..58e84e16da80e5c2ff702f68ce1cf5b61c80a228 100644 --- a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentTestSessionTableModel.java +++ b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentTestSessionTableModel.java @@ -122,17 +122,19 @@ public class QTI21AssessmentTestSessionTableModel extends DefaultFlexiTableDataM } return ""; } - case open: { - Date finished = session.getTestSession().getFinishTime(); - return finished == null ? Boolean.FALSE : Boolean.TRUE; - } + case open: return Boolean.valueOf(!isTestSessionOpen(session)); case correction: return (lastSession != null && lastSession.equals(session.getTestSession())); - case invalidate: return !session.getTestSession().isCancelled() && !session.getTestSession().isExploded(); + case invalidate: return !isTestSessionOpen(session) && !session.getTestSession().isCancelled() && !session.getTestSession().isExploded(); case tools: return session.getToolsLink(); default: return "ERROR"; } } + private boolean isTestSessionOpen(QTI21AssessmentTestSessionDetails session) { + Date finished = session.getTestSession().getFinishTime(); + return finished == null; + } + private Date getTerminationTime(QTI21AssessmentTestSessionDetails session) { Date endTime = session.getTestSession().getTerminationTime(); if(endTime == null) { diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties index 3609c7c119911054c0a7e8c1264afe054f83ba62..2226b5e766a78711fafa2f36296d4669e65e2a45 100644 --- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties @@ -142,7 +142,7 @@ interaction.order.target=Ziel invalidate=Annullieren invalidate.overwrite=Annullieren und Resultat \u00FCbertragen invalidate.test.confirm.title=Annullieren -invalidate.test.confirm.text=Wollen Sie den Test Session ung\u00FCltig machen? Die Daten werden nicht gel\u00F6scht. +invalidate.test.confirm.text=Wollen Sie diese Test-Session als ung\u00FCltig markieren? Die Daten werden nicht gel\u00F6scht. item.comment=Kommentar kprim.minus=Falsch kprim.plus=Richtig diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties index 7752005110caaa7d432f3bce726c1e1ed989340b..11da9ba0b05c7f6a4d96cbe6e13b21473135d3e9 100644 --- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties @@ -142,7 +142,7 @@ interaction.order.target=Target invalidate=Invalidate invalidate.overwrite=Invalidate and transfer result invalidate.test.confirm.title=Invalidate -invalidate.test.confirm.text=Do you want to invalidate this test session? The date will not be deleted. +invalidate.test.confirm.text=Do you want to mark this test session as invalid? The data will not be deleted. item.comment=Comment kprim.minus=False kprim.plus=True