Skip to content
Snippets Groups Projects
Commit b572945b authored by c10266's avatar c10266
Browse files

OPENOLAT-330: refactored the createCourseRepositoryEntryController

parent 1f3f25b4
No related branches found
No related tags found
No related merge requests found
......@@ -91,7 +91,8 @@ import at.ac.uibk.course.model.SisCourse;
import at.ac.uibk.sis.SisManager;
import at.ac.uibk.sis.SisManagerException;
public class CreateCourseRepositoryEntryController extends FormBasicController implements CreateEntryController {
public class CreateCourseRepositoryEntryController extends FormBasicController
implements CreateEntryController {
public static final Event CREATION_WIZARD = new Event("start_wizard");
......@@ -129,9 +130,12 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
private DateChooser periodBeginTextElement;
private DateChooser periodEndTextElement;
private String[] radioAccessibilityKeys = new String[] { CreateCourseModel.ACCESSIBILITY_WITHOUT,
CreateCourseModel.ACCESSIBILITY_MEMBER, CreateCourseModel.ACCESSIBILITY_EN,
CreateCourseModel.ACCESSIBILITY_PWD, CreateCourseModel.ACCESSIBILITY_PERIOD };
private String[] radioAccessibilityKeys = new String[] {
CreateCourseModel.ACCESSIBILITY_MEMBER,
CreateCourseModel.ACCESSIBILITY_EN,
CreateCourseModel.ACCESSIBILITY_WITHOUT,
CreateCourseModel.ACCESSIBILITY_PWD,
CreateCourseModel.ACCESSIBILITY_PERIOD };
private Translator translator;
......@@ -139,12 +143,15 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
private FormItemContainer flc;
public CreateCourseRepositoryEntryController(UserRequest ureq, WindowControl wControl, RepositoryHandler handler) {
public CreateCourseRepositoryEntryController(UserRequest ureq,
WindowControl wControl, RepositoryHandler handler) {
super(ureq, wControl);
setTranslator(Util.createPackageTranslator(RepositoryManager.class, getLocale(), getTranslator()));
setTranslator(Util.createPackageTranslator(RepositoryManager.class,
getLocale(), getTranslator()));
this.handler = handler;
this.createCourseModel = new CreateCourseModel();
translator = Util.createPackageTranslator(CreateCourseRepositoryEntryController.class, ureq.getLocale());
translator = Util.createPackageTranslator(
CreateCourseRepositoryEntryController.class, ureq.getLocale());
initForm(ureq);
}
......@@ -168,7 +175,8 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
private List<Identity> filterAvailableUsers(final List<String> tutors) {
final List<Identity> filteredIdentities = new ArrayList<Identity>();
for (final String name : tutors) {
final Identity identity = BaseSecurityManager.getInstance().findIdentityByName(name);
final Identity identity = BaseSecurityManager.getInstance()
.findIdentityByName(name);
if (identity != null) {
filteredIdentities.add(identity);
}
......@@ -186,8 +194,10 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
sync_prefix = "nosync";
}
final String[] radioAccessibilityValues = Arrays.stream(radioAccessibilityKeys)
.map(k -> translate("form.radio." + sync_prefix + "." + k)).toArray(size -> new String[size]);
final String[] radioAccessibilityValues = Arrays
.stream(radioAccessibilityKeys)
.map(k -> translate("form.radio." + sync_prefix + "." + k))
.toArray(size -> new String[size]);
final String original_selection;
if (radioAccess.isOneSelected()) {
......@@ -196,14 +206,24 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
original_selection = null;
}
radioAccess.setKeysAndValues(radioAccessibilityKeys, radioAccessibilityValues, null);
radioAccess.setKeysAndValues(radioAccessibilityKeys,
radioAccessibilityValues, null);
if (original_selection != null) {
radioAccess.select(original_selection, true);
}
pwdTextElement.setVisible(radioAccess.getSelectedKey().equals(
CreateCourseModel.ACCESSIBILITY_PWD));
final Boolean accessibility_period = radioAccess.getSelectedKey()
.equals(CreateCourseModel.ACCESSIBILITY_PERIOD);
periodBeginTextElement.setVisible(accessibility_period);
periodEndTextElement.setVisible(accessibility_period);
}
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
protected void initForm(FormItemContainer formLayout, Controller listener,
UserRequest ureq) {
flc = formLayout;
isAdministrativeUser = ureq.getUserSession().getRoles().isOLATAdmin();
......@@ -218,10 +238,13 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
// OLAT Administrators see all external courses, therefore the
// ExternalCourseSearchListProvider is initialized with null in that
// case:
ListProvider provider = new ExternalCourseSearchListProvider(isAdministrativeUser ? null : userIdentity);
ListProvider provider = new ExternalCourseSearchListProvider(
isAdministrativeUser ? null : userIdentity);
autocompleterC = new FlexiAutoCompleterController(ureq, getWindowControl(), provider,
translator.translate("form.autocomplete.not.found"), false, true, 60, 3, null, mainForm);
autocompleterC = new FlexiAutoCompleterController(ureq,
getWindowControl(), provider,
translator.translate("form.autocomplete.not.found"), false,
true, 60, 3, null, mainForm);
autocompleterC.setFormElement(false);
listenTo(autocompleterC);
......@@ -235,19 +258,23 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
* Add list of owners with buttons to remove and add additional ones
************************************************************************************************/
ownerCheckBoxes = uifactory.addCheckboxesVertical("form.owners", formLayout, new String[0], new String[0], null,
1);
ownerCheckBoxes = uifactory.addCheckboxesVertical("form.owners",
formLayout, new String[0], new String[0], null, 1);
ownerCheckBoxes.setVisible(false);
// buttons
ownerCheckBoxButtonContainer = FormLayoutContainer.createButtonLayout("buttonContainer", getTranslator());
formLayout.add("ownerCheckBoxButtonContainer", ownerCheckBoxButtonContainer);
ownerCheckBoxButtonContainer = FormLayoutContainer.createButtonLayout(
"buttonContainer", getTranslator());
formLayout.add("ownerCheckBoxButtonContainer",
ownerCheckBoxButtonContainer);
this.ownerAddButton = uifactory.addFormLink("form.owner.add.button", ownerCheckBoxButtonContainer, Link.BUTTON);
this.ownerAddButton = uifactory.addFormLink("form.owner.add.button",
ownerCheckBoxButtonContainer, Link.BUTTON);
ownerAddButton.setIconLeftCSS("o_icon o_icon-fw o_icon_add_member");
ownerAddButton.setElementCssClass("o_sel_group_add_member");
this.ownerDelButton = uifactory.addFormLink("form.owner.del.button", ownerCheckBoxButtonContainer, Link.BUTTON);
this.ownerDelButton = uifactory.addFormLink("form.owner.del.button",
ownerCheckBoxButtonContainer, Link.BUTTON);
ownerDelButton.setIconLeftCSS("o_icon o_icon-fw o_icon_remove");
ownerCheckBoxButtonContainer.setVisible(false);
......@@ -257,12 +284,14 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
uifactory.addSpacerElement("spacer0", formLayout, true);
final String[] radioSyncKeys = new String[] { "form.user.sync.sis", "form.user.sync.disabled" };
final String[] radioSyncVals = new String[] { translator.translate("form.user.sync.sis"),
final String[] radioSyncKeys = new String[] { "form.user.sync.sis",
"form.user.sync.disabled" };
final String[] radioSyncVals = new String[] {
translator.translate("form.user.sync.sis"),
translator.translate("form.user.sync.disabled") };
radioSync = uifactory.addRadiosHorizontal("syncSelect", "form.user.sync", formLayout, radioSyncKeys,
radioSyncVals);
radioSync = uifactory.addRadiosHorizontal("syncSelect",
"form.user.sync", formLayout, radioSyncKeys, radioSyncVals);
radioSync.setHelpTextKey("form.user.sync.descr", null);
radioSync.select("form.user.sync.disabled", true);
radioSync.setVisible(false);
......@@ -278,26 +307,29 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
// access radios
radioAccess = uifactory.addRadiosVertical("accessibility.radio", "form.course.access", formLayout,
radioAccessibilityKeys, radioAccessibilityKeys);
radioAccess = uifactory.addRadiosVertical("accessibility.radio",
"form.course.access", formLayout, radioAccessibilityKeys,
radioAccessibilityKeys);
refreshRadioAccessibility();
radioAccess.select(CreateCourseModel.ACCESSIBILITY_WITHOUT, true);
radioAccess.select(CreateCourseModel.ACCESSIBILITY_MEMBER, true);
radioAccess.addActionListener(FormEvent.ONCLICK);
radioAccess.setVisible(false);
// pwd
pwdTextElement = uifactory.addTextElement("form.accessibility.pwd", "form.accessibility.pwd", 20, "",
formLayout);
pwdTextElement = uifactory.addTextElement("form.accessibility.pwd",
"form.accessibility.pwd", 20, "", formLayout);
pwdTextElement.setVisible(false);
pwdTextElement.setMandatory(true);
pwdTextElement.setDisplaySize(20);
pwdTextElement.setHelpTextKey("form.accessibility.pwd.descr", null);
// period
periodBeginTextElement = uifactory.addDateChooser("form.accessibility.period.begin",
periodBeginTextElement = uifactory.addDateChooser(
"form.accessibility.period.begin",
"form.accessibility.period.begin", new Date(), formLayout);
periodBeginTextElement.setVisible(false);
periodEndTextElement = uifactory.addDateChooser("form.accessibility.period.end",
periodEndTextElement = uifactory.addDateChooser(
"form.accessibility.period.end",
"form.accessibility.period.end", new Date(), formLayout);
periodEndTextElement.setVisible(false);
......@@ -305,31 +337,39 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
* Add Create Wizard and Cancel Buttons
************************************************************************************************/
FormLayoutContainer buttonContainer = FormLayoutContainer.createButtonLayout("buttonContainer",
getTranslator());
FormLayoutContainer buttonContainer = FormLayoutContainer
.createButtonLayout("buttonContainer", getTranslator());
formLayout.add("buttonContainer", buttonContainer);
buttonContainer.setElementCssClass("o_sel_repo_save_details");
FormSubmit submit = uifactory.addFormSubmitButton("cmd.create.ressource", buttonContainer);
FormSubmit submit = uifactory.addFormSubmitButton(
"cmd.create.ressource", buttonContainer);
submit.setElementCssClass("o_sel_author_create_submit");
// if (handler.isPostCreateWizardAvailable()) {
wizardButton = uifactory.addFormLink("form.course.startwizard.button", buttonContainer, Link.BUTTON);
wizardButton = uifactory.addFormLink("form.course.startwizard.button",
buttonContainer, Link.BUTTON);
wizardButton.setElementCssClass("o_sel_author_create_wizard");
// }
uifactory.addFormCancelButton("cancel", buttonContainer, ureq, getWindowControl());
uifactory.addFormCancelButton("cancel", buttonContainer, ureq,
getWindowControl());
}
private void fillModel() {
createCourseModel.setWithSISSync(radioSync.getSelected() == 0);
createCourseModel.setAccessibility(radioAccess.getSelectedKey());
if (radioAccess.getSelectedKey().equals(CreateCourseModel.ACCESSIBILITY_PWD)) {
if (radioAccess.getSelectedKey().equals(
CreateCourseModel.ACCESSIBILITY_PWD)) {
// pwd
createCourseModel.setAccessibilityPwd(pwdTextElement.getValue());
} else if (radioAccess.getSelectedKey().equals(CreateCourseModel.ACCESSIBILITY_PERIOD)) {
} else if (radioAccess.getSelectedKey().equals(
CreateCourseModel.ACCESSIBILITY_PERIOD)) {
// period
createCourseModel.setAccessibilityPeriodBegin(periodBeginTextElement.getValue());
createCourseModel.setAccessibilityPeriodEnd(periodEndTextElement.getValue());
createCourseModel
.setAccessibilityPeriodBegin(periodBeginTextElement
.getValue());
createCourseModel.setAccessibilityPeriodEnd(periodEndTextElement
.getValue());
}
}
......@@ -352,11 +392,14 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
FormItem acFormItem = autocompleterC.getInitialFormItem();
acFormItem.clearError();
if (createCourseModel.getSelectedSisCourse() == null
&& (createCourseModel.getCourseTitle() == null || createCourseModel.getCourseTitle().length() < 3)) {
acFormItem.setErrorKey("cif.error.displayname.empty", new String[] {});
&& (createCourseModel.getCourseTitle() == null || createCourseModel
.getCourseTitle().length() < 3)) {
acFormItem.setErrorKey("cif.error.displayname.empty",
new String[] {});
allOk &= false;
}
if (pwdTextElement.isVisible() && pwdTextElement.getValue().length() == 0) {
if (pwdTextElement.isVisible()
&& pwdTextElement.getValue().length() == 0) {
pwdTextElement.setErrorKey("form.accessibility.pwd.empty", null);
allOk &= false;
}
......@@ -370,11 +413,13 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
protected void formOK(UserRequest ureq) {
doCreate(ureq);
fireEvent(ureq, Event.DONE_EVENT);
fireEvent(ureq, new EntryChangedEvent(addedEntry, getIdentity(), Change.added));
fireEvent(ureq, new EntryChangedEvent(addedEntry, getIdentity(),
Change.added));
}
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
protected void formInnerEvent(UserRequest ureq, FormItem source,
FormEvent event) {
if (wizardButton == source) {
if (validateFormLogic(ureq)) {
doCreate(ureq);
......@@ -383,37 +428,40 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
}
if (source == ownerAddButton) {
removeAsListenerAndDispose(usc);
usc = new UserSearchController(ureq, getWindowControl(), true, true, translate("form.owner.add.button"));
usc = new UserSearchController(ureq, getWindowControl(), true,
true, translate("form.owner.add.button"));
listenTo(usc);
removeAsListenerAndDispose(cmc);
cmc = new CloseableModalController(getWindowControl(), translate("close"), usc.getInitialComponent(), true,
cmc = new CloseableModalController(getWindowControl(),
translate("close"), usc.getInitialComponent(), true,
translate("form.owner.add.button"));
listenTo(cmc);
cmc.activate();
} else if (source == ownerDelButton) {
if (ownerCheckBoxes.getSelectedKeys() != null && ownerCheckBoxes.getSelectedKeys().size() > 0) {
if (ownerCheckBoxes.getSelectedKeys().size() == createCourseModel.getAdditionalOwners().size()) {
if (ownerCheckBoxes.getSelectedKeys() != null
&& ownerCheckBoxes.getSelectedKeys().size() > 0) {
if (ownerCheckBoxes.getSelectedKeys().size() == createCourseModel
.getAdditionalOwners().size()) {
showError("error.atleastone");
} else {
createCourseModel.removeAdditionalOwners(ownerCheckBoxes.getSelectedKeys());
createCourseModel.removeAdditionalOwners(ownerCheckBoxes
.getSelectedKeys());
updateOwnerCheckBoxesFromModel();
}
}
} else if (source == radioSync) {
refreshRadioAccessibility();
createCourseModel.setWithSISSync(radioSync.getSelected() == 0);
if (createCourseModel.isWithSISSync()) {
radioAccess.select(CreateCourseModel.ACCESSIBILITY_MEMBER, true);
} else {
radioAccess.select(CreateCourseModel.ACCESSIBILITY_EN, true);
}
refreshRadioAccessibility();
} else if (source == radioAccess) {
pwdTextElement.setVisible(radioAccess.getSelectedKey().equals(CreateCourseModel.ACCESSIBILITY_PWD));
final Boolean accessibility_period = radioAccess.getSelectedKey()
.equals(CreateCourseModel.ACCESSIBILITY_PERIOD);
periodBeginTextElement.setVisible(accessibility_period);
periodEndTextElement.setVisible(accessibility_period);
refreshRadioAccessibility();
}
super.formInnerEvent(ureq, source, event);
}
......@@ -423,15 +471,21 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
super.event(ureq, source, event);
if (event instanceof NewValueChosenEvent) {
NewValueChosenEvent nvce = (NewValueChosenEvent) event;
createCourseModel.setCourseTitle(nvce.getEntries().get(0));
String nval = nvce.getEntries().get(0);
createCourseModel.setCourseTitle(nval);
// reset the sisCourse
if (createCourseModel.getSelectedSisCourse() != null) {
Boolean coursePrevSelected = createCourseModel.getSelectedSisCourse() != null;
if (coursePrevSelected) {
createCourseModel.clearAdditionalOwners();
}
createCourseModel.addAdditionalOwner(userIdentity);
createCourseModel.setSelectedSisCourse(null);
if (nval.length() > 0) {
autocompleterC.getInitialFormItem().clearError();
}
updateOwnerCheckBoxesFromModel();
ownerCheckBoxes.setVisible(true);
ownerCheckBoxButtonContainer.setVisible(true);
......@@ -441,7 +495,12 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
radioSync.setVisible(false);
refreshRadioAccessibility();
radioAccess.select(CreateCourseModel.ACCESSIBILITY_WITHOUT, true);
if (coursePrevSelected || !radioAccess.isVisible()) {
// set the accessibility only when we switch from an external
// course to an autonomous one, or if this is the first time
// a title is chosen
radioAccess.select(CreateCourseModel.ACCESSIBILITY_EN, true);
}
radioAccess.setVisible(true);
flc.getComponent().setDirty(true);
......@@ -460,15 +519,18 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
} else {
if (event instanceof SingleIdentityChosenEvent) {
final SingleIdentityChosenEvent singleEvent = (SingleIdentityChosenEvent) event;
final Identity choosenIdentity = singleEvent.getChosenIdentity();
final Identity choosenIdentity = singleEvent
.getChosenIdentity();
createCourseModel.addAdditionalOwner(choosenIdentity);
} else if (event instanceof MultiIdentityChosenEvent) {
final MultiIdentityChosenEvent multiEvent = (MultiIdentityChosenEvent) event;
for (Identity choosenIdentity : multiEvent.getChosenIdentities()) {
for (Identity choosenIdentity : multiEvent
.getChosenIdentities()) {
createCourseModel.addAdditionalOwner(choosenIdentity);
}
} else {
throw new RuntimeException("unknown event ::" + event.getCommand());
throw new RuntimeException("unknown event ::"
+ event.getCommand());
}
cmc.deactivate();
......@@ -491,15 +553,18 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
try {
sc = sisManager.getCourse(externalId);
} catch (SisManagerException sException) {
autocompleterC.getInitialFormItem().setErrorKey("form.course.sis.backend.error", new String[] {});
autocompleterC.getInitialFormItem().setErrorKey(
"form.course.sis.backend.error", new String[] {});
}
// double check here if the user is in the list of the tutors of the
// course, or an administrator
createCourseModel.clearAdditionalOwners();
if (sc != null && (sc.getTutors().contains(userName) || isAdministrativeUser)) {
if (sc != null
&& (sc.getTutors().contains(userName) || isAdministrativeUser)) {
createCourseModel.setSelectedSisCourse(sc);
autocompleterC.getInitialFormItem().clearError();
radioSync.setEnabled(true);
radioSync.setVisible(true);
......@@ -519,11 +584,12 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
refreshRadioAccessibility();
radioAccess.setVisible(true);
radioAccess.select(CreateCourseModel.ACCESSIBILITY_WITHOUT, true);
radioAccess.select(CreateCourseModel.ACCESSIBILITY_MEMBER, true);
}
private void updateOwnerCheckBoxesFromModel() {
this.ownerCheckBoxes.setKeysAndValues(createCourseModel.getAdditionalOwnerKeys(),
this.ownerCheckBoxes.setKeysAndValues(
createCourseModel.getAdditionalOwnerKeys(),
createCourseModel.getAdditionalOwnerNames(), null, null);
}
......@@ -538,14 +604,17 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
final CreateCourseConfiguration createCourseConfig = (CreateCourseConfiguration) CoreSpringFactory
.getBean(CreateCourseConfiguration.class.getCanonicalName());
final boolean isCreatedFromSisCourse = createCourseModel.getSelectedSisCourse() != null;
final boolean isCreatedFromSisCourse = createCourseModel
.getSelectedSisCourse() != null;
if (isCreatedFromSisCourse) {
externalCourseId = createCourseModel.getSelectedSisCourse().getSisCourseId();
externalCourseId = createCourseModel.getSelectedSisCourse()
.getSisCourseId();
if (createCourseModel.isWithSISSync()) {
managedFlags = createCourseConfig.getManagedFlagsSynced();
} else {
managedFlags = createCourseConfig.getManagedFlagsSyncedNoRegistration();
managedFlags = createCourseConfig
.getManagedFlagsSyncedNoRegistration();
}
} else {
externalCourseId = null;
......@@ -555,14 +624,16 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
displayname = createCourseModel.getCourseTitle();
description = createCourseModel.getCourseDescription();
addedEntry = handler.createResource(getIdentity(), displayname, description, getCreateObject(), getLocale());
addedEntry = handler.createResource(getIdentity(), displayname,
description, getCreateObject(), getLocale());
repositoryManager.setDescriptionAndName(addedEntry, displayname, description, "", "", externalCourseId, "",
managedFlags, null);
repositoryManager.setDescriptionAndName(addedEntry, displayname,
description, "", "", externalCourseId, "", managedFlags, null);
repositoryManager.triggerIndexer(addedEntry);
repositoryManager.setAccess(addedEntry, RepositoryEntry.ACC_USERS, true);
repositoryManager
.setAccess(addedEntry, RepositoryEntry.ACC_USERS, true);
// ICourse newCourse = CourseFactory.createCourse(addedEntry,
// displayname, "", "");
......@@ -571,62 +642,84 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
// add owners
if (createCourseModel.getAdditionalOwners().size() > 0) {
// add the authors as owner of the course
IdentitiesAddEvent identitiesAddedEvent = new IdentitiesAddEvent(createCourseModel.getAdditionalOwners());
repositoryManager.addOwners(userIdentity, identitiesAddedEvent, addedEntry);
IdentitiesAddEvent identitiesAddedEvent = new IdentitiesAddEvent(
createCourseModel.getAdditionalOwners());
repositoryManager.addOwners(userIdentity, identitiesAddedEvent,
addedEntry);
}
/**
* Access control
*/
if (CreateCourseModel.ACCESSIBILITY_WITHOUT.equals(createCourseModel.getAccessibility())) {
repositoryManager.setAccess(addedEntry, RepositoryEntry.ACC_USERS, false);
} else if (CreateCourseModel.ACCESSIBILITY_MEMBER.equals(createCourseModel.getAccessibility())) {
repositoryManager.setAccess(addedEntry, RepositoryEntry.ACC_OWNERS, true);
} else if (CreateCourseModel.ACCESSIBILITY_PWD.equals(createCourseModel.getAccessibility())) {
if (CreateCourseModel.ACCESSIBILITY_WITHOUT.equals(createCourseModel
.getAccessibility())) {
repositoryManager.setAccess(addedEntry, RepositoryEntry.ACC_USERS,
false);
} else if (CreateCourseModel.ACCESSIBILITY_MEMBER
.equals(createCourseModel.getAccessibility())) {
repositoryManager.setAccess(addedEntry, RepositoryEntry.ACC_OWNERS,
true);
} else if (CreateCourseModel.ACCESSIBILITY_PWD.equals(createCourseModel
.getAccessibility())) {
// access code
ACService acService = CoreSpringFactory.getImpl(ACService.class);
Offer offer = acService.createOffer(addedEntry.getOlatResource(), addedCourse.getCourseTitle());
((OfferImpl) offer).setToken(createCourseModel.getAccessibilityPwd());
Offer offer = acService.createOffer(addedEntry.getOlatResource(),
addedCourse.getCourseTitle());
((OfferImpl) offer).setToken(createCourseModel
.getAccessibilityPwd());
acService.save(offer);
ACMethodDAO acMethodManager = CoreSpringFactory.getImpl(ACMethodDAO.class);
List<AccessMethod> methods = acMethodManager.getAvailableMethodsByType(TokenAccessMethod.class);
ACMethodDAO acMethodManager = CoreSpringFactory
.getImpl(ACMethodDAO.class);
List<AccessMethod> methods = acMethodManager
.getAvailableMethodsByType(TokenAccessMethod.class);
AccessMethod method = methods.get(0);
OfferAccess access = acMethodManager.createOfferAccess(offer, method);
OfferAccess access = acMethodManager.createOfferAccess(offer,
method);
acMethodManager.save(access);
} else if (CreateCourseModel.ACCESSIBILITY_PERIOD.equals(createCourseModel.getAccessibility())) {
} else if (CreateCourseModel.ACCESSIBILITY_PERIOD
.equals(createCourseModel.getAccessibility())) {
// period
ACService acService = CoreSpringFactory.getImpl(ACService.class);
Offer offer = acService.createOffer(addedEntry.getOlatResource(), addedCourse.getCourseTitle());
Offer offer = acService.createOffer(addedEntry.getOlatResource(),
addedCourse.getCourseTitle());
acService.save(offer);
ACMethodDAO acMethodManager = CoreSpringFactory.getImpl(ACMethodDAO.class);
List<AccessMethod> methods = acMethodManager.getAvailableMethodsByType(FreeAccessMethod.class);
ACMethodDAO acMethodManager = CoreSpringFactory
.getImpl(ACMethodDAO.class);
List<AccessMethod> methods = acMethodManager
.getAvailableMethodsByType(FreeAccessMethod.class);
AccessMethod method = methods.get(0);
OfferAccess access = acMethodManager.createOfferAccess(offer, method);
OfferAccess access = acMethodManager.createOfferAccess(offer,
method);
access.setValidFrom(periodBeginTextElement.getDate());
access.setValidTo(periodEndTextElement.getDate());
acMethodManager.save(access);
} else if (CreateCourseModel.ACCESSIBILITY_EN.equals(createCourseModel.getAccessibility())) {
} else if (CreateCourseModel.ACCESSIBILITY_EN.equals(createCourseModel
.getAccessibility())) {
// everyone is free to book the course
ACService acService = CoreSpringFactory.getImpl(ACService.class);
Offer offer = acService.createOffer(addedEntry.getOlatResource(), addedCourse.getCourseTitle());
Offer offer = acService.createOffer(addedEntry.getOlatResource(),
addedCourse.getCourseTitle());
acService.save(offer);
ACMethodDAO acMethodManager = CoreSpringFactory.getImpl(ACMethodDAO.class);
List<AccessMethod> methods = acMethodManager.getAvailableMethodsByType(FreeAccessMethod.class);
ACMethodDAO acMethodManager = CoreSpringFactory
.getImpl(ACMethodDAO.class);
List<AccessMethod> methods = acMethodManager
.getAvailableMethodsByType(FreeAccessMethod.class);
AccessMethod method = methods.get(0);
OfferAccess access = acMethodManager.createOfferAccess(offer, method);
OfferAccess access = acMethodManager.createOfferAccess(offer,
method);
acMethodManager.save(access);
}
......@@ -634,7 +727,8 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
// fetch publish process
CourseFactory.openCourseEditSession(addedCourse.getResourceableId());
final CourseEditorTreeModel cetm = addedCourse.getEditorTreeModel();
final PublishProcess pp = PublishProcess.getInstance(addedCourse, cetm, ureq.getLocale());
final PublishProcess pp = PublishProcess.getInstance(addedCourse, cetm,
ureq.getLocale());
final StatusDescription[] sds;
// create publish node list
final List<String> nodeIds = new ArrayList<String>();
......@@ -650,14 +744,17 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
final StringBuilder errors = new StringBuilder();
for (final StatusDescription sd : sds) {
errors.append("\nCourseNode: " + sd.getDescriptionForUnit());
errors.append(", Description: " + sd.getShortDescription(ureq.getLocale()) + "\n");
errors.append(", Description: "
+ sd.getShortDescription(ureq.getLocale()) + "\n");
}
Tracing.createLoggerFor(this.getClass())
.warn("Course Publishing reported following errors: " + errors.toString());
Tracing.createLoggerFor(this.getClass()).warn(
"Course Publishing reported following errors: "
+ errors.toString());
}
pp.applyPublishSet(ureq.getIdentity(), ureq.getLocale());
CourseFactory.closeCourseEditSession(addedCourse.getResourceableId(), true);
CourseFactory.closeCourseEditSession(addedCourse.getResourceableId(),
true);
/**
* send mail
......@@ -678,11 +775,14 @@ public class CreateCourseRepositoryEntryController extends FormBasicController i
* external id
*/
if (isCreatedFromSisCourse) {
SisManager.getInstance().sendInvalidateCourseEvent(externalCourseId);
SisManager.getInstance()
.sendInvalidateCourseEvent(externalCourseId);
}
ThreadLocalUserActivityLogger.log(LearningResourceLoggingAction.LEARNING_RESOURCE_CREATE, getClass(),
LoggingResourceable.wrap(addedEntry, OlatResourceableType.genRepoEntry));
ThreadLocalUserActivityLogger.log(
LearningResourceLoggingAction.LEARNING_RESOURCE_CREATE,
getClass(), LoggingResourceable.wrap(addedEntry,
OlatResourceableType.genRepoEntry));
}
}
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