Skip to content
Snippets Groups Projects
Commit a2e83c0d authored by srosse's avatar srosse
Browse files

OO-2390: remove the reference in service, only remove the reference, not the assessment entry

parent 1200edea
No related branches found
No related tags found
No related merge requests found
......@@ -86,7 +86,6 @@ import org.olat.ims.qti21.ui.AssessmentTestDisplayController;
import org.olat.ims.qti21.ui.QTI21AssessmentDetailsController;
import org.olat.ims.qti21.ui.QTI21RuntimeController;
import org.olat.ims.qti21.ui.editor.AssessmentTestComposerController;
import org.olat.modules.assessment.manager.AssessmentEntryDAO;
import org.olat.modules.qpool.model.QItemList;
import org.olat.repository.ErrorList;
import org.olat.repository.RepositoryEntry;
......@@ -127,8 +126,6 @@ public class QTI21AssessmentTestHandler extends FileHandler {
@Autowired
private QTI21QPoolServiceProvider qpoolServiceProvider;
@Autowired
private AssessmentEntryDAO assessmentEntryDAO;
@Autowired
private AssessmentTestSessionDAO assessmentTestSessionDao;
......@@ -462,7 +459,6 @@ public class QTI21AssessmentTestHandler extends FileHandler {
public boolean cleanupOnDelete(RepositoryEntry entry, OLATResourceable res) {
boolean clean = super.cleanupOnDelete(entry, res);
assessmentTestSessionDao.deleteAllUserTestSessions(entry);
assessmentEntryDAO.deleteEntryForReferenceEntry(entry);
return clean;
}
......
......@@ -272,9 +272,9 @@ public class AssessmentEntryDAO {
* @param entry
* @return
*/
public int deleteEntryForReferenceEntry(RepositoryEntryRef entry) {
public int removeEntryForReferenceEntry(RepositoryEntryRef entry) {
StringBuilder sb = new StringBuilder();
sb.append("delete from assessmententry data where data.referenceEntry.key=:referenceKey");
sb.append("update assessmententry data set data.referenceEntry.key=null where data.referenceEntry.key=:referenceKey");
return dbInstance.getCurrentEntityManager()
.createQuery(sb.toString())
.setParameter("referenceKey", entry.getKey())
......
......@@ -365,6 +365,8 @@ public class RepositoryServiceImpl implements RepositoryService {
handler.cleanupOnDelete(entry, resource);
dbInstance.commit();
//nullify the reference
assessmentEntryDao.removeEntryForReferenceEntry(entry);
assessmentEntryDao.deleteEntryForRepositoryEntry(entry);
dbInstance.commit();
......
......@@ -340,7 +340,7 @@ public class AssessmentEntryDAOTest extends OlatTestCase {
}
@Test
public void deleteEntryForReferenceEntry() {
public void removeEntryForReferenceEntry() {
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-18");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-19");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
......@@ -358,18 +358,24 @@ public class AssessmentEntryDAOTest extends OlatTestCase {
dbInstance.commitAndCloseSession();
// delete by reference
assessmentEntryDao.deleteEntryForReferenceEntry(refEntry);
int affectedRows = assessmentEntryDao.removeEntryForReferenceEntry(refEntry);
dbInstance.commitAndCloseSession();
Assert.assertEquals(3, affectedRows);
//check
AssessmentEntry deletedAssessmentEntry1 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment1.getKey());
Assert.assertNull(deletedAssessmentEntry1);
Assert.assertNotNull(deletedAssessmentEntry1);
Assert.assertNull(deletedAssessmentEntry1.getReferenceEntry());
AssessmentEntry deletedAssessmentEntry2 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment2.getKey());
Assert.assertNull(deletedAssessmentEntry2);
Assert.assertNotNull(deletedAssessmentEntry2);
Assert.assertNull(deletedAssessmentEntry2.getReferenceEntry());
AssessmentEntry deletedAssessmentEntry3 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment3.getKey());
Assert.assertNotNull(deletedAssessmentEntry3);
Assert.assertNotNull(deletedAssessmentEntry3.getReferenceEntry());
Assert.assertEquals(entry, deletedAssessmentEntry3.getReferenceEntry());
AssessmentEntry deletedAssessmentEntry4 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment4.getKey());
Assert.assertNull(deletedAssessmentEntry4);
Assert.assertNotNull(deletedAssessmentEntry4);
Assert.assertNull(deletedAssessmentEntry4.getReferenceEntry());
}
@Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment