use of org.olat.course.nodes.cl.model.CheckboxList in project openolat by klemens.
the class CheckListCourseNode method createInstanceForCopy.
@Override
public CourseNode createInstanceForCopy(boolean isNewTitle, ICourse course, Identity author) {
CheckListCourseNode cNode = (CheckListCourseNode) super.createInstanceForCopy(isNewTitle, course, author);
CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class);
CheckboxList list = (CheckboxList) cNode.getModuleConfiguration().get(CONFIG_KEY_CHECKBOX);
if (list != null) {
for (Checkbox checkbox : list.getList()) {
checkbox.setCheckboxId(UUID.randomUUID().toString());
}
}
// the ident of the course node is the same
File sourceDir = checkboxManager.getFileDirectory(course.getCourseEnvironment(), this);
if (sourceDir.exists()) {
File targetDir = checkboxManager.getFileDirectory(course.getCourseEnvironment(), cNode);
if (!targetDir.exists()) {
targetDir.mkdirs();
FileUtils.copyDirContentsToDir(sourceDir, targetDir, false, "copy files of checkbox");
}
}
return cNode;
}
use of org.olat.course.nodes.cl.model.CheckboxList in project openolat by klemens.
the class CheckListCourseNode method importNode.
@Override
public void importNode(File importDirectory, ICourse course, Identity owner, Locale locale, boolean withReferences) {
CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class);
ModuleConfiguration config = getModuleConfiguration();
CheckboxList list = (CheckboxList) config.get(CONFIG_KEY_CHECKBOX);
if (list != null && list.getList() != null) {
for (Checkbox checkbox : list.getList()) {
File fFileImportDir = new File(importDirectory, "checklistfiles/" + getIdent() + "/" + checkbox.getCheckboxId());
String newCheckboxId = UUID.randomUUID().toString();
checkbox.setCheckboxId(newCheckboxId);
if (fFileImportDir.exists()) {
File dir = checkboxManager.getFileDirectory(course.getCourseEnvironment(), this);
dir.mkdirs();
FileUtils.copyDirContentsToDir(fFileImportDir, dir, false, "import file of checkbox");
}
}
}
}
use of org.olat.course.nodes.cl.model.CheckboxList in project openolat by klemens.
the class CheckListCourseNode method updateOnPublish.
@Override
public void updateOnPublish(Locale locale, ICourse course, Identity publisher, PublishEvents publishEvents) {
ModuleConfiguration config = getModuleConfiguration();
// sync the checkbox with the database
CheckboxList list = (CheckboxList) config.get(CONFIG_KEY_CHECKBOX);
CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class);
checkboxManager.syncCheckbox(list, course, getIdent());
CoursePropertyManager pm = course.getCourseEnvironment().getCoursePropertyManager();
List<Identity> assessedUsers = pm.getAllIdentitiesWithCourseAssessmentData(null);
int count = 0;
for (Identity assessedIdentity : assessedUsers) {
updateScorePassedOnPublish(assessedIdentity, publisher, checkboxManager, course);
if (++count % 10 == 0) {
DBFactory.getInstance().commitAndCloseSession();
}
}
DBFactory.getInstance().commitAndCloseSession();
super.updateOnPublish(locale, course, publisher, publishEvents);
}
use of org.olat.course.nodes.cl.model.CheckboxList in project openolat by klemens.
the class CheckListCourseNode method postCopy.
@Override
public void postCopy(CourseEnvironmentMapper envMapper, Processing processType, ICourse course, ICourse sourceCourse) {
ModuleConfiguration config = getModuleConfiguration();
CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class);
CheckboxList list = (CheckboxList) config.get(CONFIG_KEY_CHECKBOX);
if (list != null && list.getList().size() > 0) {
for (Checkbox checkbox : list.getList()) {
String sourceId = checkbox.getCheckboxId();
String targetId = envMapper.getTargetUniqueKey(getIdent(), sourceId);
if (targetId == null) {
targetId = UUID.randomUUID().toString();
envMapper.addUniqueKeyPair(getIdent(), sourceId, targetId);
}
checkbox.setCheckboxId(targetId);
}
}
// the ident of the course node is the same
File sourceDir = checkboxManager.getFileDirectory(sourceCourse.getCourseEnvironment(), this);
if (sourceDir.exists()) {
File targetDir = checkboxManager.getFileDirectory(course.getCourseEnvironment(), this);
if (!targetDir.exists()) {
targetDir.mkdirs();
FileUtils.copyDirContentsToDir(sourceDir, targetDir, false, "copy files of checkbox");
}
}
checkboxManager.syncCheckbox(list, course, getIdent());
super.postCopy(envMapper, processType, course, sourceCourse);
}
use of org.olat.course.nodes.cl.model.CheckboxList in project OpenOLAT by OpenOLAT.
the class CheckboxManagerTest method syncCheckBox.
@Test
public void syncCheckBox() {
// build a list of checkbox to sync
CheckboxList list = new CheckboxList();
Checkbox checkbox1 = new Checkbox();
checkbox1.setCheckboxId(UUID.randomUUID().toString());
checkbox1.setTitle("Sync me");
list.add(checkbox1);
Checkbox checkbox2 = new Checkbox();
checkbox2.setCheckboxId(UUID.randomUUID().toString());
checkbox2.setTitle("Sync me too");
list.add(checkbox2);
// sync them to the database
OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-4", 2348l);
String resSubPath = UUID.randomUUID().toString();
checkboxManager.syncCheckbox(list, ores, resSubPath);
dbInstance.commitAndCloseSession();
// load them
List<DBCheckbox> dbCheckboxList = checkboxManager.loadCheckbox(ores, resSubPath);
Assert.assertNotNull(dbCheckboxList);
Assert.assertEquals(2, dbCheckboxList.size());
for (DBCheckbox dbCheckbox : dbCheckboxList) {
Assert.assertNotNull(dbCheckbox);
Assert.assertNotNull(dbCheckbox.getKey());
Assert.assertNotNull(dbCheckbox.getCheckboxId());
Assert.assertTrue(dbCheckbox.getCheckboxId().equals(checkbox1.getCheckboxId()) || dbCheckbox.getCheckboxId().equals(checkbox2.getCheckboxId()));
}
}
Aggregations