From 0860b20734e017a9b79f9a8aec1d7f1bacd3dc16 Mon Sep 17 00:00:00 2001 From: hg <none@none> Date: Tue, 9 May 2017 15:08:45 +0200 Subject: [PATCH] OO-2730 Option to hide user score change log and info button in assessable course node --- .../java/org/olat/course/CourseModule.java | 30 +++++- .../org/olat/course/_spring/courseContext.xml | 18 ++++ .../AssessableCourseNodeAdminController.java | 94 +++++++++++++++++++ .../_i18n/LocalStrings_de.properties | 16 +--- .../_i18n/LocalStrings_en.properties | 16 +--- .../nodes/gta/ui/GTAAbstractController.java | 5 + .../course/nodes/gta/ui/_content/run.html | 25 ++--- .../olat/course/nodes/iq/IQRunController.java | 13 +++ .../iq/QTI21AssessmentRunController.java | 6 ++ .../nodes/iq/_content/assessment_run.html | 46 ++++----- .../course/nodes/iq/_content/selftestrun.html | 37 ++++---- .../course/nodes/iq/_content/surveyrun.html | 25 ++--- .../course/nodes/iq/_content/testrun.html | 40 ++++---- .../nodes/ms/MSCourseNodeRunController.java | 8 ++ .../olat/course/nodes/ms/_content/run.html | 17 ++-- .../repository/_spring/repositoryContext.xml | 4 +- .../resources/serviceconfig/olat.properties | 14 ++- 17 files changed, 296 insertions(+), 118 deletions(-) create mode 100644 src/main/java/org/olat/course/assessment/AssessableCourseNodeAdminController.java diff --git a/src/main/java/org/olat/course/CourseModule.java b/src/main/java/org/olat/course/CourseModule.java index 791d7ca7f05..b04dac2a84d 100644 --- a/src/main/java/org/olat/course/CourseModule.java +++ b/src/main/java/org/olat/course/CourseModule.java @@ -48,6 +48,7 @@ import org.springframework.stereotype.Service; * @author Mike Stock * @author guido * @author Florian Gnägi + * @author fkiefer */ @Service public class CourseModule extends AbstractSpringModule { @@ -58,6 +59,10 @@ public class CourseModule extends AbstractSpringModule { private String helpCourseSoftkey; @Autowired @Qualifier("logVisibilityForCourseAuthor") private HashMap<String, String> logVisibilities; + @Value("${course.display.infobox}") + private boolean displayInfoBox; + @Value("${course.display.changelog}") + private boolean displayChangeLog; // Repository types public static String ORES_TYPE_COURSE = OresHelper.calculateTypeName(CourseModule.class); @@ -74,12 +79,13 @@ public class CourseModule extends AbstractSpringModule { @Override protected void initFromChangedProperties() { - // + displayInfoBox = getBooleanPropertyValue("course.display.infobox"); + displayChangeLog = getBooleanPropertyValue("course.display.changelog"); } @Override public void init() { - // + initFromChangedProperties(); } /** @@ -174,4 +180,24 @@ public class CourseModule extends AbstractSpringModule { public boolean displayParticipantsCount() { return displayParticipantsCount; } + + public boolean isDisplayInfoBox() { + return displayInfoBox; + } + + public void setDisplayInfoBox(boolean enabled) { + this.displayInfoBox = enabled; + setBooleanProperty("course.display.infobox", enabled, true); + } + + public boolean isDisplayChangeLog() { + return displayChangeLog; + } + + public void setDisplayChangeLog(boolean enabled) { + this.displayChangeLog = enabled; + setBooleanProperty("course.display.changelog", enabled, true); + } + + } diff --git a/src/main/java/org/olat/course/_spring/courseContext.xml b/src/main/java/org/olat/course/_spring/courseContext.xml index 4dd9f94ad41..7407a7b127e 100644 --- a/src/main/java/org/olat/course/_spring/courseContext.xml +++ b/src/main/java/org/olat/course/_spring/courseContext.xml @@ -75,5 +75,23 @@ </list> </property> </bean> + <bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints"> + <property name="order" value="8210" /> + <property name="actionController"> + <bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype"> + <property name="className" value="org.olat.course.assessment.AssessableCourseNodeAdminController"/> + </bean> + </property> + <property name="navigationKey" value="certificates" /> + <property name="i18nActionKey" value="admin.menu.title"/> + <property name="i18nDescriptionKey" value="admin.menu.title.alt"/> + <property name="translationPackage" value="org.olat.course.assessment"/> + <property name="parentTreeNodeIdentifier" value="modulesParent" /> + <property name="extensionPoints"> + <list> + <value>org.olat.admin.SystemAdminMainController</value> + </list> + </property> + </bean> </beans> \ No newline at end of file diff --git a/src/main/java/org/olat/course/assessment/AssessableCourseNodeAdminController.java b/src/main/java/org/olat/course/assessment/AssessableCourseNodeAdminController.java new file mode 100644 index 00000000000..af59f466f78 --- /dev/null +++ b/src/main/java/org/olat/course/assessment/AssessableCourseNodeAdminController.java @@ -0,0 +1,94 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.assessment; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.WindowControl; +import org.olat.course.CourseModule; +import org.springframework.beans.factory.annotation.Autowired; +/** + * + * Initial date: 08.05.2017<br> + * @author fkiefer + * + */ +public class AssessableCourseNodeAdminController extends FormBasicController { + + private static final String[] onKeys = new String[]{ "on" }; + private final String[] onValues; + + private MultipleSelectionElement infoBoxEl, changeLogEl; + + @Autowired + private CourseModule courseModule; + + public AssessableCourseNodeAdminController(UserRequest ureq, WindowControl wControl) { + super(ureq, wControl); + + onValues = new String[]{ translate("on") }; + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + setFormTitle("admin.assessable.coursenode"); + + infoBoxEl = uifactory.addCheckboxesHorizontal("admin.info.box", formLayout, onKeys, onValues); + infoBoxEl.addActionListener(FormEvent.ONCHANGE); + if (courseModule.isDisplayInfoBox()) { + infoBoxEl.select(onKeys[0], true); + } + + changeLogEl = uifactory.addCheckboxesHorizontal("admin.user.changelog", formLayout, onKeys, onValues); + changeLogEl.addActionListener(FormEvent.ONCHANGE); + if (courseModule.isDisplayChangeLog()) { + changeLogEl.select(onKeys[0], true); + } + + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if (source == infoBoxEl) { + courseModule.setDisplayInfoBox(infoBoxEl.isSelected(0)); + } else if (source == changeLogEl) { + courseModule.setDisplayChangeLog(changeLogEl.isSelected(0)); + } + super.formInnerEvent(ureq, source, event); + } + + @Override + protected void formOK(UserRequest ureq) { + // nothing + } + + @Override + protected void doDispose() { + // nothing + } + +} diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties index 5ec603b7213..50cc2a9899a 100644 --- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties @@ -1,17 +1,11 @@ #Mon Mar 02 09:54:04 CET 2009 action.choose=Select artefact.title=Leistungsnachweis f\u00FCr Kurs {0} - - - - - - - - - - - +admin.menu.title=Kurs +admin.menu.title.alt=$\:admin.menu.title Einstellungen +admin.info.box=Infobox beim Start anzeigen +admin.user.changelog=Bewertungsverlauf dem Benutzer anzeigen +admin.assessable.coursenode=Einstellungen f\u00FCr bewertbare Kursbausteine cmd.all.users=Alle Benutzer anzeigen cmd.filterCourseNodes=Von mir bewertbare Kursbausteine anzeigen cmd.filterGroups=Von mir betreute Gruppen mit Zugriff auf gew\u00E4hlten Kursbaustein diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties index bad2ea244b2..7264f5a74bd 100644 --- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties @@ -3,17 +3,11 @@ action.choose=Select artefact.title=Evidence of achievement for course {0} assessment.testresults.finished=<font color\="green">Assessment completed</font> assessment.testresults.open=<font color\="orange">Assessment pending</font> - - - - - - - - - - - +admin.menu.title=Course +admin.menu.title.alt=$\:admin.menu.title settings +admin.info.box=Show info box on start +admin.user.changelog=Show assessment changelog to user +admin.assessable.coursenode=Settings for assessable course elements cmd.all.users=Show all users cmd.filterCourseNodes=Show assessable course elements cmd.filterGroups=Supervised groups with access to selected course element diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java index 06a8faa7efb..d2cf903fb61 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java @@ -41,6 +41,7 @@ import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.core.util.event.GenericEventListener; import org.olat.core.util.resource.OresHelper; import org.olat.course.CourseFactory; +import org.olat.course.CourseModule; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentHelper; import org.olat.course.assessment.manager.UserCourseInformationsManager; @@ -109,6 +110,8 @@ public abstract class GTAAbstractController extends BasicController implements G protected BusinessGroupService businessGroupService; @Autowired protected UserCourseInformationsManager userCourseInformationsManager; + @Autowired + protected CourseModule courseModule; public GTAAbstractController(UserRequest ureq, WindowControl wControl, GTACourseNode gtaNode, CourseEnvironment courseEnv, boolean withTitle, boolean withGrading, boolean withSubscription) { @@ -242,6 +245,8 @@ public abstract class GTAAbstractController extends BasicController implements G task = gtaManager.nextStep(task, gtaNode); } + mainVC.contextPut("changelogconfig", courseModule.isDisplayChangeLog()); + nodeLog(); collapsedContents(task); } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html b/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html index 4b839628161..4e5c2747cba 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html +++ b/src/main/java/org/olat/course/nodes/gta/ui/_content/run.html @@ -183,16 +183,17 @@ #if ($r.available("highScore")) $r.render("highScore") #end - -#if($userLog || $groupLog) -<div class="o_box"> - #o_togglebox_start("o_course_run_log" $r.translate("log.title")) - #if($groupLog) - <pre class="small">$groupLog</pre> - #end - #if($userLog) - <pre class="small">$userLog</pre> - #end - #o_togglebox_end() -</div> +#if ($changelogconfig) + #if($userLog || $groupLog) + <div class="o_box"> + #o_togglebox_start("o_course_run_log" $r.translate("log.title")) + #if($groupLog) + <pre class="small">$groupLog</pre> + #end + #if($userLog) + <pre class="small">$userLog</pre> + #end + #o_togglebox_end() + </div> + #end #end \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/iq/IQRunController.java b/src/main/java/org/olat/course/nodes/iq/IQRunController.java index ba6396759bd..9836e183401 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQRunController.java +++ b/src/main/java/org/olat/course/nodes/iq/IQRunController.java @@ -63,6 +63,7 @@ import org.olat.core.util.event.GenericEventListener; import org.olat.core.util.resource.OresHelper; import org.olat.core.util.vfs.VFSContainer; import org.olat.course.CourseFactory; +import org.olat.course.CourseModule; import org.olat.course.DisposedCourseRestartController; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentHelper; @@ -138,6 +139,8 @@ public class IQRunController extends BasicController implements GenericEventList private IQManager iqManager; @Autowired private AssessmentNotificationsHandler assessmentNotificationsHandler; + @Autowired + private CourseModule courseModule; /** * Constructor for a test run controller @@ -193,6 +196,10 @@ public class IQRunController extends BasicController implements GenericEventList //if show results on test home page configured - show log Boolean showResultOnHomePage = testCourseNode.getModuleConfiguration().getBooleanEntry(IQEditController.CONFIG_KEY_RESULT_ON_HOME_PAGE); myContent.contextPut("showChangelog", showResultOnHomePage); + + //admin setting whether to show change log and info box or not + myContent.contextPut("infobox", courseModule.isDisplayInfoBox()); + myContent.contextPut("changelogconfig", courseModule.isDisplayChangeLog()); } /** @@ -279,6 +286,9 @@ public class IQRunController extends BasicController implements GenericEventList } //per default change log is not open myContent.contextPut("showChangelog", Boolean.FALSE); + //admin setting whether to show change log and info box or not + myContent.contextPut("infobox", courseModule.isDisplayInfoBox()); + myContent.contextPut("changelogconfig", courseModule.isDisplayChangeLog()); } /** @@ -322,6 +332,9 @@ public class IQRunController extends BasicController implements GenericEventList } //per default change log is not open myContent.contextPut("showChangelog", Boolean.FALSE); + //admin setting whether to show change log and info box or not + myContent.contextPut("infobox", courseModule.isDisplayInfoBox()); + myContent.contextPut("changelogconfig", courseModule.isDisplayChangeLog()); } diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java index d424995e395..37eb2f76eef 100644 --- a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java +++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java @@ -53,6 +53,7 @@ import org.olat.core.util.event.GenericEventListener; import org.olat.core.util.mail.MailBundle; import org.olat.core.util.resource.OresHelper; import org.olat.core.util.vfs.VFSContainer; +import org.olat.course.CourseModule; import org.olat.course.DisposedCourseRestartController; import org.olat.course.assessment.AssessmentHelper; import org.olat.course.assessment.AssessmentManager; @@ -126,6 +127,8 @@ public class QTI21AssessmentRunController extends BasicController implements Gen @Autowired private QTI21Service qtiService; + @Autowired + private CourseModule courseModule; public QTI21AssessmentRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, QTICourseNode courseNode) { @@ -143,6 +146,9 @@ public class QTI21AssessmentRunController extends BasicController implements Gen addLoggingResourceable(LoggingResourceable.wrap(courseNode)); + mainVC.contextPut("infobox", courseModule.isDisplayInfoBox()); + mainVC.contextPut("changelogconfig", courseModule.isDisplayChangeLog()); + if(courseNode instanceof IQTESTCourseNode) { mainVC.contextPut("type", "test"); } else if(courseNode instanceof IQSELFCourseNode) { diff --git a/src/main/java/org/olat/course/nodes/iq/_content/assessment_run.html b/src/main/java/org/olat/course/nodes/iq/_content/assessment_run.html index 6305ce0af90..0f007e01b8e 100644 --- a/src/main/java/org/olat/course/nodes/iq/_content/assessment_run.html +++ b/src/main/java/org/olat/course/nodes/iq/_content/assessment_run.html @@ -151,28 +151,32 @@ </div></div> </div> #end - - #if($type == "test") - <div class="o_statusinfo"> - <p>$r.translate("Intro.test")</p> - <p>$r.translate("info.assessment")</p> - #if ($hasChatWindowOpen) - <p>$r.translate("close.chat.windows.for.test")</p> + + #if($infobox) + #if($type == "test") + <div class="o_statusinfo"> + <p>$r.translate("Intro.test")</p> + <p>$r.translate("info.assessment")</p> + #if ($hasChatWindowOpen) + <p>$r.translate("close.chat.windows.for.test")</p> + #end + </div> + #elseif($type == "self") + <div class="o_statusinfo"> + <p>$r.translate("Intro.self")</p> + <p>$r.translate("info.selfassessment")</p> + </div> #end - </div> - #elseif($type == "self") - <div class="o_statusinfo"> - <p>$r.translate("Intro.self")</p> - <p>$r.translate("info.selfassessment")</p> - </div> - #end - + #end <div class="o_button_group">$r.render("start")</div> #end -#if($r.isNotNull($log) && $r.isNotNull($showChangeLog) && $showChangeLog) -<div class="o_box"> - #o_togglebox_start("o_course_run_log" $r.translate("log.title")) - <pre class="small">$log</pre> - #o_togglebox_end() -</div> +#if($changelogconfig) + #if($r.isNotNull($log) && $r.isNotNull($showChangeLog) && $showChangeLog) + <div class="o_box"> + #o_togglebox_start("o_course_run_log" $r.translate("log.title")) + <pre class="small">$log</pre> + #o_togglebox_end() + </div> + #end #end + diff --git a/src/main/java/org/olat/course/nodes/iq/_content/selftestrun.html b/src/main/java/org/olat/course/nodes/iq/_content/selftestrun.html index 71f2f3f9254..1b0f8f3b1e7 100644 --- a/src/main/java/org/olat/course/nodes/iq/_content/selftestrun.html +++ b/src/main/java/org/olat/course/nodes/iq/_content/selftestrun.html @@ -116,26 +116,27 @@ </div> </div> #end - -<div class="o_statusinfo"> - <p> - $r.translate("Intro.self") - </p> - <p> - $r.translate("info.selfassessment") - </p> -</div> - +#if ($infobox) + <div class="o_statusinfo"> + <p> + $r.translate("Intro.self") + </p> + <p> + $r.translate("info.selfassessment") + </p> + </div> +#end <div class="o_button_group"> $r.render("start") </div> - -#if($changeLog) -<div class="o_box"> - #o_togglebox_start("o_course_run_changelog" $r.translate("changelog.title")) - <pre class="small"> +#if ($changelogconfig) + #if($changeLog) + <div class="o_box"> + #o_togglebox_start("o_course_run_changelog" $r.translate("changelog.title")) + <pre class="small"> $changeLog - </pre> - #o_togglebox_end() -</div> + </pre> + #o_togglebox_end() + </div> + #end #end \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/iq/_content/surveyrun.html b/src/main/java/org/olat/course/nodes/iq/_content/surveyrun.html index 244267d6eb5..876954b23dc 100644 --- a/src/main/java/org/olat/course/nodes/iq/_content/surveyrun.html +++ b/src/main/java/org/olat/course/nodes/iq/_content/surveyrun.html @@ -9,8 +9,8 @@ </div> #end - #if ($attempts == 0) + #if ($infobox) <div class="o_statusinfo"> <p> $r.translate("Intro.surv") @@ -19,6 +19,7 @@ $r.translate("info.survey") </p> </div> + #end <div class="o_button_group"> $r.render("start") @@ -28,17 +29,19 @@ $r.translate("info.survey.alreadydone") </div> #end - - -#if($changeLog) -<div class="o_box"> - #o_togglebox_start("o_course_run_changelog" $r.translate("changelog.title")) - <pre class="small"> + +#if ($changelogconfig) + #if($changeLog) + <div class="o_box"> + #o_togglebox_start("o_course_run_changelog" $r.translate("changelog.title")) + <pre class="small"> $changeLog - </pre> - #o_togglebox_end() -</div> -#end + </pre> + #o_togglebox_end() + </div> + #end +#end + #if ($r.available("highScore")) $r.render("highScore") #end \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/iq/_content/testrun.html b/src/main/java/org/olat/course/nodes/iq/_content/testrun.html index 2c663d744df..56c8f366604 100644 --- a/src/main/java/org/olat/course/nodes/iq/_content/testrun.html +++ b/src/main/java/org/olat/course/nodes/iq/_content/testrun.html @@ -166,7 +166,7 @@ </div></div> </div> #end - + #if ($infobox) <div class="o_statusinfo"> <p> $r.translate("Intro.test") @@ -180,7 +180,7 @@ </p> #end </div> - + #end <div class="o_button_group"> $r.render("start") </div> @@ -196,23 +196,25 @@ }) /* ]]> */ </script> - -#if ($log && $showChangelog) -<div class="o_box"> - #o_togglebox_start("o_course_run_log" $r.translate("log.title")) - <pre class="small"> + +#if ($changelogconfig) + #if ($log && $showChangelog) + <div class="o_box"> + #o_togglebox_start("o_course_run_log" $r.translate("log.title")) + <pre class="small"> $log - </pre> - #o_togglebox_end() -</div> -#end - -#if($changeLog) -<div class="o_box"> - #o_togglebox_start("o_course_run_changelog" $r.translate("changelog.title")) - <pre class="small"> + </pre> + #o_togglebox_end() + </div> + #end + + #if($changeLog) + <div class="o_box"> + #o_togglebox_start("o_course_run_changelog" $r.translate("changelog.title")) + <pre class="small"> $changeLog - </pre> - #o_togglebox_end() -</div> + </pre> + #o_togglebox_end() + </div> + #end #end diff --git a/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java index b7959e281d2..3ed0f26a420 100644 --- a/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java +++ b/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java @@ -34,6 +34,7 @@ import org.olat.core.gui.control.controller.BasicController; import org.olat.core.util.Formatter; import org.olat.core.util.StringHelper; import org.olat.core.util.Util; +import org.olat.course.CourseModule; import org.olat.course.assessment.AssessmentHelper; import org.olat.course.auditing.UserNodeAuditManager; import org.olat.course.highscore.ui.HighScoreRunController; @@ -44,6 +45,7 @@ import org.olat.course.nodes.PersistentAssessableCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; +import org.springframework.beans.factory.annotation.Autowired; /** * Initial Date: Jun 16, 2004 @@ -55,6 +57,9 @@ public class MSCourseNodeRunController extends BasicController { private final boolean showLog; private boolean hasScore, hasPassed, hasComment; private final boolean overrideUserResultsVisiblity; + + @Autowired + private CourseModule courseModule; /** * Constructor for a manual scoring course run controller @@ -113,6 +118,9 @@ public class MSCourseNodeRunController extends BasicController { myContent.contextPut("hasObjectives", learningObj); // dummy value, just an exists operator } } + + //admin setting whether to show change log or not + myContent.contextPut("changelogconfig", courseModule.isDisplayChangeLog()); // Push variables to velcity page exposeConfigToVC(config); diff --git a/src/main/java/org/olat/course/nodes/ms/_content/run.html b/src/main/java/org/olat/course/nodes/ms/_content/run.html index a30e353d90d..6ca131639f1 100644 --- a/src/main/java/org/olat/course/nodes/ms/_content/run.html +++ b/src/main/java/org/olat/course/nodes/ms/_content/run.html @@ -106,13 +106,14 @@ #if ($r.available("highScore")) $r.render("highScore") #end - -#if($log) -<div class="o_box"> - #o_togglebox_start("o_course_run_log" $r.translate("log.title")) - <pre class="small"> +#if ($changelogconfig) + #if($log) + <div class="o_box"> + #o_togglebox_start("o_course_run_log" $r.translate("log.title")) + <pre class="small"> $log - </pre> - #o_togglebox_end() -</div> + </pre> + #o_togglebox_end() + </div> + #end #end \ No newline at end of file diff --git a/src/main/java/org/olat/repository/_spring/repositoryContext.xml b/src/main/java/org/olat/repository/_spring/repositoryContext.xml index beff3aea2c9..42418ac70ce 100644 --- a/src/main/java/org/olat/repository/_spring/repositoryContext.xml +++ b/src/main/java/org/olat/repository/_spring/repositoryContext.xml @@ -43,7 +43,7 @@ <!-- Catalog admin. panel --> <bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints"> - <property name="order" value="8209" /> + <property name="order" value="8211" /> <property name="actionController"> <bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype"> <property name="className" value="org.olat.repository.ui.admin.CatalogAdminController"/> @@ -63,7 +63,7 @@ <!-- Repository admin. panel --> <bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints"> - <property name="order" value="8210" /> + <property name="order" value="8212" /> <property name="navigationKey" value="repositoryAdmin" /> <property name="actionController"> <bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype"> diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties index 27a00091f99..9c28ad05743 100644 --- a/src/main/resources/serviceconfig/olat.properties +++ b/src/main/resources/serviceconfig/olat.properties @@ -612,9 +612,6 @@ velocity.parser.pool.size.comment=20 is Velocity default value, use more when yo # of the instant messaging / chat infrastructure is done in the admin GUI instantMessaging.enable=true -#whether to display current course participant count in the course toolbox -course.display.participants.count=true - ######################################################################## # Calendar ######################################################################## @@ -1096,6 +1093,17 @@ paypal.sandbox.values=true,false paypal.data.format=XML paypal.data.format.values=XML,JSON,SOAP11 +######################################## +# Course specific settings +######################################## + +#whether to display current course participant count in the course toolbox +course.display.participants.count=true +#whether to display infobox on assessable coursenodes +course.display.infobox=true +#whether to display changelog on assessable coursenodes +course.display.changelog=true + ######################################## # Course building blocks, every course building block can be disabled by adding a property here and reference it in # appropriate spring config file (by default are course bb are enabled) -- GitLab