From 0144a6934f86eb9b2481552f8a3b23dea74b56f4 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Fri, 22 Nov 2019 16:40:26 +0100 Subject: [PATCH] OO-4207: Save completion of courses in database --- .../course/assessment/AssessmentManager.java | 2 +- .../manager/CourseAssessmentManagerImpl.java | 92 +++++++++--------- .../nodes/gta/manager/GTAManagerImpl.java | 7 +- .../run/preview/PreviewAssessmentManager.java | 2 +- .../run/scoring/AssessmentAccounting.java | 8 +- .../ui/AssessmentTestDisplayController.java | 2 +- .../AssessmentItemEditorController.java | 4 +- .../modules/assessment/AssessmentEntry.java | 5 + .../modules/assessment/AssessmentService.java | 26 ++--- .../manager/AssessmentEntryDAO.java | 6 +- .../manager/AssessmentServiceImpl.java | 17 ++-- .../assessment/model/AssessmentEntryImpl.java | 11 +++ .../modules/assessment/ui/AssessmentForm.java | 2 +- .../manager/PortfolioServiceImpl.java | 8 +- .../VideoAssessmentItemController.java | 6 +- .../portfolio/manager/EPFrontendManager.java | 5 +- .../database/mysql/alter_14_2_x_to_15_0_0.sql | 1 + .../database/mysql/setupDatabase.sql | 1 + .../oracle/alter_14_2_x_to_15_0_0.sql | 1 + .../database/oracle/setupDatabase.sql | 1 + .../postgresql/alter_14_2_x_to_15_0_0.sql | 1 + .../database/postgresql/setupDatabase.sql | 1 + .../manager/AssessmentToolManagerTest.java | 42 ++++---- .../highscore/HighScoreManagerTest.java | 2 +- .../manager/AssessmentItemSessionDAOTest.java | 2 +- .../manager/AssessmentResponseDAOTest.java | 2 +- .../manager/AssessmentTestSessionDAOTest.java | 20 ++-- .../manager/AssessmentEntryDAOTest.java | 97 +++++++++++-------- 28 files changed, 201 insertions(+), 173 deletions(-) diff --git a/src/main/java/org/olat/course/assessment/AssessmentManager.java b/src/main/java/org/olat/course/assessment/AssessmentManager.java index 2082f448fdb..c005b8af263 100644 --- a/src/main/java/org/olat/course/assessment/AssessmentManager.java +++ b/src/main/java/org/olat/course/assessment/AssessmentManager.java @@ -294,7 +294,7 @@ public interface AssessmentManager { public AssessmentEntry getAssessmentEntry(CourseNode courseNode, Identity assessedIdentity); - public AssessmentEntry createAssessmentEntry(CourseNode courseNode, Identity assessedIdentity, ScoreEvaluation scoreEvaluation); + public AssessmentEntry getOrCreateAssessmentEntry(CourseNode courseNode, Identity assessedIdentity, Boolean entryRoot); public AssessmentEntry updateAssessmentEntry(AssessmentEntry assessmentEntry); diff --git a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java index 44e713d4f6d..5f25d31fe13 100644 --- a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java +++ b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java @@ -64,7 +64,6 @@ import org.olat.course.groupsandrights.CourseGroupManager; import org.olat.course.nodeaccess.NodeAccessService; import org.olat.course.nodes.CourseNode; import org.olat.course.run.environment.CourseEnvironment; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreAccounting; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; @@ -114,12 +113,13 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { CoreSpringFactory.autowireObject(this); } - private AssessmentEntry getOrCreate(Identity assessedIdentity, CourseNode courseNode) { - return assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, cgm.getCourseEntry(), courseNode.getIdent(), courseNode.getReferencedRepositoryEntry()); + @Override + public AssessmentEntry getOrCreateAssessmentEntry(CourseNode courseNode, Identity assessedIdentity, Boolean entryRoot) { + return assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, cgm.getCourseEntry(), courseNode.getIdent(), entryRoot, courseNode.getReferencedRepositoryEntry()); } - private AssessmentEntry getOrCreate(Identity assessedIdentity, String subIdent, RepositoryEntry referenceEntry) { - return assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, cgm.getCourseEntry(), subIdent, referenceEntry); + private AssessmentEntry getOrCreate(Identity assessedIdentity, String subIdent, Boolean entryRoot, RepositoryEntry referenceEntry) { + return assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, cgm.getCourseEntry(), subIdent, entryRoot, referenceEntry); } @Override @@ -148,32 +148,6 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { return assessmentService.loadAssessmentEntries(assessedGoup, cgm.getCourseEntry(), courseNode.getIdent()); } - @Override - public AssessmentEntry createAssessmentEntry(CourseNode courseNode, Identity assessedIdentity, ScoreEvaluation scoreEvaluation) { - RepositoryEntry referenceEntry = null; - if(courseNode.needsReferenceToARepositoryEntry()) { - referenceEntry = courseNode.getReferencedRepositoryEntry(); - } - Float score = null; - Boolean passed = null; - Date lastUserModified = null; - Date lastCoachModified = null; - if(scoreEvaluation != null) { - score = scoreEvaluation.getScore(); - passed = scoreEvaluation.getPassed(); - } - if(scoreEvaluation instanceof AssessmentEvaluation) { - AssessmentEvaluation eval = (AssessmentEvaluation)scoreEvaluation; - lastCoachModified = eval.getLastCoachModified(); - lastUserModified = eval.getLastUserModified(); - } - AssessmentEntry createAssessmentEntry = assessmentService - .createAssessmentEntry(assessedIdentity, null, cgm.getCourseEntry(), courseNode.getIdent(), referenceEntry, - score, passed, lastUserModified, lastCoachModified); - DBFactory.getInstance().commit(); - return createAssessmentEntry; - } - @Override public AssessmentEntry updateAssessmentEntry(AssessmentEntry assessmentEntry) { AssessmentEntry updateAssessmentEntry = assessmentService.updateAssessmentEntry(assessmentEntry); @@ -185,7 +159,8 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public void saveNodeAttempts(CourseNode courseNode, Identity identity, Identity assessedIdentity, Integer attempts, Role by) { ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); if(by == Role.coach) { nodeAssessment.setLastCoachModified(new Date()); } else if(by == Role.user) { @@ -213,7 +188,8 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public void saveNodeComment(CourseNode courseNode, Identity identity, Identity assessedIdentity, String comment) { ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); nodeAssessment.setComment(comment); assessmentService.updateAssessmentEntry(nodeAssessment); @@ -249,14 +225,15 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { Files.copy(document.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING); //update counter - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); File[] docs = directory.listFiles(SystemFileFilter.FILES_ONLY); int numOfDocs = docs == null ? 0 : docs.length; nodeAssessment.setNumberOfAssessmentDocuments(numOfDocs); assessmentService.updateAssessmentEntry(nodeAssessment); // node log - ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "assessment document added: " + filename, null); @@ -276,15 +253,16 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { document.delete(); //update counter + ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); File directory = getAssessmentDocumentsDirectory(courseNode, assessedIdentity); - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); File[] docs = directory.listFiles(SystemFileFilter.FILES_ONLY); int numOfDocs = docs == null ? 0 : docs.length; nodeAssessment.setNumberOfAssessmentDocuments(numOfDocs); assessmentService.updateAssessmentEntry(nodeAssessment); // node log - ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "assessment document removed: " + document.getName(), null); @@ -322,7 +300,8 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public void saveNodeCoachComment(CourseNode courseNode, Identity assessedIdentity, String comment) { ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); nodeAssessment.setCoachComment(comment); assessmentService.updateAssessmentEntry(nodeAssessment); @@ -341,7 +320,8 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public void incrementNodeAttempts(CourseNode courseNode, Identity assessedIdentity, UserCourseEnvironment userCourseEnv, Role by) { ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); int attempts = nodeAssessment.getAttempts() == null ? 1 :nodeAssessment.getAttempts().intValue() + 1; nodeAssessment.setAttempts(attempts); if(by == Role.coach) { @@ -374,7 +354,8 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public void incrementNodeAttemptsInBackground(CourseNode courseNode, Identity assessedIdentity, UserCourseEnvironment userCourseEnv) { ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); int attempts = nodeAssessment.getAttempts() == null ? 1 :nodeAssessment.getAttempts().intValue() + 1; nodeAssessment.setAttempts(attempts); assessmentService.updateAssessmentEntry(nodeAssessment); @@ -391,7 +372,10 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { @Override public void updateLastModifications(CourseNode courseNode, Identity assessedIdentity, UserCourseEnvironment userCourseEnv, Role by) { - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); + + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); if(by == Role.coach) { nodeAssessment.setLastCoachModified(new Date()); } else if(by == Role.user) { @@ -409,7 +393,10 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { @Override public void updateLastVisited(CourseNode courseNode, Identity assessedIdentity, Date lastVisit) { - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); + + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); assessmentService.setLastVisit(nodeAssessment, lastVisit); DBFactory.getInstance().commit(); } @@ -417,7 +404,10 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { @Override public void updateCurrentCompletion(CourseNode courseNode, Identity assessedIdentity, UserCourseEnvironment userCourseEnvironment, Double currentCompletion, AssessmentRunStatus runStatus, Role by) { - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); + + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); nodeAssessment.setCurrentRunCompletion(currentCompletion); nodeAssessment.setCurrentRunStatus(runStatus); if(by == Role.coach) { @@ -432,7 +422,10 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { @Override public void updateCompletion(CourseNode courseNode, Identity assessedIdentity, UserCourseEnvironment userCourseEnvironment, Double completion, AssessmentEntryStatus status, Role by) { - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity, courseNode); + ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); + + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); nodeAssessment.setCompletion(completion); nodeAssessment.setAssessmentStatus(status); if(by == Role.coach) { @@ -455,7 +448,9 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public void updateFullyAssessed(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment, Boolean fullyAssessed, AssessmentEntryStatus status, Role by) { Identity assessedIdentity = userCourseEnvironment.getIdentityEnvironment().getIdentity(); - AssessmentEntry nodeAssessment = getOrCreate(assessedIdentity , courseNode); + ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry nodeAssessment = getOrCreateAssessmentEntry(courseNode, assessedIdentity, entryRoot); if (Objects.equal(fullyAssessed, nodeAssessment.getFullyAssessed())) { // Fully assess can only set once return; @@ -490,7 +485,8 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { String subIdent = courseNode.getIdent(); RepositoryEntry referenceEntry = courseNode.getReferencedRepositoryEntry(); - AssessmentEntry assessmentEntry = getOrCreate(assessedIdentity, subIdent, referenceEntry); + Boolean entryRoot = isEntryRoot(course, courseNode); + AssessmentEntry assessmentEntry = getOrCreate(assessedIdentity, subIdent, entryRoot, referenceEntry); if(referenceEntry != null && !referenceEntry.equals(assessmentEntry.getReferenceEntry())) { assessmentEntry.setReferenceEntry(referenceEntry); } @@ -730,4 +726,8 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public void deregisterFromAssessmentChangeEvents(GenericEventListener gel) { CoordinatorManager.getInstance().getCoordinator().getEventBus().deregisterFor(gel, cgm.getCourseEntry().getOlatResource()); } + + private Boolean isEntryRoot(ICourse course, CourseNode courseNode) { + return course.getCourseEnvironment().getRunStructure().getRootNode().getIdent().equals(courseNode.getIdent()); + } } diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java index f827fceb323..1d9d029b133 100644 --- a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java +++ b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java @@ -1721,13 +1721,13 @@ public class GTAManagerImpl implements GTAManager { TaskList taskList = getTaskList(taskImpl); RepositoryEntry courseRepoEntry = taskList.getEntry(); + ICourse course = CourseFactory.loadCourse(courseRepoEntry); AssessmentEntryStatus assessmentStatus = convertToAssessmentEntrystatus(taskImpl, cNode); if(GTAType.group.name().equals(cNode.getModuleConfiguration().getStringValue(GTACourseNode.GTASK_TYPE))) { //update whole group - assessmentService.updateAssessmentEntries(taskImpl.getBusinessGroup(), courseRepoEntry, cNode.getIdent(), null, assessmentStatus); + assessmentService.updateAssessmentEntries(taskImpl.getBusinessGroup(), courseRepoEntry, cNode.getIdent(), Boolean.FALSE, null, assessmentStatus); dbInstance.commit(); - ICourse course = CourseFactory.loadCourse(courseRepoEntry); List<Identity> assessedIdentities = businessGroupRelationDao.getMembers(taskImpl.getBusinessGroup(), GroupRoles.participant.name()); for(Identity assessedIdentity:assessedIdentities) { UserCourseEnvironment userCourseEnv = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course); @@ -1735,10 +1735,9 @@ public class GTAManagerImpl implements GTAManager { } } else { Identity assessedIdentity = taskImpl.getIdentity(); - assessmentService.updateAssessmentEntry(assessedIdentity, courseRepoEntry, cNode.getIdent(), null, assessmentStatus); + assessmentService.updateAssessmentEntry(assessedIdentity, courseRepoEntry, cNode.getIdent(), Boolean.FALSE, null, assessmentStatus); dbInstance.commit(); - ICourse course = CourseFactory.loadCourse(courseRepoEntry); UserCourseEnvironment userCourseEnv = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course); courseAssessmentService.updateLastModifications(cNode, userCourseEnv, taskImpl.getIdentity(), by); } diff --git a/src/main/java/org/olat/course/run/preview/PreviewAssessmentManager.java b/src/main/java/org/olat/course/run/preview/PreviewAssessmentManager.java index be2397469ba..f9eac23e4f7 100644 --- a/src/main/java/org/olat/course/run/preview/PreviewAssessmentManager.java +++ b/src/main/java/org/olat/course/run/preview/PreviewAssessmentManager.java @@ -87,7 +87,7 @@ final class PreviewAssessmentManager implements AssessmentManager { } @Override - public AssessmentEntry createAssessmentEntry(CourseNode courseNode, Identity assessedIdentity, ScoreEvaluation scoreEvaluation) { + public AssessmentEntry getOrCreateAssessmentEntry(CourseNode courseNode, Identity assessedIdentity, Boolean entryRoot) { return null; } diff --git a/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java b/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java index 670ffe88325..0cb8bd57112 100644 --- a/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java +++ b/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java @@ -134,10 +134,10 @@ public class AssessmentAccounting implements ScoreAccounting { private AssessmentEntry getOrCreateAssessmentEntry(CourseNode courseNode) { AssessmentEntry entry = identToEntry.get(courseNode.getIdent()); if (entry == null) { - entry = getAssessmentManager().getAssessmentEntry(courseNode, getIdentity()); - if (entry == null) { - entry = getAssessmentManager().createAssessmentEntry(courseNode, getIdentity(), null); - } + Boolean entryRoot = userCourseEnvironment.getCourseEnvironment().getRunStructure().getRootNode().getIdent().equals(courseNode.getIdent()) + ? Boolean.TRUE + : Boolean.FALSE; + entry = getAssessmentManager().getOrCreateAssessmentEntry(courseNode, getIdentity(), entryRoot); identToEntry.put(entry.getSubIdent(), entry); AssessmentEvaluation assessmentEvaluation = getAssessmentEvaluation(courseNode); courseNodeToEval.put(courseNode, assessmentEvaluation); diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java index b0f89d4492f..8f74b614884 100644 --- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java +++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java @@ -332,7 +332,7 @@ public class AssessmentTestDisplayController extends BasicController implements } private void initOrResumeAssessmentTestSession(UserRequest ureq, boolean authorMode) { - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent, Boolean.FALSE, testEntry); if(outcomesListener == null) { boolean manualCorrections = AssessmentTestHelper.needManualCorrection(resolvedAssessmentTest); outcomesListener = new AssessmentEntryOutcomesListener(entry, testEntry, assessmentEntry, manualCorrections, assessmentService, authorMode); diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java index 085c5ae39ed..012fa00add7 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java @@ -193,7 +193,7 @@ public class AssessmentItemEditorController extends BasicController implements A initItemEditor(ureq); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(getIdentity(), null, testEntry, null, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(getIdentity(), null, testEntry, null, Boolean.TRUE, testEntry); displayCtrl = new AssessmentItemPreviewController(ureq, getWindowControl(), resolvedAssessmentItem, itemRef, testEntry, assessmentEntry, rootDirectory, itemFile); listenTo(displayCtrl); @@ -554,7 +554,7 @@ public class AssessmentItemEditorController extends BasicController implements A removeAsListenerAndDispose(displayCtrl); if(testEntry != null) { - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(getIdentity(), null, testEntry, null, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(getIdentity(), null, testEntry, null, Boolean.TRUE, testEntry); displayCtrl = new AssessmentItemPreviewController(ureq, getWindowControl(), resolvedAssessmentItem, itemRef, testEntry, assessmentEntry, rootDirectory, itemFile); } else { diff --git a/src/main/java/org/olat/modules/assessment/AssessmentEntry.java b/src/main/java/org/olat/modules/assessment/AssessmentEntry.java index 6e0a766b052..bc7ccb565d5 100644 --- a/src/main/java/org/olat/modules/assessment/AssessmentEntry.java +++ b/src/main/java/org/olat/modules/assessment/AssessmentEntry.java @@ -130,6 +130,11 @@ public interface AssessmentEntry extends AssessmentEntryLight { public String getSubIdent(); + /** + * @return is it the root (course node) of the learn resource. + */ + public Boolean getEntryRoot(); + /** * @return The reference to the test */ diff --git a/src/main/java/org/olat/modules/assessment/AssessmentService.java b/src/main/java/org/olat/modules/assessment/AssessmentService.java index 5bdfb0b3c56..a7aa6e51114 100644 --- a/src/main/java/org/olat/modules/assessment/AssessmentService.java +++ b/src/main/java/org/olat/modules/assessment/AssessmentService.java @@ -36,30 +36,18 @@ import org.olat.repository.RepositoryEntryRef; */ public interface AssessmentService { - /** - * - * @param assessedIdentity - * @param entry - * @param subIdent - * @param referenceEntry - * @param score - * @param passed - * @return - */ - public AssessmentEntry createAssessmentEntry(Identity assessedIdentity, String anonymousIdentifier, - RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry, Float score, Boolean passed, Date lastUserModified, Date lastCoachModified); - /** * * @param assessedIdentity * @param entry The repository entry where the assessment happens (the course if the test is in a course or * same as the reference entry if the test is launched as a standalone test). * @param subIdent An additional reference for the course element + * @param entryRoot * @param referenceEntry The test repository entry * @return */ public AssessmentEntry getOrCreateAssessmentEntry(Identity assessedIdentity, String anonymousIdentifier, - RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry); + RepositoryEntry entry, String subIdent, Boolean entryRoot, RepositoryEntry referenceEntry); /** * @@ -96,19 +84,23 @@ public interface AssessmentService { /** * Update the status for a user, create the assessment entries if it doesn't exist. * exist. - * @param group + * @param entryRoot * @param status + * @param group * @return */ - public AssessmentEntry updateAssessmentEntry(Identity assessedIdentity, RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry, AssessmentEntryStatus status); + public AssessmentEntry updateAssessmentEntry(Identity assessedIdentity, RepositoryEntry entry, String subIdent, + Boolean entryRoot, RepositoryEntry referenceEntry, AssessmentEntryStatus status); /** * Update the status for a whole group of users, create the assessment entries if they don't * exist. * @param group + * @param entryRoot * @param status * @return */ - public List<AssessmentEntry> updateAssessmentEntries(BusinessGroup group, RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry, AssessmentEntryStatus status); + public List<AssessmentEntry> updateAssessmentEntries(BusinessGroup group, RepositoryEntry entry, String subIdent, + Boolean entryRoot, RepositoryEntry referenceEntry, AssessmentEntryStatus status); } diff --git a/src/main/java/org/olat/modules/assessment/manager/AssessmentEntryDAO.java b/src/main/java/org/olat/modules/assessment/manager/AssessmentEntryDAO.java index 954953e7cb4..aa3b245bf6f 100644 --- a/src/main/java/org/olat/modules/assessment/manager/AssessmentEntryDAO.java +++ b/src/main/java/org/olat/modules/assessment/manager/AssessmentEntryDAO.java @@ -51,7 +51,7 @@ public class AssessmentEntryDAO { private DB dbInstance; public AssessmentEntry createAssessmentEntry(Identity assessedIdentity, String anonymousIdentifier, - RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry) { + RepositoryEntry entry, String subIdent, Boolean entryRoot, RepositoryEntry referenceEntry) { AssessmentEntryImpl data = new AssessmentEntryImpl(); data.setCreationDate(new Date()); @@ -60,6 +60,7 @@ public class AssessmentEntryDAO { data.setAnonymousIdentifier(anonymousIdentifier); data.setRepositoryEntry(entry); data.setSubIdent(subIdent); + data.setEntryRoot(entryRoot); data.setReferenceEntry(referenceEntry); data.setUserVisibility(Boolean.TRUE); dbInstance.getCurrentEntityManager().persist(data); @@ -67,7 +68,7 @@ public class AssessmentEntryDAO { } public AssessmentEntry createAssessmentEntry(Identity assessedIdentity, String anonymousIdentifier, - RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry, + RepositoryEntry entry, String subIdent, Boolean entryRoot, RepositoryEntry referenceEntry, Float score, Boolean passed, Date lastUserModified, Date lastCoachModified) { AssessmentEntryImpl data = new AssessmentEntryImpl(); @@ -79,6 +80,7 @@ public class AssessmentEntryDAO { data.setAnonymousIdentifier(anonymousIdentifier); data.setRepositoryEntry(entry); data.setSubIdent(subIdent); + data.setEntryRoot(entryRoot); data.setReferenceEntry(referenceEntry); data.setUserVisibility(Boolean.TRUE); if(score != null) { diff --git a/src/main/java/org/olat/modules/assessment/manager/AssessmentServiceImpl.java b/src/main/java/org/olat/modules/assessment/manager/AssessmentServiceImpl.java index 70b0b31eb88..763f6f80060 100644 --- a/src/main/java/org/olat/modules/assessment/manager/AssessmentServiceImpl.java +++ b/src/main/java/org/olat/modules/assessment/manager/AssessmentServiceImpl.java @@ -53,21 +53,20 @@ public class AssessmentServiceImpl implements AssessmentService, UserDataDeletab @Autowired private BusinessGroupRelationDAO businessGroupRelationDao; - @Override public AssessmentEntry createAssessmentEntry(Identity assessedIdentity, String anonymousIdentifier, RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry, Float score, Boolean passed, Date lastUserModified, Date lastCoachModified) { - return assessmentEntryDao.createAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent, referenceEntry, - score, passed, lastUserModified, lastCoachModified); + return assessmentEntryDao.createAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent, null, + referenceEntry, score, passed, lastUserModified, lastCoachModified); } @Override public AssessmentEntry getOrCreateAssessmentEntry(Identity assessedIdentity, String anonymousIdentifier, - RepositoryEntry entry, String subIdent, RepositoryEntry referenceEntry) { + RepositoryEntry entry, String subIdent, Boolean entryRoot, RepositoryEntry referenceEntry) { AssessmentEntry assessmentEntry = assessmentEntryDao.loadAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent); if(assessmentEntry == null) { - assessmentEntry = assessmentEntryDao.createAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent, referenceEntry); + assessmentEntry = assessmentEntryDao.createAssessmentEntry(assessedIdentity, anonymousIdentifier, entry, subIdent, entryRoot, referenceEntry); dbInstance.commit(); } return assessmentEntry; @@ -118,19 +117,19 @@ public class AssessmentServiceImpl implements AssessmentService, UserDataDeletab @Override public AssessmentEntry updateAssessmentEntry(Identity assessedIdentity, RepositoryEntry entry, String subIdent, - RepositoryEntry referenceEntry, AssessmentEntryStatus status) { - AssessmentEntry assessmentEntry = getOrCreateAssessmentEntry(assessedIdentity, null, entry, subIdent, referenceEntry); + Boolean entryRoot, RepositoryEntry referenceEntry, AssessmentEntryStatus status) { + AssessmentEntry assessmentEntry = getOrCreateAssessmentEntry(assessedIdentity, null, entry, subIdent, entryRoot, referenceEntry); assessmentEntry.setAssessmentStatus(status); return assessmentEntryDao.updateAssessmentEntry(assessmentEntry); } @Override public List<AssessmentEntry> updateAssessmentEntries(BusinessGroup group, RepositoryEntry entry, String subIdent, - RepositoryEntry referenceEntry, AssessmentEntryStatus status) { + Boolean entryRoot, RepositoryEntry referenceEntry, AssessmentEntryStatus status) { List<AssessmentEntry> assessmentEntries = new ArrayList<>(); List<Identity> groupParticipants = businessGroupRelationDao.getMembers(group, GroupRoles.participant.name()); for(Identity groupParticipant:groupParticipants) { - AssessmentEntry assessmentEntry = getOrCreateAssessmentEntry(groupParticipant, null, entry, subIdent, referenceEntry); + AssessmentEntry assessmentEntry = getOrCreateAssessmentEntry(groupParticipant, null, entry, subIdent, entryRoot, referenceEntry); assessmentEntry.setAssessmentStatus(status); assessmentEntry = assessmentEntryDao.updateAssessmentEntry(assessmentEntry); assessmentEntries.add(assessmentEntry); diff --git a/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java b/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java index 9a0c10f1a7f..6739bab6e06 100644 --- a/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java +++ b/src/main/java/org/olat/modules/assessment/model/AssessmentEntryImpl.java @@ -141,6 +141,8 @@ public class AssessmentEntryImpl implements Persistable, ModifiedInfo, CreateInf @Column(name="a_subident", nullable=true, insertable=true, updatable=false) private String subIdent; + @Column(name="a_entry_root", nullable=true, insertable=true, updatable=true) + private Boolean entryRoot; @ManyToOne(targetEntity=RepositoryEntry.class,fetch=FetchType.LAZY,optional=true) @JoinColumn(name="fk_reference_entry", nullable=true, insertable=true, updatable=true) @@ -462,6 +464,15 @@ public class AssessmentEntryImpl implements Persistable, ModifiedInfo, CreateInf this.subIdent = subIdent; } + @Override + public Boolean getEntryRoot() { + return entryRoot; + } + + public void setEntryRoot(Boolean entryRoot) { + this.entryRoot = entryRoot; + } + @Override public RepositoryEntry getReferenceEntry() { return referenceEntry; diff --git a/src/main/java/org/olat/modules/assessment/ui/AssessmentForm.java b/src/main/java/org/olat/modules/assessment/ui/AssessmentForm.java index 3e5660bac63..9d1c8c9dcc9 100644 --- a/src/main/java/org/olat/modules/assessment/ui/AssessmentForm.java +++ b/src/main/java/org/olat/modules/assessment/ui/AssessmentForm.java @@ -306,7 +306,7 @@ public class AssessmentForm extends FormBasicController { protected void doUpdateAssessmentData(boolean asDone) { assessmentEntry = assessmentService.loadAssessmentEntry(assessedIdentity, testEntry, null, testEntry); if(assessmentEntry == null) { - assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, testEntry); + assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, Boolean.TRUE, testEntry); } if (assessableElement.hasAttemptsConfigured()) { diff --git a/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java b/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java index 0d501b26299..0daf6bf4abc 100644 --- a/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java +++ b/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java @@ -1340,7 +1340,7 @@ public class PortfolioServiceImpl implements PortfolioService { RepositoryEntry referenceEntry = repositoryService.loadByResourceKey(resource.getKey()); for(Identity assessedIdentity:assessedIdentities) { AssessmentEntry assessmentEntry = assessmentService - .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), referenceEntry); + .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), Boolean.TRUE, referenceEntry); if(by == Role.coach) { assessmentEntry.setLastCoachModified(new Date()); } else if(by == Role.user) { @@ -1449,7 +1449,7 @@ public class PortfolioServiceImpl implements PortfolioService { OLATResource resource = ((BinderImpl)binder.getTemplate()).getOlatResource(); RepositoryEntry referenceEntry = repositoryService.loadByResourceKey(resource.getKey()); AssessmentEntry assessmentEntry = assessmentService - .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), referenceEntry); + .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), Boolean.TRUE, referenceEntry); assessmentEntry.setScore(totalScore); assessmentEntry.setPassed(totalPassed); assessmentEntry.setAssessmentStatus(binderStatus); @@ -1473,7 +1473,7 @@ public class PortfolioServiceImpl implements PortfolioService { OLATResource resource = ((BinderImpl)binder.getTemplate()).getOlatResource(); RepositoryEntry referenceEntry = repositoryService.loadByResourceKey(resource.getKey()); AssessmentEntry assessmentEntry = assessmentService - .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), referenceEntry); + .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), Boolean.TRUE, referenceEntry); status = assessmentEntry.getAssessmentStatus(); } return status; @@ -1502,7 +1502,7 @@ public class PortfolioServiceImpl implements PortfolioService { OLATResource resource = ((BinderImpl)binder.getTemplate()).getOlatResource(); RepositoryEntry referenceEntry = repositoryService.loadByResourceKey(resource.getKey()); AssessmentEntry assessmentEntry = assessmentService - .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), referenceEntry); + .getOrCreateAssessmentEntry(assessedIdentity, null, binder.getEntry(), binder.getSubIdent(), Boolean.TRUE, referenceEntry); assessmentEntry.setFullyAssessed(fullyAssessed); assessmentEntry.setAssessmentStatus(status); assessmentService.updateAssessmentEntry(assessmentEntry); diff --git a/src/main/java/org/olat/modules/video/ui/question/VideoAssessmentItemController.java b/src/main/java/org/olat/modules/video/ui/question/VideoAssessmentItemController.java index 1d276a3d4f4..0066c11246f 100644 --- a/src/main/java/org/olat/modules/video/ui/question/VideoAssessmentItemController.java +++ b/src/main/java/org/olat/modules/video/ui/question/VideoAssessmentItemController.java @@ -117,7 +117,8 @@ public class VideoAssessmentItemController extends BasicController implements Ou .loadAndResolveAssessmentItem(assessmentItemUri, resourceDirectory); String subIdent = courseNode == null ? null : courseNode.getIdent(); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(getIdentity(), null, entry, subIdent, videoEntry); + Boolean entryRoot = courseNode == null? Boolean.TRUE: Boolean.FALSE; + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(getIdentity(), null, entry, subIdent, entryRoot, videoEntry); QTI21DeliveryOptions options = QTI21DeliveryOptions.defaultSettings(); options.setEnableAssessmentItemBack(true); @@ -174,8 +175,9 @@ public class VideoAssessmentItemController extends BasicController implements Ou } String subIdent = courseNode == null ? null : courseNode.getIdent(); + Boolean entryRoot = courseNode == null? Boolean.TRUE: Boolean.FALSE; AssessmentEntry assessmentEntry = assessmentService - .getOrCreateAssessmentEntry(getIdentity(), null, entry, subIdent, videoEntry); + .getOrCreateAssessmentEntry(getIdentity(), null, entry, subIdent, entryRoot, videoEntry); int itemsCompleted = 0; BigDecimal totalScore = BigDecimal.ZERO; diff --git a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java index f51823edff1..1640f326ecf 100755 --- a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java +++ b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java @@ -636,6 +636,7 @@ public class EPFrontendManager implements UserDataDeletable, DeletableGroupData final EPStructuredMap userMap = (EPStructuredMap)map; Boolean synched = coordinator.getSyncer().doInSync(map.getOlatResource(), new SyncerCallback<Boolean>() { + @Override public Boolean execute() { if (userMap.getStructuredMapSource() == null) { return Boolean.FALSE; } // need to reload it, I don't know why @@ -677,7 +678,7 @@ public class EPFrontendManager implements UserDataDeletable, DeletableGroupData structureManager.copyStructureRecursively(template, copy, true); RepositoryEntry referenceEntry = repositoryEntryDao.loadByResourceKey(template.getOlatResource().getKey()); - assessmentService.updateAssessmentEntry(identity, courseEntry, targetSubPath, referenceEntry, AssessmentEntryStatus.inProgress); + assessmentService.updateAssessmentEntry(identity, courseEntry, targetSubPath, Boolean.FALSE, referenceEntry, AssessmentEntryStatus.inProgress); return copy; } }); @@ -1178,7 +1179,7 @@ public class EPFrontendManager implements UserDataDeletable, DeletableGroupData RepositoryEntry referenceEntry = courseNode.getReferencedRepositoryEntry(); RepositoryEntry courseEntry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); - assessmentService.updateAssessmentEntry(owner, courseEntry, courseNode.getIdent(), referenceEntry, AssessmentEntryStatus.inReview); + assessmentService.updateAssessmentEntry(owner, courseEntry, courseNode.getIdent(), Boolean.FALSE, referenceEntry, AssessmentEntryStatus.inReview); } assessmentNotificationsHandler.markPublisherNews(owner, course.getResourceableId()); log.info(Tracing.M_AUDIT, "Map " + map + " from " + owner.getKey() + " has been submitted."); diff --git a/src/main/resources/database/mysql/alter_14_2_x_to_15_0_0.sql b/src/main/resources/database/mysql/alter_14_2_x_to_15_0_0.sql index bafaf17202f..0d76589a2ab 100644 --- a/src/main/resources/database/mysql/alter_14_2_x_to_15_0_0.sql +++ b/src/main/resources/database/mysql/alter_14_2_x_to_15_0_0.sql @@ -7,6 +7,7 @@ alter table o_as_entry add a_obligation varchar(50); alter table o_as_entry add a_first_visit datetime; alter table o_as_entry add a_last_visit datetime; alter table o_as_entry add a_num_visits int8; +alter table o_as_entry add a_entry_root bit; -- forum alter table o_forum add f_refresname varchar(50); diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql index 6e5a623c34e..f3ec2ec5073 100644 --- a/src/main/resources/database/mysql/setupDatabase.sql +++ b/src/main/resources/database/mysql/setupDatabase.sql @@ -1286,6 +1286,7 @@ create table o_as_entry ( a_num_visits int8, fk_entry bigint not null, a_subident varchar(64), + a_entry_root bit default null, fk_reference_entry bigint, fk_identity bigint default null, a_anon_identifier varchar(128) default null, diff --git a/src/main/resources/database/oracle/alter_14_2_x_to_15_0_0.sql b/src/main/resources/database/oracle/alter_14_2_x_to_15_0_0.sql index fa36abd460e..a52b0acc807 100644 --- a/src/main/resources/database/oracle/alter_14_2_x_to_15_0_0.sql +++ b/src/main/resources/database/oracle/alter_14_2_x_to_15_0_0.sql @@ -7,6 +7,7 @@ alter table o_as_entry add a_obligation varchar(50); alter table o_as_entry add a_first_visit date; alter table o_as_entry add a_last_visit date; alter table o_as_entry add a_num_visits number(20); +alter table o_as_entry add a_entry_root number; -- Forum alter table o_forum add f_refresname varchar(50); diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql index b25ef37107b..7516f7010de 100644 --- a/src/main/resources/database/oracle/setupDatabase.sql +++ b/src/main/resources/database/oracle/setupDatabase.sql @@ -1349,6 +1349,7 @@ create table o_as_entry ( a_num_visits number(20), fk_entry number(20) not null, a_subident varchar2(64 char), + a_entry_root number default null, fk_reference_entry number(20), fk_identity number(20) default null, a_anon_identifier varchar2(128 char) default null, diff --git a/src/main/resources/database/postgresql/alter_14_2_x_to_15_0_0.sql b/src/main/resources/database/postgresql/alter_14_2_x_to_15_0_0.sql index 78f0364de24..5dd0ab5806b 100644 --- a/src/main/resources/database/postgresql/alter_14_2_x_to_15_0_0.sql +++ b/src/main/resources/database/postgresql/alter_14_2_x_to_15_0_0.sql @@ -7,6 +7,7 @@ alter table o_as_entry add a_obligation varchar(50); alter table o_as_entry add a_first_visit timestamp; alter table o_as_entry add a_last_visit timestamp; alter table o_as_entry add a_num_visits int8; +alter table o_as_entry add a_entry_root bool; -- Forum alter table o_forum add f_refresname varchar(50); diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql index 79262d9b035..b227e77da0c 100644 --- a/src/main/resources/database/postgresql/setupDatabase.sql +++ b/src/main/resources/database/postgresql/setupDatabase.sql @@ -1312,6 +1312,7 @@ create table o_as_entry ( a_num_visits int8, fk_entry int8 not null, a_subident varchar(64), + a_entry_root bool, fk_reference_entry int8, fk_identity int8 default null, a_anon_identifier varchar(128) default null, diff --git a/src/test/java/org/olat/course/assessment/manager/AssessmentToolManagerTest.java b/src/test/java/org/olat/course/assessment/manager/AssessmentToolManagerTest.java index d6cb1527e99..c6a1c78f922 100644 --- a/src/test/java/org/olat/course/assessment/manager/AssessmentToolManagerTest.java +++ b/src/test/java/org/olat/course/assessment/manager/AssessmentToolManagerTest.java @@ -99,11 +99,11 @@ public class AssessmentToolManagerTest extends OlatTestCase { dbInstance.commitAndCloseSession(); // some datas - assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 5.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, refEntry, 8.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, refEntry, 9.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, refEntry); + assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 5.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, null, refEntry, 8.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, null, refEntry, 9.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, null, refEntry); dbInstance.commitAndCloseSession(); // coach of group 1 with id 1 and id2 @@ -197,14 +197,14 @@ public class AssessmentToolManagerTest extends OlatTestCase { dbInstance.commitAndCloseSession(); // some datas - assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 5.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, refEntry, 8.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, refEntry, 9.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedExtIdentity5, null, entry, subIdent, refEntry, 3.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedExtIdentity6, null, entry, subIdent, refEntry, 4.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedExtIdentity7, null, entry, subIdent, refEntry, 5.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, refEntry); + assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 5.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, null, refEntry, 8.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, null, refEntry, 9.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedExtIdentity5, null, entry, subIdent, null, refEntry, 3.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedExtIdentity6, null, entry, subIdent, null, refEntry, 4.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedExtIdentity7, null, entry, subIdent, null, refEntry, 5.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, null, refEntry); dbInstance.commitAndCloseSession(); // administrator with full access @@ -268,14 +268,14 @@ public class AssessmentToolManagerTest extends OlatTestCase { dbInstance.commitAndCloseSession(); // some datas - assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 5.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, refEntry, 8.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, refEntry, 9.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedExtIdentity5, null, entry, subIdent, refEntry, 3.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedExtIdentity6, null, entry, subIdent, refEntry, 4.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedExtIdentity7, null, entry, subIdent, refEntry, 5.0f, Boolean.TRUE, null, null); - assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, refEntry); + assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 5.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, null, refEntry, 8.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, null, refEntry, 9.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedExtIdentity5, null, entry, subIdent, null, refEntry, 3.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedExtIdentity6, null, entry, subIdent, null, refEntry, 4.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedExtIdentity7, null, entry, subIdent, null, refEntry, 5.0f, Boolean.TRUE, null, null); + assessmentEntryDao.createAssessmentEntry(null, UUID.randomUUID().toString(), entry, subIdent, null, refEntry); dbInstance.commitAndCloseSession(); // the course infos need to calculate the number of participants diff --git a/src/test/java/org/olat/course/highscore/HighScoreManagerTest.java b/src/test/java/org/olat/course/highscore/HighScoreManagerTest.java index 7c82bb9d517..965e961b74e 100644 --- a/src/test/java/org/olat/course/highscore/HighScoreManagerTest.java +++ b/src/test/java/org/olat/course/highscore/HighScoreManagerTest.java @@ -71,7 +71,7 @@ public class HighScoreManagerTest extends OlatTestCase { RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessment = courseNodeAssessmentDao - .createAssessmentEntry(assessedIdentity, subIdent, entry, subIdent, entry); + .createAssessmentEntry(assessedIdentity, subIdent, entry, subIdent, null, entry); nodeAssessment.setScore(new BigDecimal(scores[i])); dbInstance.commitAndCloseSession(); AssessmentEntry reloadedAssessment = courseNodeAssessmentDao.loadAssessmentEntryById(nodeAssessment.getKey()); diff --git a/src/test/java/org/olat/ims/qti21/manager/AssessmentItemSessionDAOTest.java b/src/test/java/org/olat/ims/qti21/manager/AssessmentItemSessionDAOTest.java index affafc0d86c..fe45a473435 100644 --- a/src/test/java/org/olat/ims/qti21/manager/AssessmentItemSessionDAOTest.java +++ b/src/test/java/org/olat/ims/qti21/manager/AssessmentItemSessionDAOTest.java @@ -58,7 +58,7 @@ public class AssessmentItemSessionDAOTest extends OlatTestCase { // prepare a test and a user RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("response-session-1"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, "-", testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, "-", null, testEntry); dbInstance.commit(); String itemIdentifier = UUID.randomUUID().toString(); diff --git a/src/test/java/org/olat/ims/qti21/manager/AssessmentResponseDAOTest.java b/src/test/java/org/olat/ims/qti21/manager/AssessmentResponseDAOTest.java index f99ea0e4979..9e7dcbcf699 100644 --- a/src/test/java/org/olat/ims/qti21/manager/AssessmentResponseDAOTest.java +++ b/src/test/java/org/olat/ims/qti21/manager/AssessmentResponseDAOTest.java @@ -62,7 +62,7 @@ public class AssessmentResponseDAOTest extends OlatTestCase { // prepare a test and a user RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("response-session-1"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, "-", testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, "-", null, testEntry); dbInstance.commit(); String itemIdentifier = UUID.randomUUID().toString(); diff --git a/src/test/java/org/olat/ims/qti21/manager/AssessmentTestSessionDAOTest.java b/src/test/java/org/olat/ims/qti21/manager/AssessmentTestSessionDAOTest.java index 934aa189381..ecf668f69b1 100644 --- a/src/test/java/org/olat/ims/qti21/manager/AssessmentTestSessionDAOTest.java +++ b/src/test/java/org/olat/ims/qti21/manager/AssessmentTestSessionDAOTest.java @@ -60,7 +60,7 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { // prepare a test and a user RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-1"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, "-", testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, "-", null, testEntry); dbInstance.commit(); AssessmentTestSession testSession = testSessionDao.createAndPersistTestSession(testEntry, testEntry, "-", assessmentEntry, assessedIdentity, null, true); @@ -75,7 +75,7 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { RepositoryEntry courseEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-2"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, null, testEntry); dbInstance.commit(); AssessmentTestSession testSession = testSessionDao.createAndPersistTestSession(testEntry, courseEntry, subIdent, assessmentEntry, assessedIdentity, null, false); @@ -90,7 +90,7 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { RepositoryEntry courseEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-3"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, null, testEntry); dbInstance.commit(); AssessmentTestSession testSession = testSessionDao.createAndPersistTestSession(testEntry, courseEntry, subIdent, assessmentEntry, assessedIdentity, null, true); @@ -110,7 +110,7 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { RepositoryEntry courseEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-3"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, null, testEntry); dbInstance.commit(); AssessmentTestSession testSession = testSessionDao.createAndPersistTestSession(testEntry, courseEntry, subIdent, assessmentEntry, assessedIdentity, null, false); Assert.assertNotNull(testSession); @@ -151,7 +151,7 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { RepositoryEntry courseEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-3"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, null, testEntry); dbInstance.commit(); AssessmentTestSession testSession1 = testSessionDao.createAndPersistTestSession(testEntry, courseEntry, subIdent, assessmentEntry, assessedIdentity, null, false); @@ -176,7 +176,7 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { // prepare a test and a user RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-4"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, null, testEntry); dbInstance.commit(); //create an assessment test session AssessmentTestSession testSession1 = testSessionDao.createAndPersistTestSession(testEntry, null, null, assessmentEntry, assessedIdentity, null, false); @@ -193,7 +193,7 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { // prepare a test and a user RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry(); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-5"); - AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, testEntry); + AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, null, testEntry); dbInstance.commit(); //create an assessment test session AssessmentTestSession testSession1 = testSessionDao.createAndPersistTestSession(testEntry, null, null, assessmentEntry, assessedIdentity, null, true); @@ -212,9 +212,9 @@ public class AssessmentTestSessionDAOTest extends OlatTestCase { Identity author1 = JunitTestHelper.createAndPersistIdentityAsRndUser("session-6"); Identity author2 = JunitTestHelper.createAndPersistIdentityAsRndUser("session-7"); Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-8"); - AssessmentEntry assessmentEntry1 = assessmentService.getOrCreateAssessmentEntry(author1, null, testEntry, null, testEntry); - AssessmentEntry assessmentEntry2 = assessmentService.getOrCreateAssessmentEntry(author2, null, testEntry, null, testEntry); - AssessmentEntry assessmentEntry3 = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, testEntry); + AssessmentEntry assessmentEntry1 = assessmentService.getOrCreateAssessmentEntry(author1, null, testEntry, null, null, testEntry); + AssessmentEntry assessmentEntry2 = assessmentService.getOrCreateAssessmentEntry(author2, null, testEntry, null, null, testEntry); + AssessmentEntry assessmentEntry3 = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, null, testEntry); dbInstance.commit(); //create an assessment test session AssessmentTestSession testSession1 = testSessionDao.createAndPersistTestSession(testEntry, null, null, assessmentEntry1, author1, null, true); diff --git a/src/test/java/org/olat/modules/assessment/manager/AssessmentEntryDAOTest.java b/src/test/java/org/olat/modules/assessment/manager/AssessmentEntryDAOTest.java index ee75a4e77cd..84b76f73104 100644 --- a/src/test/java/org/olat/modules/assessment/manager/AssessmentEntryDAOTest.java +++ b/src/test/java/org/olat/modules/assessment/manager/AssessmentEntryDAOTest.java @@ -67,9 +67,10 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-1"); RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = "39485349759"; + Boolean entryRoot = Boolean.TRUE; AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, entry); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent,entryRoot, entry); Assert.assertNotNull(nodeAssessment); dbInstance.commitAndCloseSession(); @@ -80,6 +81,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Assert.assertEquals(assessedIdentity, nodeAssessment.getIdentity()); Assert.assertEquals(entry, nodeAssessment.getRepositoryEntry()); Assert.assertEquals(subIdent, nodeAssessment.getSubIdent()); + Assert.assertEquals(entryRoot, nodeAssessment.getEntryRoot()); } @Test @@ -87,10 +89,10 @@ public class AssessmentEntryDAOTest extends OlatTestCase { String anonymousIdentifier = UUID.randomUUID().toString(); RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = "39485349759"; - + Boolean entryRoot = Boolean.TRUE; AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(null, anonymousIdentifier, entry, subIdent, entry); + .createAssessmentEntry(null, anonymousIdentifier, entry, subIdent, entryRoot, entry); Assert.assertNotNull(nodeAssessment); dbInstance.commitAndCloseSession(); @@ -101,6 +103,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Assert.assertEquals(anonymousIdentifier, nodeAssessment.getAnonymousIdentifier()); Assert.assertEquals(entry, nodeAssessment.getRepositoryEntry()); Assert.assertEquals(subIdent, nodeAssessment.getSubIdent()); + Assert.assertEquals(entryRoot, nodeAssessment.getEntryRoot()); } @Test @@ -108,8 +111,9 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-2"); RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); + Boolean entryRoot = Boolean.TRUE; AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, entry); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, entryRoot, entry); dbInstance.commitAndCloseSession(); AssessmentEntry reloadedAssessment = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment.getKey()); @@ -118,6 +122,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Assert.assertEquals(assessedIdentity, reloadedAssessment.getIdentity()); Assert.assertEquals(entry, reloadedAssessment.getRepositoryEntry()); Assert.assertEquals(subIdent, reloadedAssessment.getSubIdent()); + Assert.assertEquals(entryRoot, reloadedAssessment.getEntryRoot()); } @Test @@ -125,8 +130,9 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-3"); RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); + Boolean entryRoot = Boolean.TRUE; AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, entry); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, entryRoot, entry); dbInstance.commitAndCloseSession(); AssessmentEntry reloadedAssessment = assessmentEntryDao @@ -136,6 +142,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Assert.assertEquals(assessedIdentity, reloadedAssessment.getIdentity()); Assert.assertEquals(entry, reloadedAssessment.getRepositoryEntry()); Assert.assertEquals(subIdent, reloadedAssessment.getSubIdent()); + Assert.assertEquals(entryRoot, reloadedAssessment.getEntryRoot()); } @Test @@ -143,8 +150,9 @@ public class AssessmentEntryDAOTest extends OlatTestCase { String anonymousIdentifier = UUID.randomUUID().toString(); RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); + Boolean entryRoot = Boolean.TRUE; AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(null, anonymousIdentifier, entry, subIdent, entry); + .createAssessmentEntry(null, anonymousIdentifier, entry, subIdent, entryRoot, entry); dbInstance.commitAndCloseSession(); AssessmentEntry reloadedAssessment = assessmentEntryDao @@ -154,6 +162,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Assert.assertEquals(anonymousIdentifier, reloadedAssessment.getAnonymousIdentifier()); Assert.assertEquals(entry, reloadedAssessment.getRepositoryEntry()); Assert.assertEquals(subIdent, reloadedAssessment.getSubIdent()); + Assert.assertEquals(entryRoot, reloadedAssessment.getEntryRoot()); } @Test @@ -162,8 +171,9 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry(); RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); + Boolean entryRoot = Boolean.TRUE; AssessmentEntry nodeAssessmentRef = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, entryRoot, refEntry); dbInstance.commitAndCloseSession(); AssessmentEntry reloadedAssessmentRef = assessmentEntryDao @@ -173,6 +183,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { Assert.assertEquals(assessedIdentity, reloadedAssessmentRef.getIdentity()); Assert.assertEquals(entry, reloadedAssessmentRef.getRepositoryEntry()); Assert.assertEquals(subIdent, reloadedAssessmentRef.getSubIdent()); + Assert.assertEquals(entryRoot, reloadedAssessmentRef.getEntryRoot()); } @Test @@ -182,7 +193,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessmentRef = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry, 2.0f, Boolean.TRUE, null, null); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, null, refEntry, 2.0f, Boolean.TRUE, null, null); dbInstance.commitAndCloseSession(); AssessmentEntry resetedAssessmentRef = assessmentEntryDao @@ -215,7 +226,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry, 2.0f, Boolean.TRUE, null, null); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, null, refEntry, 2.0f, Boolean.TRUE, null, null); dbInstance.commitAndCloseSession(); Date firstDate = new GregorianCalendar(2013,1,28,13,24,56).getTime(); @@ -243,7 +254,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry, 2.0f, Boolean.TRUE, null, null); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, null, refEntry, 2.0f, Boolean.TRUE, null, null); dbInstance.commitAndCloseSession(); Date startDate = new GregorianCalendar(2014,1,1,1,1,2).getTime(); @@ -269,7 +280,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry, 2.0f, Boolean.TRUE, null, null); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, null, refEntry, 2.0f, Boolean.TRUE, null, null); dbInstance.commitAndCloseSession(); Assert.assertNull(nodeAssessment.getAssessmentDone()); @@ -312,7 +323,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessment = assessmentEntryDao - .createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry, 2.0f, Boolean.TRUE, null, null); + .createAssessmentEntry(assessedIdentity, null, entry, subIdent, null, refEntry, 2.0f, Boolean.TRUE, null, null); dbInstance.commitAndCloseSession(); Assert.assertNull(nodeAssessment.getFullyAssessedDate()); @@ -349,13 +360,13 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessmentId1 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry); + .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry); AssessmentEntry nodeAssessmentId2 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId3 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, null, null, entry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId4 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, refEntry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); dbInstance.commitAndCloseSession(); // load with our subIdent above @@ -379,10 +390,10 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); - assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry); - assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, null, entry, 3.0f, Boolean.FALSE, null, null); - assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry); + assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, null, null, entry, 3.0f, Boolean.FALSE, null, null); + assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, refEntry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); dbInstance.commitAndCloseSession(); // id 1,2,3 are in the entry, but 4 is in an other entry and must not appears in the list @@ -404,13 +415,13 @@ public class AssessmentEntryDAOTest extends OlatTestCase { RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry(); String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessmentId1 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry); + .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry); AssessmentEntry nodeAssessmentId2 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId3 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, null, null, entry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId4 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); dbInstance.commitAndCloseSession(); // load for identity 1 @@ -460,13 +471,13 @@ public class AssessmentEntryDAOTest extends OlatTestCase { // some assessment entries String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessmentId1 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry); + .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry); AssessmentEntry nodeAssessmentId2 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId3 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, null, null, entry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId4 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); dbInstance.commitAndCloseSession(); //load the assessment entries of entry @@ -489,13 +500,13 @@ public class AssessmentEntryDAOTest extends OlatTestCase { String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessment1 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry); + .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry); AssessmentEntry nodeAssessment2 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessment3 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, null, null, entry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessment4 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); dbInstance.commitAndCloseSession(); // delete by reference @@ -528,13 +539,13 @@ public class AssessmentEntryDAOTest extends OlatTestCase { String subIdent = UUID.randomUUID().toString(); AssessmentEntry nodeAssessment1 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry); + .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry); AssessmentEntry nodeAssessment2 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessment3 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, null, null, entry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessment4 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); dbInstance.commitAndCloseSession(); // delete by reference @@ -572,19 +583,19 @@ public class AssessmentEntryDAOTest extends OlatTestCase { businessGroupRelationDao.addRole(assessedIdentity5, group, GroupRoles.coach.name()); AssessmentEntry nodeAssessmentId1 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry); + .createAssessmentEntry(assessedIdentity1, null, entry, subIdent, null, refEntry); AssessmentEntry nodeAssessmentId2 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 0.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, subIdent, null, refEntry, 0.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId3 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 12.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, entry, null, null, entry, 12.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId4 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity2, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity2, null, refEntry, subIdent, null, refEntry, 3.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId5 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity3, null, entry, subIdent, refEntry, 6.0f, Boolean.TRUE, null, null); + .createAssessmentEntry(assessedIdentity3, null, entry, subIdent, null, refEntry, 6.0f, Boolean.TRUE, null, null); AssessmentEntry nodeAssessmentId6 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity4, null, entry, subIdent, refEntry, 1.0f, Boolean.FALSE, null, null); + .createAssessmentEntry(assessedIdentity4, null, entry, subIdent, null, refEntry, 1.0f, Boolean.FALSE, null, null); AssessmentEntry nodeAssessmentId7 = assessmentEntryDao - .createAssessmentEntry(assessedIdentity5, null, entry, subIdent, refEntry, 10.0f, Boolean.TRUE, null, null); + .createAssessmentEntry(assessedIdentity5, null, entry, subIdent, null, refEntry, 10.0f, Boolean.TRUE, null, null); dbInstance.commitAndCloseSession(); // load with our subIdent above List<AssessmentEntry> assessmentEntries = assessmentEntryDao -- GitLab