use of org.olat.course.properties.CoursePropertyManager in project OpenOLAT by OpenOLAT.
the class ForumNodeForumCallback method cleanupOnDelete.
/**
* @see org.olat.course.nodes.GenericCourseNode#cleanupOnDelete(org.olat.course.ICourse)
*/
@Override
public void cleanupOnDelete(ICourse course) {
super.cleanupOnDelete(course);
// mark the subscription to this node as deleted
SubscriptionContext forumSubContext = CourseModule.createTechnicalSubscriptionContext(course.getCourseEnvironment(), this);
NotificationsManager.getInstance().delete(forumSubContext);
// delete the forum, if there is one (is created on demand only)
CoursePropertyManager cpm = PersistingCoursePropertyManager.getInstance(course);
Property forumKeyProperty = cpm.findCourseNodeProperty(this, null, null, FORUM_KEY);
if (forumKeyProperty != null) {
Long forumKey = forumKeyProperty.getLongValue();
// delete the forum
ForumManager.getInstance().deleteForum(forumKey);
// delete the property
cpm.deleteProperty(forumKeyProperty);
}
}
use of org.olat.course.properties.CoursePropertyManager in project OpenOLAT by OpenOLAT.
the class ForumNodeForumCallback method archiveNodeData.
@Override
public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) {
CoursePropertyManager cpm = course.getCourseEnvironment().getCoursePropertyManager();
Property forumKeyProperty = cpm.findCourseNodeProperty(this, null, null, FORUM_KEY);
if (forumKeyProperty == null) {
return false;
}
Long forumKey = forumKeyProperty.getLongValue();
if (ForumManager.getInstance().countThreadsByForumID(forumKey) <= 0) {
return false;
}
String forumName = "forum_" + Formatter.makeStringFilesystemSave(getShortTitle()) + "_" + Formatter.formatDatetimeFilesystemSave(new Date(System.currentTimeMillis()));
ForumStreamedRTFFormatter rtff = new ForumStreamedRTFFormatter(exportStream, forumName, false, locale);
ForumArchiveManager.getInstance().applyFormatter(rtff, forumKey, null);
return true;
}
use of org.olat.course.properties.CoursePropertyManager in project OpenOLAT by OpenOLAT.
the class ForumNodeForumCallback method createForum.
private Forum createForum(final CourseEnvironment courseEnv) {
final ForumManager fom = CoreSpringFactory.getImpl(ForumManager.class);
// creates resourceable from FOCourseNode.class and the current node id as key
OLATResourceable courseNodeResourceable = OresHelper.createOLATResourceableInstance(FOCourseNode.class, new Long(getIdent()));
// o_clusterOK by:ld
return CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(courseNodeResourceable, new SyncerCallback<Forum>() {
@Override
public Forum execute() {
Forum forum;
CoursePropertyManager cpm = courseEnv.getCoursePropertyManager();
Property forumKeyProperty = cpm.findCourseNodeProperty(FOCourseNode.this, null, null, FORUM_KEY);
if (forumKeyProperty == null) {
// First call of forum, create new forum and save forum key as property
forum = fom.addAForum();
Long forumKey = forum.getKey();
forumKeyProperty = cpm.createCourseNodePropertyInstance(FOCourseNode.this, null, null, FORUM_KEY, null, forumKey, null, null);
cpm.saveProperty(forumKeyProperty);
} else {
// Forum does already exist, load forum with key from properties
Long forumKey = forumKeyProperty.getLongValue();
forum = fom.loadForum(forumKey);
if (forum == null) {
throw new OLATRuntimeException(FOCourseNode.class, "Tried to load forum with key " + forumKey.longValue() + " in course " + courseEnv.getCourseResourceableId() + " for node " + getIdent() + " as defined in course node property but forum manager could not load forum.", null);
}
}
return forum;
}
});
}
use of org.olat.course.properties.CoursePropertyManager in project OpenOLAT by OpenOLAT.
the class IQTESTCourseNode method cleanupOnDelete.
/**
* @see org.olat.course.nodes.CourseNode#cleanupOnDelete(org.olat.course.ICourse)
*/
@Override
public void cleanupOnDelete(ICourse course) {
super.cleanupOnDelete(course);
CoursePropertyManager pm = course.getCourseEnvironment().getCoursePropertyManager();
// 1) Delete all properties: score, passed, log, comment, coach_comment,
// attempts
pm.deleteNodeProperties(this, null);
// 2) Delete all qtiresults for this node (QTI 1.2 + qtiworks)
String repositorySoftKey = (String) getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY);
RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repositorySoftKey, false);
if (re != null) {
QTIResultManager.getInstance().deleteAllResults(course.getResourceableId(), getIdent(), re.getKey());
}
// 3) Delete all assessment test sessions (QTI 2.1)
RepositoryEntry courseEntry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
CoreSpringFactory.getImpl(AssessmentTestSessionDAO.class).deleteAllUserTestSessionsByCourse(courseEntry, getIdent());
}
use of org.olat.course.properties.CoursePropertyManager in project OpenOLAT by OpenOLAT.
the class MSCourseNode method informOnDelete.
/**
* @see org.olat.course.nodes.CourseNode#informOnDelete(org.olat.core.gui.UserRequest,
* org.olat.course.ICourse)
*/
@Override
public String informOnDelete(Locale locale, ICourse course) {
CoursePropertyManager cpm = PersistingCoursePropertyManager.getInstance(course);
List<Property> list = cpm.listCourseNodeProperties(this, null, null, null);
// no properties created yet
if (list.size() == 0)
return null;
Translator trans = new PackageTranslator(PACKAGE_MS, locale);
return trans.translate("warn.nodedelete");
}
Aggregations