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

CL-232: allow creation of course with title, shortTitle and RepositoryEntry...

CL-232: allow creation of course with title, shortTitle and RepositoryEntry displayName as parameters
parent 32775806
No related branches found
No related tags found
No related merge requests found
......@@ -324,6 +324,9 @@ public class ICalFileCalendarManager extends BasicManager implements CalendarMan
*/
public KalendarConfig findKalendarConfigForIdentity(Kalendar kalendar, UserRequest ureq) {
Preferences guiPreferences = ureq.getUserSession().getGuiPreferences();
if(guiPreferences == null) {
return null;
}
return (KalendarConfig)guiPreferences.get(KalendarConfig.class, kalendar.getCalendarID());
}
......
......@@ -210,7 +210,8 @@ public class CoursesWebService {
@PUT
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response createEmptyCourse(@QueryParam("shortTitle") String shortTitle, @QueryParam("title") String title,
@QueryParam("softKey") String softKey, @QueryParam("access") Integer access, @QueryParam("membersOnly") Boolean membersOnly,
@QueryParam("displayName") String displayName, @QueryParam("softKey") String softKey,
@QueryParam("access") Integer access, @QueryParam("membersOnly") Boolean membersOnly,
@QueryParam("externalId") String externalId, @QueryParam("externalRef") String externalRef,
@QueryParam("managedFlags") String managedFlags, @QueryParam("sharedFolderSoftKey") String sharedFolderSoftKey,
@QueryParam("copyFrom") Long copyFrom,
......@@ -223,13 +224,16 @@ public class CoursesWebService {
int accessInt = (access == null ? RepositoryEntry.ACC_OWNERS : access.intValue());
boolean membersOnlyBool = (membersOnly == null ? false : membersOnly.booleanValue());
if(!StringHelper.containsNonWhitespace(displayName)) {
displayName = shortTitle;
}
ICourse course;
UserRequest ureq = getUserRequest(request);
if(copyFrom != null) {
course = copyCourse(copyFrom, ureq, shortTitle, title, softKey, accessInt, membersOnlyBool, externalId, externalRef, managedFlags, configVO);
course = copyCourse(copyFrom, ureq, shortTitle, title, displayName, softKey, accessInt, membersOnlyBool, externalId, externalRef, managedFlags, configVO);
} else {
course = createEmptyCourse(ureq.getIdentity(), shortTitle, title, softKey, accessInt, membersOnlyBool, externalId, externalRef, managedFlags, configVO);
course = createEmptyCourse(ureq.getIdentity(), shortTitle, title, displayName, softKey, accessInt, membersOnlyBool, externalId, externalRef, managedFlags, configVO);
}
CourseVO vo = ObjectFactory.get(course);
return Response.ok(vo).build();
......@@ -257,8 +261,9 @@ public class CoursesWebService {
UserRequest ureq = getUserRequest(request);
CourseConfigVO configVO = new CourseConfigVO();
ICourse course = createEmptyCourse(ureq.getIdentity(), courseVo.getTitle(),
courseVo.getTitle(), courseVo.getSoftKey(), RepositoryEntry.ACC_OWNERS, false,
ICourse course = createEmptyCourse(ureq.getIdentity(),
courseVo.getTitle(), courseVo.getTitle(), courseVo.getTitle(),
courseVo.getSoftKey(), RepositoryEntry.ACC_OWNERS, false,
courseVo.getExternalId(), courseVo.getExternalRef(), courseVo.getManagedFlags(),
configVO);
CourseVO vo = ObjectFactory.get(course);
......@@ -423,10 +428,10 @@ public class CoursesWebService {
}
}
public static ICourse copyCourse(Long copyFrom, UserRequest ureq, String name, String longTitle,
private static ICourse copyCourse(Long copyFrom, UserRequest ureq, String shortTitle, String longTitle, String displayName,
String softKey, int access, boolean membersOnly, String externalId, String externalRef, String managedFlags,
CourseConfigVO courseConfigVO) {
String shortTitle = name;
//String learningObjectives = name + " (Example of creating a new course)";
OLATResourceable originalOresTrans = OresHelper.createOLATResourceableInstance(CourseModule.class, copyFrom);
......@@ -450,8 +455,8 @@ public class CoursesWebService {
preparedEntry.setCanDownload(src.getCanDownload());
preparedEntry.setCanLaunch(src.getCanLaunch());
if (courseConfigVO != null && StringHelper.containsNonWhitespace(shortTitle)) {
preparedEntry.setDisplayname(shortTitle);
if (courseConfigVO != null && StringHelper.containsNonWhitespace(displayName)) {
preparedEntry.setDisplayname(displayName);
} else {
preparedEntry.setDisplayname("Copy of " + src.getDisplayname());
}
......@@ -488,7 +493,7 @@ public class CoursesWebService {
// copy image if available
RepositoryManager.getInstance().copyImage(src, preparedEntry);
ICourse course = prepareCourse(preparedEntry, courseConfigVO);
ICourse course = prepareCourse(preparedEntry,shortTitle, longTitle, courseConfigVO);
RepositoryHandlerFactory.getInstance().getRepositoryHandler(src).releaseLock(lockResult);
return course;
}
......@@ -505,7 +510,7 @@ public class CoursesWebService {
* @return
*/
public static ICourse createEmptyCourse(Identity initialAuthor, String shortTitle, String longTitle, CourseConfigVO courseConfigVO) {
return createEmptyCourse(initialAuthor, shortTitle, longTitle, null, RepositoryEntry.ACC_OWNERS, false, null, null, null, courseConfigVO);
return createEmptyCourse(initialAuthor, shortTitle, longTitle, shortTitle, null, RepositoryEntry.ACC_OWNERS, false, null, null, null, courseConfigVO);
}
/**
......@@ -520,18 +525,22 @@ public class CoursesWebService {
* @param courseConfigVO
* @return
*/
public static ICourse createEmptyCourse(Identity initialAuthor, String shortTitle, String longTitle,
public static ICourse createEmptyCourse(Identity initialAuthor, String shortTitle, String longTitle, String reDisplayName,
String softKey, int access, boolean membersOnly, String externalId, String externalRef, String managedFlags, CourseConfigVO courseConfigVO) {
String learningObjectives = shortTitle + " (Example of creating a new course)";
if(!StringHelper.containsNonWhitespace(reDisplayName)) {
reDisplayName = shortTitle;
}
try {
OLATResourceable oresable = OLATResourceManager.getInstance().createOLATResourceInstance(CourseModule.class);
// create a repository entry
RepositoryEntry addedEntry = createCourseRepositoryEntry(initialAuthor, shortTitle, softKey, externalId, externalRef, managedFlags, oresable);
RepositoryEntry addedEntry = createCourseRepositoryEntry(initialAuthor, reDisplayName, softKey, externalId, externalRef, managedFlags, oresable);
// create an empty course
CourseFactory.createEmptyCourse(oresable, shortTitle, longTitle, learningObjectives);
prepareSecurityGroup(initialAuthor, addedEntry, access, membersOnly);
return prepareCourse(addedEntry, courseConfigVO);
return prepareCourse(addedEntry, shortTitle, longTitle, courseConfigVO);
} catch (Exception e) {
throw new WebApplicationException(e);
}
......@@ -605,19 +614,27 @@ public class CoursesWebService {
RepositoryManager.getInstance().saveRepositoryEntry(addedEntry);
}
private static ICourse prepareCourse(RepositoryEntry addedEntry, CourseConfigVO courseConfigVO) {
private static ICourse prepareCourse(RepositoryEntry addedEntry, String shortTitle, String longTitle, CourseConfigVO courseConfigVO) {
BaseSecurity securityManager = BaseSecurityManager.getInstance();
securityManager.createAndPersistPolicy(addedEntry.getOwnerGroup(), Constants.PERMISSION_ADMIN, addedEntry.getOlatResource());
// set root node title
String courseShortTitle = addedEntry.getDisplayname();
if(StringHelper.containsNonWhitespace(shortTitle)) {
courseShortTitle = shortTitle;
}
String courseLongTitle = addedEntry.getDisplayname();
if(StringHelper.containsNonWhitespace(longTitle)) {
courseLongTitle = longTitle;
}
ICourse course = CourseFactory.openCourseEditSession(addedEntry.getOlatResource().getResourceableId());
String displayName = addedEntry.getDisplayname();
course.getRunStructure().getRootNode().setShortTitle(Formatter.truncate(displayName, 25));
course.getRunStructure().getRootNode().setLongTitle(displayName);
course.getRunStructure().getRootNode().setShortTitle(Formatter.truncate(courseShortTitle, 25));
course.getRunStructure().getRootNode().setLongTitle(courseLongTitle);
CourseNode rootNode = ((CourseEditorTreeNode) course.getEditorTreeModel().getRootNode()).getCourseNode();
rootNode.setShortTitle(Formatter.truncate(displayName, 25));
rootNode.setLongTitle(displayName);
rootNode.setShortTitle(Formatter.truncate(courseShortTitle, 25));
rootNode.setLongTitle(courseLongTitle);
if(courseConfigVO != null) {
CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
......@@ -625,7 +642,6 @@ public class CoursesWebService {
courseConfig.setSharedFolderSoftkey(courseConfigVO.getSharedFolderSoftKey());
}
}
//RepositoryManager.getInstance().updateRepositoryEntry(addedEntry);
CourseFactory.saveCourse(course.getResourceableId());
CourseFactory.closeCourseEditSession(course.getResourceableId(), true);
......
......@@ -103,16 +103,16 @@ public class CoursesTest extends OlatJerseyTestCase {
try {
// create course and persist as OLATResourceImpl
admin = BaseSecurityManager.getInstance().findIdentityByName("administrator");
course1 = CoursesWebService.createEmptyCourse(admin, "courses1", "courses1 long name", null, RepositoryEntry.ACC_OWNERS, false, null, null, null, null);
course1 = CoursesWebService.createEmptyCourse(admin, "courses1", "courses1 long name", null, null, RepositoryEntry.ACC_OWNERS, false, null, null, null, null);
externalId = UUID.randomUUID().toString();
externalRef = UUID.randomUUID().toString();
course2 = CoursesWebService.createEmptyCourse(admin, "courses2", "courses2 long name", null, RepositoryEntry.ACC_OWNERS, false, externalId, externalRef, "all", null);
course2 = CoursesWebService.createEmptyCourse(admin, "courses2", "courses2 long name", null, null, RepositoryEntry.ACC_OWNERS, false, externalId, externalRef, "all", null);
dbInstance.commitAndCloseSession();
externalId3 = UUID.randomUUID().toString();
course3 = CoursesWebService.createEmptyCourse(admin, "courses3", "courses3 long name", null, RepositoryEntry.ACC_OWNERS, false, externalId3, null, "all", null);
course3 = CoursesWebService.createEmptyCourse(admin, "courses3", "courses3 long name", null, null, RepositoryEntry.ACC_OWNERS, false, externalId3, null, "all", null);
RepositoryEntry re3 = repositoryManager.lookupRepositoryEntry(course3, false);
RepositoryEntryLifecycle lifecycle3 = reLifecycleDao.create("course3 lifecycle", UUID.randomUUID().toString(), true, new Date(), new Date());
dbInstance.commit();
......
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