use of org.olat.modules.fo.ForumModule in project OpenOLAT by OpenOLAT.
the class ForumNodeForumCallback method updateModuleConfigDefaults.
/**
* Update the module configuration to have all mandatory configuration flags
* set to usefull default values
*
* @param isNewNode true: an initial configuration is set; false: upgrading
* from previous node configuration version, set default to maintain
* previous behaviour
*/
@Override
public void updateModuleConfigDefaults(boolean isNewNode) {
ModuleConfiguration config = getModuleConfiguration();
if (isNewNode) {
ForumModule forumModule = CoreSpringFactory.getImpl(ForumModule.class);
boolean pseudonymAllowed = forumModule.isAnonymousPostingWithPseudonymEnabled() && forumModule.isPseudonymForCourseEnabledByDefault();
config.setStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED, pseudonymAllowed ? "true" : "false");
boolean pseudonymDefault = pseudonymAllowed && forumModule.isPseudonymForMessageEnabledByDefault();
config.setStringValue(FOCourseNodeEditController.PSEUDONYM_POST_DEFAULT, pseudonymDefault ? "true" : "false");
config.setStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED, "false");
}
if (isNewNode || config.getConfigurationVersion() < 2) {
// use defaults for new course building blocks
config.setBooleanEntry(NodeEditController.CONFIG_STARTPAGE, Boolean.FALSE.booleanValue());
config.setConfigurationVersion(2);
}
if (config.getConfigurationVersion() < 3) {
if (config.getStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED) == null) {
config.setStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED, "false");
}
if (config.getStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED) == null) {
config.setStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED, "false");
}
config.setConfigurationVersion(3);
}
// else node is up-to-date - nothing to do
config.remove(NodeEditController.CONFIG_INTEGRATION);
}
use of org.olat.modules.fo.ForumModule in project OpenOLAT by OpenOLAT.
the class ForumNodeForumCallback method createNodeRunConstructionResult.
/**
* @see org.olat.course.nodes.CourseNode#createNodeRunConstructionResult(org.olat.core.gui.UserRequest,
* org.olat.core.gui.control.WindowControl,
* org.olat.course.run.userview.UserCourseEnvironment,
* org.olat.course.run.userview.NodeEvaluation)
*/
@Override
public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl, final UserCourseEnvironment userCourseEnv, NodeEvaluation ne, String nodecmd) {
updateModuleConfigDefaults(false);
Roles roles = ureq.getUserSession().getRoles();
Forum theForum = loadOrCreateForum(userCourseEnv.getCourseEnvironment());
boolean isOlatAdmin = roles.isOLATAdmin();
boolean isGuestOnly = roles.isGuestOnly();
// Add message id to business path if nodemcd is available
if (nodecmd != null) {
try {
Long messageId = Long.valueOf(nodecmd);
BusinessControlFactory bcf = BusinessControlFactory.getInstance();
BusinessControl businessControl = bcf.createFromString("[Message:" + messageId + "]");
wControl = bcf.createBusinessWindowControl(businessControl, wControl);
} catch (NumberFormatException e) {
// ups, nodecmd is not a message, what the heck is it then?
log.warn("Could not create message ID from given nodemcd::" + nodecmd, e);
}
}
// for guests, check if posting is allowed
boolean pseudonymPostAllowed = false;
boolean defaultPseudonym = false;
boolean guestPostAllowed = false;
if (roles.isGuestOnly()) {
String config = getModuleConfiguration().getStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED);
guestPostAllowed = "true".equals(config);
} else {
ForumModule forumModule = CoreSpringFactory.getImpl(ForumModule.class);
String config = getModuleConfiguration().getStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED);
pseudonymPostAllowed = forumModule.isAnonymousPostingWithPseudonymEnabled() && "true".equals(config);
if (pseudonymPostAllowed) {
defaultPseudonym = getModuleConfiguration().getBooleanSafe(FOCourseNodeEditController.PSEUDONYM_POST_DEFAULT, forumModule.isPseudonymForMessageEnabledByDefault());
}
}
// Create subscription context and run controller
SubscriptionContext forumSubContext = CourseModule.createSubscriptionContext(userCourseEnv.getCourseEnvironment(), this);
ForumCallback foCallback = userCourseEnv.isCourseReadOnly() ? new ReadOnlyForumCallback(ne, isOlatAdmin, isGuestOnly) : new ForumNodeForumCallback(ne, isOlatAdmin, isGuestOnly, guestPostAllowed, pseudonymPostAllowed, defaultPseudonym, forumSubContext);
FOCourseNodeRunController forumC = new FOCourseNodeRunController(ureq, wControl, theForum, foCallback, this);
return new NodeRunConstructionResult(forumC);
}
use of org.olat.modules.fo.ForumModule in project openolat by klemens.
the class ForumNodeForumCallback method createNodeRunConstructionResult.
/**
* @see org.olat.course.nodes.CourseNode#createNodeRunConstructionResult(org.olat.core.gui.UserRequest,
* org.olat.core.gui.control.WindowControl,
* org.olat.course.run.userview.UserCourseEnvironment,
* org.olat.course.run.userview.NodeEvaluation)
*/
@Override
public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl, final UserCourseEnvironment userCourseEnv, NodeEvaluation ne, String nodecmd) {
updateModuleConfigDefaults(false);
Roles roles = ureq.getUserSession().getRoles();
Forum theForum = loadOrCreateForum(userCourseEnv.getCourseEnvironment());
boolean isOlatAdmin = roles.isOLATAdmin();
boolean isGuestOnly = roles.isGuestOnly();
// Add message id to business path if nodemcd is available
if (nodecmd != null) {
try {
Long messageId = Long.valueOf(nodecmd);
BusinessControlFactory bcf = BusinessControlFactory.getInstance();
BusinessControl businessControl = bcf.createFromString("[Message:" + messageId + "]");
wControl = bcf.createBusinessWindowControl(businessControl, wControl);
} catch (NumberFormatException e) {
// ups, nodecmd is not a message, what the heck is it then?
log.warn("Could not create message ID from given nodemcd::" + nodecmd, e);
}
}
// for guests, check if posting is allowed
boolean pseudonymPostAllowed = false;
boolean defaultPseudonym = false;
boolean guestPostAllowed = false;
if (roles.isGuestOnly()) {
String config = getModuleConfiguration().getStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED);
guestPostAllowed = "true".equals(config);
} else {
ForumModule forumModule = CoreSpringFactory.getImpl(ForumModule.class);
String config = getModuleConfiguration().getStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED);
pseudonymPostAllowed = forumModule.isAnonymousPostingWithPseudonymEnabled() && "true".equals(config);
if (pseudonymPostAllowed) {
defaultPseudonym = getModuleConfiguration().getBooleanSafe(FOCourseNodeEditController.PSEUDONYM_POST_DEFAULT, forumModule.isPseudonymForMessageEnabledByDefault());
}
}
// Create subscription context and run controller
SubscriptionContext forumSubContext = CourseModule.createSubscriptionContext(userCourseEnv.getCourseEnvironment(), this);
ForumCallback foCallback = userCourseEnv.isCourseReadOnly() ? new ReadOnlyForumCallback(ne, isOlatAdmin, isGuestOnly) : new ForumNodeForumCallback(ne, isOlatAdmin, isGuestOnly, guestPostAllowed, pseudonymPostAllowed, defaultPseudonym, forumSubContext);
FOCourseNodeRunController forumC = new FOCourseNodeRunController(ureq, wControl, theForum, foCallback, this);
return new NodeRunConstructionResult(forumC);
}
use of org.olat.modules.fo.ForumModule in project openolat by klemens.
the class ForumNodeForumCallback method updateModuleConfigDefaults.
/**
* Update the module configuration to have all mandatory configuration flags
* set to usefull default values
*
* @param isNewNode true: an initial configuration is set; false: upgrading
* from previous node configuration version, set default to maintain
* previous behaviour
*/
@Override
public void updateModuleConfigDefaults(boolean isNewNode) {
ModuleConfiguration config = getModuleConfiguration();
if (isNewNode) {
ForumModule forumModule = CoreSpringFactory.getImpl(ForumModule.class);
boolean pseudonymAllowed = forumModule.isAnonymousPostingWithPseudonymEnabled() && forumModule.isPseudonymForCourseEnabledByDefault();
config.setStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED, pseudonymAllowed ? "true" : "false");
boolean pseudonymDefault = pseudonymAllowed && forumModule.isPseudonymForMessageEnabledByDefault();
config.setStringValue(FOCourseNodeEditController.PSEUDONYM_POST_DEFAULT, pseudonymDefault ? "true" : "false");
config.setStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED, "false");
}
if (isNewNode || config.getConfigurationVersion() < 2) {
// use defaults for new course building blocks
config.setBooleanEntry(NodeEditController.CONFIG_STARTPAGE, Boolean.FALSE.booleanValue());
config.setConfigurationVersion(2);
}
if (config.getConfigurationVersion() < 3) {
if (config.getStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED) == null) {
config.setStringValue(FOCourseNodeEditController.PSEUDONYM_POST_ALLOWED, "false");
}
if (config.getStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED) == null) {
config.setStringValue(FOCourseNodeEditController.GUEST_POST_ALLOWED, "false");
}
config.setConfigurationVersion(3);
}
// else node is up-to-date - nothing to do
config.remove(NodeEditController.CONFIG_INTEGRATION);
}
Aggregations