diff --git a/src/main/java/org/olat/course/assessment/AssessmentManager.java b/src/main/java/org/olat/course/assessment/AssessmentManager.java index 2082f448fdbfffc90ba0e335b3bfb4a3c7328f46..c005b8af263d5cb0e71bb064b8dc7c93d6bbb0a5 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 44e713d4f6d116849a549c5a81c7605d1a902d4b..5f25d31fe13ae901456562df094cfda6d0d4f348 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 f827fceb323bd24fe6d8e83c1a260d23e783cede..1d9d029b1338628252a30a266e95d8429b2e0f73 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 be2397469ba85e6d7a9f44a7adc5899bc47cbdcf..f9eac23e4f7537ca2eb0732d99796d772bbecdfd 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 670ffe88325288f3be68dbd2df80e13ef6899a95..0cb8bd571127e8628b8a1f74af13996b0c2b2a74 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 b0f89d4492f7a8011fabd87f3a4d61ef920dea87..8f74b614884a1030580f8ab9d28c250808ed5873 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 085c5ae39ed738e43a7366db63165d5722db5645..012fa00add7d04de8782e95902215806466a8d1f 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 6e0a766b052d4a73cf026ae8d56c7e53952f7292..bc7ccb565d5b63bbd13c8d8c39265b729b1f622f 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 5bdfb0b3c56a3a8ef0db2b1e6c247ea96246ea8d..a7aa6e51114ae942553f404a8be6374adc7c81cc 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 954953e7cb4d0b89981dd868a434b68653224dc0..aa3b245bf6fa765ace25440ff21495002ce97f9a 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 70b0b31eb885d4dd52f04f628cf791cb88a245c3..763f6f80060e38640d889a16a1bd0cdce63e69cc 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 9a0c10f1a7fe663981e0760c8796077ea216f6d6..6739bab6e06b607d0c41fe649fa96bf0a8f78198 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 3e5660bac638d8c27f174d94adfd11d25c0a1a63..9d1c8c9dcc96f56eac4c71121aadc59fc3965d10 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 0d501b26299e1c9e6edd388b4c4f88378bb407f9..0daf6bf4abcf4982ad8402c03cbedfe96284e152 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 1d276a3d4f4d9e4a982534b993d93db47dbd6adb..0066c11246f1a52985c9ab0ddfdcb6073f528d03 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 f51823edff1f0be08a0f1ab2b2b74d3c6e9609a7..1640f326ecf16f29c2661b345e1954364c94adfb 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 bafaf17202fe36c1bdb6824d98f2fd87d1947e60..0d76589a2abea047ea72a07c1391fe9b01ea45b6 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 6e5a623c34e9d5ea9e0bded3fc2693529a5c7f4e..f3ec2ec5073312c67ef4a5da570e94bb005c2608 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 fa36abd460ec725c2a52f3f238df6dd691ac8a1b..a52b0acc80727d043f3c22717d99cd41b3f3ed00 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 b25ef37107be33d5809738aa24b3b17c17dfcc6c..7516f7010de6d049450458111bb31ebaf6fb6b56 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 78f0364de24931b34d6fd69119ad0af5207644ce..5dd0ab5806b8ca781ec01353ad1ff79e7a6966d2 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 79262d9b0352ec28f1ba7218600e7c2e55fe2e7c..b227e77da0cfd9c45f6adf0fde5ea3b000a995cb 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 d6cb1527e990c62525226c5bd5291a66c1e7d34b..c6a1c78f92297c16ab811e5121fe08af313e5ef3 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 7c82bb9d5176e32062a486c06a853582dc9de8af..965e961b74ee04118e473f1c1002c1f389f7817f 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 affafc0d86c29f6bd877c2f76f440eea6ab39fbe..fe45a473435b9c7a53a88a0e4f263bcf550043c4 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 f99ea0e49790daea9138b9952c2c4fcf437a5d31..9e7dcbcf699095801a3dd91d9476741b591c8550 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 934aa18938189498a7443c8b108083f2689f2f09..ecf668f69b15e97232c00c750c23dd40fbe2162f 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 ee75a4e77cd25779eb1226f0ec41e4d186adc384..84b76f73104fe665423d3135b3ce729784db7235 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