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

OO-1768: make a complete create course method which don't use and don't need...

OO-1768: make a complete create course method which don't use and don't need to lock on the database for a new course
parent 62a16f40
No related branches found
No related tags found
No related merge requests found
......@@ -205,19 +205,20 @@ public class CourseFactory extends BasicManager {
/**
* Creates an empty course with a single root node. The course is linked to
* the resourceable ores.
* the resourceable ores. The efficiency statment are enabled per default!
*
* @param ores
* @param shortTitle Short title of root node
* @param longTitle Long title of root node
* @param learningObjectives Learning objectives of root node
* @return an empty course with a single root node.
* @return An empty course with a single root node.
*/
public static ICourse createEmptyCourse(RepositoryEntry courseEntry, String shortTitle, String longTitle, String learningObjectives) {
public static ICourse createCourse(RepositoryEntry courseEntry,
String shortTitle, String longTitle, String learningObjectives) {
OLATResource courseResource = courseEntry.getOlatResource();
PersistingCourseImpl newCourse = new PersistingCourseImpl(courseResource.getResourceableId());
// Put new course in course cache
loadedCourses.put(newCourse.getResourceableId() ,newCourse);
loadedCourses.put(newCourse.getResourceableId(), newCourse);
Structure initialStructure = new Structure();
CourseNode runRootNode = new STCourseNode();
......@@ -233,9 +234,16 @@ public class CourseFactory extends BasicManager {
editorTreeModel.setRootNode(editorRootNode);
newCourse.setEditorTreeModel(editorTreeModel);
newCourse.saveEditorTreeModel();
//enable efficiency statement per default
CourseConfig courseConfig = newCourse.getCourseConfig();
courseConfig.setEfficencyStatementIsEnabled(true);
newCourse.setCourseConfig(courseConfig);
return newCourse;
}
/**
* Gets the course from cache if already there, or loads the course and puts it into cache.
......
......@@ -85,7 +85,6 @@ import org.olat.course.config.CourseConfig;
import org.olat.course.export.CourseEnvironmentMapper;
import org.olat.course.groupsandrights.CourseGroupManager;
import org.olat.course.groupsandrights.PersistingCourseGroupManager;
import org.olat.course.nodes.CourseNode;
import org.olat.course.run.CourseRuntimeController;
import org.olat.course.run.RunMainController;
import org.olat.course.tree.CourseEditorTreeNode;
......@@ -143,27 +142,10 @@ public class CourseHandler implements RepositoryHandler {
OLATResource resource = OLATResourceManager.getInstance().createOLATResourceInstance(CourseModule.class);
RepositoryEntry re = repositoryService.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
DBFactory.getInstance().commit();
ICourse course = CourseFactory.createEmptyCourse(re, "New Course", "New Course", "");
course = CourseFactory.openCourseEditSession(re.getOlatResource().getResourceableId());
String shortDisplayname = Formatter.truncateOnly(displayname, 25);
CourseNode runRootNode = course.getRunStructure().getRootNode();
runRootNode.setShortTitle(shortDisplayname); //do not use truncate!
runRootNode.setLongTitle(displayname);
//enable efficiency statement per default
CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
courseConfig.setEfficencyStatementIsEnabled(true);
CourseFactory.setCourseConfig(course.getResourceableId(), courseConfig);
CourseNode rootNode = ((CourseEditorTreeNode)course.getEditorTreeModel().getRootNode()).getCourseNode();
rootNode.setShortTitle(shortDisplayname); //do not use truncate!
rootNode.setLongTitle(displayname);
CourseFactory.saveCourse(course.getResourceableId());
CourseFactory.closeCourseEditSession(course.getResourceableId(), true);
ICourse course = CourseFactory.createCourse(re, shortDisplayname, displayname, "");
log.audit("Course created: " + course.getCourseTitle());
return re;
}
......
......@@ -518,7 +518,7 @@ public class CoursesWebService {
addedEntry = repositoryService.update(addedEntry);
// create an empty course
CourseFactory.createEmptyCourse(addedEntry, shortTitle, longTitle, learningObjectives);
CourseFactory.createCourse(addedEntry, shortTitle, longTitle, learningObjectives);
return prepareCourse(addedEntry, shortTitle, longTitle, courseConfigVO);
} catch (Exception e) {
......
......@@ -49,7 +49,6 @@ import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
import org.olat.core.gui.media.RedirectMediaResource;
import org.olat.core.id.OLATResourceable;
import org.olat.core.id.context.BusinessControl;
import org.olat.core.id.context.BusinessControlFactory;
......
......@@ -64,7 +64,7 @@ public class CourseConfigManagerImplTest extends OlatTestCase {
// create course and persist as OLATResourceImpl
OLATResource resource = resourceManager.createOLATResourceInstance(CourseModule.class);
RepositoryEntry addedEntry = repositoryService.create("Ayanami", "-", "JUnit course configuration course", "A JUnit course", resource);
ICourse course = CourseFactory.createEmptyCourse(addedEntry, "JUnitCourseConfig", "JUnitCourseConfig Long Title",
ICourse course = CourseFactory.createCourse(addedEntry, "JUnitCourseConfig", "JUnitCourseConfig Long Title",
"objective 1 objective 2 objective 3");
dbInstance.commitAndCloseSession();
......
......@@ -160,7 +160,7 @@ public class EnrollmentManagerConcurrentTest extends OlatTestCase implements Win
OLATResource resource = resourceManager.createOLATResourceInstance(CourseModule.class);
RepositoryEntry addedEntry = repositoryService.create("Ayanami", "-", "Enrollment test course 1", "A JUnit course", resource);
CourseEnvironment cenv = CourseFactory.createEmptyCourse(addedEntry, "Test", "Test", "learningObjectives").getCourseEnvironment();
CourseEnvironment cenv = CourseFactory.createCourse(addedEntry, "Test", "Test", "learningObjectives").getCourseEnvironment();
// 1. enroll wg1 user
IdentityEnvironment ienv = new IdentityEnvironment();
ienv.setIdentity(wg1);
......@@ -257,7 +257,7 @@ public class EnrollmentManagerConcurrentTest extends OlatTestCase implements Win
ENCourseNode enNode = new ENCourseNode();
OLATResource resource = resourceManager.createOLATResourceInstance(CourseModule.class);
RepositoryEntry addedEntry = repositoryService.create("Ayanami", "-", "Enrollment test course 2", "A JUnit course", resource);
CourseEnvironment cenv = CourseFactory.createEmptyCourse(addedEntry, "Test-Enroll", "Test", "Test enrollment with concurrent users").getCourseEnvironment();
CourseEnvironment cenv = CourseFactory.createCourse(addedEntry, "Test-Enroll", "Test", "Test enrollment with concurrent users").getCourseEnvironment();
BusinessGroup group = businessGroupService.createBusinessGroup(id1, "Enrollment", "Enroll", new Integer(1), new Integer(10), true, false, null);
Assert.assertNotNull(group);
dbInstance.commitAndCloseSession();
......
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