diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties index b7fefe3ba96838c86c5c8d2b6878b0ae53fb2253..c70b8f04d953f2ec98111b76ae7026f10c0700fd 100644 --- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties @@ -465,7 +465,7 @@ publish.nowarnings=Keine Probleme gefunden publish.step.title.confirm=Zusammenfassung der \u00C4nderungen publish.step.title.messages=Hinweise publish.step.update.title=Hintergrund Aktualisierung -publish.update.description=Während der Publikation müssen die folgende Hintergrundprozesse ausgeführt werden um die Datenkonsistenz sicherzustellen. Dieser Prozess kann einige Zeit dauern. Bitte warten Sie bei der Fertigstellung der Publikation bis Sie eine entsprechende Rückmeldung erhalten haben. +publish.update.description=Während der Publikation müssen die folgenden Hintergrundprozesse ausgeführt werden um die Datenkonsistenz sicherzustellen. Dieser Prozess kann einige Zeit dauern. Bitte warten Sie mit der Fertigstellung der Publikation bis Sie eine entsprechende Rückmeldung erhalten haben. publish.update.nothing=Es gibt keine die eine Aktualisierung brauchte. publish.title=Publizieren der \u00C4nderungen von Kursbausteinen publish.withwarnings=Warnung diff --git a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java index 902f8df7d62bb7a71df2c4ffd625600fd0542924..71438170e4f1703818021824a74ef60d20a3acf2 100644 --- a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java +++ b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java @@ -631,7 +631,6 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements Float currentScore = am.getNodeScore(this, assessedIdentity); Boolean currentPassed = am.getNodePassed(this, assessedIdentity); - Float updatedScore = null; Boolean updatedPassed = null; @@ -646,7 +645,6 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements Boolean passedBool = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD); if(passedBool != null && passedBool.booleanValue()) { - Float cutValue = (Float)config.get(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE); Boolean sumCheckbox = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CHECKBOX); if(sumCheckbox != null && sumCheckbox.booleanValue()) { @@ -678,14 +676,14 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements Boolean manualCorrection = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_MANUAL_CORRECTION); if(manualCorrection == null || !manualCorrection.booleanValue()) { //update passed - if((currentPassed == null && updatedPassed != null) + if((currentPassed == null && updatedPassed != null && updatedScore.floatValue() > 0f) || (currentPassed != null && updatedPassed == null) || (currentPassed != null && !currentPassed.equals(updatedPassed))) { needUpdate = true; } } - if((currentScore == null && updatedScore != null) + if((currentScore == null && updatedScore != null && updatedScore.floatValue() > 0f) || (currentScore != null && updatedScore == null) || (currentScore != null && !currentScore.equals(updatedScore))) { needUpdate = true; diff --git a/src/main/java/org/olat/course/nodes/cl/CheckboxManager.java b/src/main/java/org/olat/course/nodes/cl/CheckboxManager.java index dedbff0bfa323a4384547f5972b04cbe6fe3af0b..57ccd36b175db4fce3c4c4678821c54e96de1bf9 100644 --- a/src/main/java/org/olat/course/nodes/cl/CheckboxManager.java +++ b/src/main/java/org/olat/course/nodes/cl/CheckboxManager.java @@ -63,11 +63,16 @@ public interface CheckboxManager { public List<DBCheck> loadCheck(Identity identity, OLATResourceable ores, String resSubPath); - - public int countChecked(OLATResourceable ores, String resSubPath); + /** + * Return the number of checks (checked or not) on the database. + * @param ores + * @param resSubPath + * @return + */ + public int countChecks(OLATResourceable ores, String resSubPath); /** - * + * Return the number of checks checked for an user. * @param identity (mandatory) * @param ores (mandatory) * @param resSubPath (optional) diff --git a/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java b/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java index f73b6c3273ec118e173a79b33044c08110028a19..58367267c2367c841b54e4229331688c6934f474 100644 --- a/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java +++ b/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java @@ -366,7 +366,7 @@ public class CheckboxManagerImpl implements CheckboxManager { } @Override - public int countChecked(OLATResourceable ores, String resSubPath) { + public int countChecks(OLATResourceable ores, String resSubPath) { StringBuilder sb = new StringBuilder(); sb.append("select count(check) from clcheck check") .append(" inner join check.checkbox box") @@ -394,7 +394,8 @@ public class CheckboxManagerImpl implements CheckboxManager { sb.append("select count(check) from clcheck check") .append(" inner join check.checkbox box") .append(" inner join check.identity ident") - .append(" where check.identity.key=:identityKey and box.resName=:resName and box.resId=:resId"); + .append(" where check.identity.key=:identityKey and box.resName=:resName and box.resId=:resId") + .append(" and check.checked=true"); if(StringHelper.containsNonWhitespace(resSubPath)) { sb.append(" and box.resSubPath=:resSubPath"); } diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListEditController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListEditController.java index 5501efe82a2b6156d9614f300fe9aa5a23cd041f..1ca59e7c6646b418d11e3dcecb4161c8b1d88b64 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListEditController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListEditController.java @@ -77,7 +77,7 @@ public class CheckListEditController extends ActivateableTabbableDefaultControll CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); - int numOfChecks = checkboxManager.countChecked(course, courseNode.getIdent()); + int numOfChecks = checkboxManager.countChecks(course, courseNode.getIdent()); checkboxListEditCtrl = new CheckListBoxListEditController(ureq, wControl, course, courseNode, numOfChecks > 0); listenTo(checkboxListEditCtrl); diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java index 88448c3063074f0aba900376756dfddbd7ecc392..700e28145bb24572ddd3b2c5c4dbacea41548600 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java @@ -76,7 +76,7 @@ import org.olat.util.logging.activity.LoggingResourceable; public class CheckListRunController extends FormBasicController implements ControllerEventListener, Activateable2 { private final Date dueDate; - private final boolean withScore; + private final boolean withScore, withPassed; private final Boolean closeAfterDueDate; private final CheckboxList checkboxList; @@ -121,7 +121,9 @@ public class CheckListRunController extends FormBasicController implements Contr } Boolean hasScore = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD); - withScore = (hasScore == null || hasScore.booleanValue()); + withScore = (hasScore == null || hasScore.booleanValue()); + Boolean hasPassed = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD); + withPassed = (hasPassed == null || hasPassed.booleanValue()); initForm(ureq); } @@ -156,7 +158,7 @@ public class CheckListRunController extends FormBasicController implements Contr } layoutCont.contextPut("checkboxList", wrappers); - if(withScore) { + if(withScore || withPassed) { layoutCont.contextPut("enableScoreInfo", Boolean.TRUE); exposeConfigToVC(layoutCont); exposeUserDataToVC(layoutCont); @@ -171,7 +173,9 @@ public class CheckListRunController extends FormBasicController implements Contr layoutCont.contextPut(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD, config.get(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD)); layoutCont.contextPut(MSCourseNode.CONFIG_KEY_HAS_COMMENT_FIELD, config.get(MSCourseNode.CONFIG_KEY_HAS_COMMENT_FIELD)); String infoTextUser = (String) config.get(MSCourseNode.CONFIG_KEY_INFOTEXT_USER); - layoutCont.contextPut(MSCourseNode.CONFIG_KEY_INFOTEXT_USER, (infoTextUser == null ? "" : infoTextUser)); + if(StringHelper.containsNonWhitespace(infoTextUser)) { + layoutCont.contextPut(MSCourseNode.CONFIG_KEY_INFOTEXT_USER, infoTextUser); + } layoutCont.contextPut(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE, AssessmentHelper.getRoundedScore((Float)config.get(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE))); layoutCont.contextPut(MSCourseNode.CONFIG_KEY_SCORE_MIN, AssessmentHelper.getRoundedScore((Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MIN))); layoutCont.contextPut(MSCourseNode.CONFIG_KEY_SCORE_MAX, AssessmentHelper.getRoundedScore((Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MAX))); diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html index 41d86663404eddc2ed0b1bd8459f8280d48efe08..16f381f024907131d6e9eb2fb57d530a6218e509 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html @@ -1 +1,3 @@ -<p>$r.translate("chelp.checkbox.template.1")</p> \ No newline at end of file +<p>$r.translate("chelp.checkbox.template.1")</p> +<p>$r.translate("chelp.checkbox.template.2")</p> +<p>$r.translate("chelp.checkbox.template.3") $r.contextHelpRelativeLink("cl-checkbox.html").</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-metadatas.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-metadatas.html new file mode 100644 index 0000000000000000000000000000000000000000..be2c92a4d3862ae2f9bef5b20ab5cab1c55b905d --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-metadatas.html @@ -0,0 +1 @@ +<p>$r.translate("chelp.metadatas.1")</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-st-config.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-st-config.html index 7e63c7eb2391e5a013a826840e3c3bf2650c37b1..d960380cd9fada2dd42d5d26a97fa3147ee1e045 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-st-config.html +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-st-config.html @@ -1 +1,2 @@ -<p>$r.translate("chelp.stconfig.1")</p> \ No newline at end of file +<p>$r.translate("chelp.stconfig.1")</p> +<p>$r.translate("chelp.stconfig.1") $r.contextHelpRelativeLink("org.olat.course.nodes.st","ced-st-score.html").</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-template-configuration.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-template-configuration.html index ad639969eb2b4eb9725989ac764077724c319ea4..57ab67305b55c48ed319342c480fd3ab93315b5e 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-template-configuration.html +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-template-configuration.html @@ -1 +1,2 @@ -<p>$r.translate("chelp.template.config.1")</p> \ No newline at end of file +<p>$r.translate("chelp.template.config.1")</p> +<p>$r.translate("chelp.template.config.2") $r.contextHelpRelativeLink("cl-config.html") $r.translate("chelp.template.config.3")</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/run.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/run.html index 96aa94b3054f28cb71bb4ec39fde72343763479e..c75f891a5f6e632f1a8b507b70d3cae8fad70029 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/_content/run.html +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/run.html @@ -46,7 +46,7 @@ #if ($hasCommentField) <h4>$r.translate("comment.title")</h4> - #if ($comment) + #if($comment) $comment #else <div class="o_course_run_scoreinfo_noinfo">$r.translate("comment.nocomment")</div> diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties index f2a37ab9a4ec6af3c52959f33cd3c5a174df6564..b02f4e6d54f8f13cb7ea9cf9e6dce66d413d2041 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties @@ -24,11 +24,11 @@ chelp.coach.6=Zus chelp.coach.7="<strong>$\:pdf.export.checked</strong>" erstellt ein PDF, das pro Checkbox eine Tabelle mit jenen Teilnehmern enthält, die die entsprechende Checkbox bereits markiert haben. chelp.cl-config.title=Checkliste: Konfiguration chelp.cl-checkbox.title=Checkliste: Checkboxen bearbeiten -chelp.cl-checkbox-template.title=Checklisten Vorlage -chelp.cl-template-configuration.title=Checklistengenerator +chelp.cl-checkbox-template.title=Checkliste Sammelfunktion: Vorlage erstellen +chelp.cl-template-configuration.title=Checkliste Sammelfunktion: Konfiguration chelp.cl-coach-assessment.title=Checkliste: Bewertung und Verwaltung -chelp.cl-metadatas.title=Listen Metadaten -chelp.cl-st-config.title=Strukturdaten +chelp.cl-metadatas.title=Checkliste Sammelfunktion: Titel und Datum +chelp.cl-st-config.title=Checkliste Sammelfunktion: Daten Strukturbaustein chelp.cl-assessment-checkbox.title=Checkliste: Per Box Bewertung chelp.checkbox.1=Erstellen und bearbeiten Sie hier die Checkboxen für die konfigurierte Checkliste. In der Tabelle finden Sie die bereits in dieser Checkliste bestehenden Checkboxen. Klicken Sie mit der Maus auf die Schaltfläche \u201ECheckbox hinzufügen\u201C um eine neue Checkbox zu erstellen. Es öffnet sich ein neue Eingabemaske. chelp.checkbox.2=<strong>$\:checkbox.title</strong>: Geben Sie hier einen aussagekräftigen kurzen Titel für die Checkbox ein. @@ -37,12 +37,17 @@ chelp.checkbox.4=<strong>$\:label</strong>: Sie k chelp.checkbox.5=<strong>$\:points</strong>: Legen Sie fest ob Punkte für markierte Checkboxen vergeben werden und wie viele. chelp.checkbox.6=Die <strong>$\:description</strong> wird in der Checkliste zusammen mit dem Titel, der Anzahl Punkte (falls ausgewählt) sowie der gegebenenfalls hochgeladenen Datei rechts von der Checkbox angezeigt. chelp.checkbox.7=Falls benötigt, können Sie für die Kursteilnehmer noch eine <strong>Datei</strong> zum Download hinzufügen. -chelp.checkbox.template.1=Hilfe Checklisten Vorlage -chelp.metadatas.1=Hilfe Metadaten -chelp.template.config.1=Hilfe Checklistengenerator -chelp.stconfig.1=Hilfe Strukturdaten +chelp.checkbox.template.1=Die Checklisten-Sammelfunktion ermöglicht Ihnen, mit Hilfe eines Wizards mehrere Listen derselben Art gleichzeitig zu erstellen. Diese werden zusammen mit einem Struktur-Kursbaustein zu ihrem Kurs hinzugefügt. Den Strukturbaustein und die einzelnen Checklisten können Sie im Anschluss mittels Drag & Drop an die jeweils gewünschte Stelle im Kurs verschieben. +chelp.checkbox.template.2=Im ersten Schritt des Wizards erstellen Sie die Vorlage für die neu zu erstellenden Checklisten indem Sie Art und Anzahl der Checkboxen festlegen. Alle Listen und Einstellungen können im Anschluss im Kurseditor separat bearbeitet werden. +chelp.checkbox.template.3=Für Informationen zur Erstellung und Bearbeitung von Checkboxen lesen Sie bitte die Kontexhilfe zu +chelp.metadatas.1=Im dritten Schritt der Checklisten Sammelfunktion können Sie die Titel der einzelnen Checklisten gemäss Ihren Wünschen anpassen. Falls Sie im vorherigen Schritt das Abgabedatum aktiviert haben, so können Sie dies hier definieren. Möchten Sie bei einer oder mehreren Checklisten doch nicht mit einem Abgabedatum arbeiten, lassen Sie das Datumsfeld leer. Die Einstellung zum Abgabedatum wird dann für diese Checklisten ignoriert. +chelp.template.config.1=Im zweiten Schritt bestimmen Sie wie viele Checklisten anhand der im ersten Schritt definierten Vorlage erstellt werden sollen. Legen Sie einen Titel fest. Die Checklisten erhalten alle diesen Titel und werden durchnummeriert. Den Titel können Sie im nächsten Schritt anpassen. +chelp.template.config.2=Informationen zu den weiteren Einstellungen finden Sie in der Kontexthilfe +chelp.template.config.3=. Wenn Sie die Checklisten mit einem Abgabedatum versehen, können Sie dieses im dritten Schritt definieren. +chelp.stconfig.1=Definieren Sie hier Titel und Beschreibung des übergeordneten Struktur-Kursbausteins. Kurztitel und Titel werden wie gewohnt in der Navigation und der Kurselement-Übersicht angezeigt. +chelp.stconfig.2=Im unteren Teil des Formulars legen Sie fest ob Bewertungsinformationen aus den Checklisten im Strukturbaustein angezeigt werden sollen, und wie die Bewertung vorgenommen wird. Informationen zum Struktur-Kursbaustein und der Bewertung weiterer Kursbausteine finden Sie in der Kontexthilfe checklist.update.assessment=Aktualisierung der Bewertungsinformationen aller Benutzer des Kurses -checklist.update.efficiencystatements=Aktualisierung der leistungsnachweise aller Benutzer +checklist.update.efficiencystatements=Aktualisierung der Leistungsnachweise aller Benutzer add.checkbox=Checkbox hinzuf\u00FCgen box.assessment=Per Box Bewertung box.check=Check @@ -76,7 +81,6 @@ config.checkbox.title=$\:pane.tab.checkbox config.checkbox.description=W\u00E4hlen Sie "$\:add.checkbox" um eine neue Checkbox zu erzeugen oder "$org.olat.core\:edit" um eine bestehende Checkbox zu ver\u00E4ndern. config.warning.inuse=Es gibt schon Benutzer, die eine Checkbox geklickt haben. Eine \u00C4nderung der Punkte kann deren Resultate beinflussen. checkbox.title=Titel - comment.title=$org.olat.course.nodes.ms\:comment.title comment.nocomment=$org.olat.course.nodes.ms\:comment.nocomment score.title=$org.olat.course.nodes.ms\:score.title @@ -91,15 +95,15 @@ passed.no=$org.olat.course.nodes.ms\:passed.no passed.nopassed=$org.olat.course.nodes.ms\:passed.nopassed passed.yes=$org.olat.course.nodes.ms\:passed.yes info.title=$org.olat.course.nodes.ms\:info.title - form.error.wrongFloat=$org.olat.course.nodes.ms\:form.error.wrongFloat help.hover.config=Hilfe zur Konfiguration help.hover.checkbox=Hilfe zur Checkboxen bearbeiten -help.hover.checkboxtemplate=Hilfe zur Checklisten Vorlage +help.hover.checkboxtemplate=Hilfe zur Checklistenvorlage help.hover.choach=Hilfe zur Bewertung einer Checkbox Liste -help.hover.templateconfiguration=Hilfe zur Checklistengenerator +help.hover.metadatas=Hilze zur Konfiguration von Titel und Datum +help.hover.templateconfiguration=Hilfe zur Konfiguration help.hover.coach.assessment=Hilfe zur Bewertung und Verwaltung -help.hover.structurenodeconfig=Hilfe zur Strukturdaten Konfiguration +help.hover.structurenodeconfig=Hilfe zur Strukturdaten konfigurieren help.hover.assessment.checkbox=Hilfe zur Bewertungs per Box assessment.checkbox.description=Bewertung pro Checkbox: Bearbeiten Sie hier die Kreuze ihrer betreuten Teilnehmer nach Checkbox. table.header.title=$\:checkbox.title @@ -115,7 +119,7 @@ label.presented=Vorgef\u00FChrt label.controlled=Kontrolliert label.present=Anwesend points=Punkte -title.prefix=Titelpr\u00E4fix +title.prefix=Titel sum.cutvalue=Anzahl Checkboxen f\u00FCr Bestanden num.of.checklist=Anzahl Checklisten pdf.export=\u00DCbersicht als PDF diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java index 0e3348fbc932d8965fd6030c91682029d89f2737..2bb5d07d2ae260944ebc7f2a283528a08a264ba0 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java @@ -135,6 +135,7 @@ public class CheckListStepRunnerCallback implements StepRunnerCallback { } else { sc.setSumOfScoreNodes(null); } + sc.setExpertMode(false); if(data.isPassed()) { Float cutValue = data.getCutValue(); diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/MetadatasStepController.java b/src/main/java/org/olat/course/nodes/cl/ui/wizard/MetadatasStepController.java index 3c6a0019df15b767923ac312bfb51a263b2297f3..b1e5bf647c53e9dbd177c86f2f87d06c5365d70a 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/MetadatasStepController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/MetadatasStepController.java @@ -78,6 +78,7 @@ public class MetadatasStepController extends StepFormBasicController { private DueDateWrapper forgeRow(int i, FormLayoutContainer tableCont) { String title = data.getNodePrefix() + " " + (i+1); TextElement titleEl = uifactory.addTextElement("title_" + i, null, 32, title, tableCont); + titleEl.setDisplaySize(60); DateChooser dueDateEl = uifactory.addDateChooser("duedate_" + i, "config.due.date", null, tableCont); dueDateEl.setDateChooserTimeEnabled(true); DueDateWrapper wrapper = new DueDateWrapper(titleEl, dueDateEl); diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_content/metadatas_config.html b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_content/metadatas_config.html index 8c4fb6862cc66c4415d4e308e5c50d2bb871e3b8..3ea62ad5542ac16954e800870d7f9f425c596b6c 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_content/metadatas_config.html +++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_content/metadatas_config.html @@ -3,25 +3,19 @@ $r.contextHelpWithWrapper("$off_chelp_package","$off_chelp_page","$off_chelp_hover") <div class="b_form_desc">$off_desc</div> -#foreach($duedate in $duedates) - <div class="b_clearfix"> - <div class="b_c33l"> - <div class="b_form_element_wrapper b_clearfix"> - $r.render($duedate.titleName) - </div> - </div> - <div class="b_c66r"> - <div class="b_form_element_wrapper b_clearfix"> - <div class="b_form_element_label"> - $r.render("${duedate.dueDateName}_LABEL") - </div> - <div class="b_form_element b_clearfix"> - $r.render($duedate.dueDateName) - </div> - </div> - </div> - </div> -#end +<table> + <thead> + <tr><th>$r.translate("title.prefix")</th> + <th>$r.translate("config.due.date")</th></tr> + </thead> + <tbody> + #foreach($duedate in $duedates) + <tr><td>$r.render($duedate.titleName)</td> + <td><div class="b_form_element"> + $r.render($duedate.dueDateName)</div></td></tr> + #end + </tbody> +</table> </fieldset> </div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties index b972b082b250341449ef74adf95d01999dafb9d0..81031c26e38412398632b1885013ca1271d09666 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties @@ -1,12 +1,12 @@ #Mon Mar 02 09:54:04 CET 2009 -checkbox.template=Checklisten Vorlage -checkbox.template.description=Erstellen Sie eine Checklisten Vorlage. Diese Vorlage wird bei der Erzeugung der checklisten verwendet. -configuration.template=Checklistengenerator -configuration.template.description=Definieren Sie in diesem Schritt wie viele Checklisten aufgrund der vorlage erzeugt werden soll. Der title wird jeweils mit der aktuellen Laufnummer erg\u00E4nzt. -metadatas.details=Listen Metadaten +checkbox.template=Checklistenvorlage +checkbox.template.description=Erstellen Sie eine Checklistenvorlage. Diese wird bei der Erstellung der Checklisten verwendet. +configuration.template=Konfiguration +configuration.template.description=Legen Sie in diesem Schritt fest wie viele Checklisten anhand der Vorlage erzeugt werden sollen. Der Titel wird jeweils mit der aktuellen Laufnummer ergänzt. +metadatas.details=Titel und Datum metadatas.details.description=Passen Sie die generierten Titel und f\u00FCgen Sie das F\u00E4lligkeitsdatum inzu. structurenode.configuration=Strukturdaten -structurenode.configuration.description=Geben Sie Metadaten der Hauptstruktur ein, welche die generierte Checklisten enthaltensoll. Sie können die Daten sp\u00E4ter jederzeit direkt im Baustein \u00E4ndern. +structurenode.configuration.description=Geben Sie die Informationen zum übergeordneten Strukturbaustein ein, der die neu generierten Checklisten enthalten wird. Sie können die Daten später jederzeit direkt im Baustein ändern. nodeConfigForm.menutitle=$org.olat.course.editor\:nodeConfigForm.menutitle nodeConfigForm.displaytitle=$org.olat.course.editor\:nodeConfigForm.displaytitle nodeConfigForm.learningobjectives=$org.olat.course.editor\:nodeConfigForm.learningobjectives diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index f107b811bc40983e54685f2fed383bdc07438829..3971c8c1a2d39f01fe7f3eeaa2c8e5451eb18199 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -611,6 +611,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene } else { identNode = course.getRunStructure().getNode(subcmd); } + addLoggingResourceable(LoggingResourceable.wrap(identNode)); currentCourseNode = identNode; updateTreeAndContent(ureq, identNode, nodecmd); oe.accept(); diff --git a/src/test/java/org/olat/course/nodes/cl/manager/CheckboxManagerTest.java b/src/test/java/org/olat/course/nodes/cl/manager/CheckboxManagerTest.java index 3a759c4d98aba347f80ccd69a2fff6cde6425775..83ebeeb98245dffb516c1efbc14b761581d80de3 100644 --- a/src/test/java/org/olat/course/nodes/cl/manager/CheckboxManagerTest.java +++ b/src/test/java/org/olat/course/nodes/cl/manager/CheckboxManagerTest.java @@ -269,7 +269,7 @@ public class CheckboxManagerTest extends OlatTestCase { DBCheck check1_2 = checkboxManager.createCheck(checkbox2, id1, null, Boolean.TRUE); DBCheck check2_1 = checkboxManager.createCheck(checkbox1, id2, null, Boolean.TRUE); DBCheck check3_1 = checkboxManager.createCheck(checkbox1, id3, null, Boolean.TRUE); - DBCheck check3_2 = checkboxManager.createCheck(checkbox2, id3, null, Boolean.TRUE); + DBCheck check3_2 = checkboxManager.createCheck(checkbox2, id3, null, Boolean.FALSE); dbInstance.commitAndCloseSession(); //load the check @@ -294,7 +294,7 @@ public class CheckboxManagerTest extends OlatTestCase { @Test - public void countChecked_resource() { + public void countChecks_resource() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-16"); Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-17"); @@ -316,7 +316,7 @@ public class CheckboxManagerTest extends OlatTestCase { dbInstance.commitAndCloseSession(); //count the checks - int checked = checkboxManager.countChecked(ores, resSubPath); + int checked = checkboxManager.countChecks(ores, resSubPath); Assert.assertEquals(4, checked); } @@ -340,7 +340,7 @@ public class CheckboxManagerTest extends OlatTestCase { checkboxManager.createCheck(checkbox1, id1, null, Boolean.TRUE); checkboxManager.createCheck(checkbox2, id1, null, Boolean.TRUE); checkboxManager.createCheck(checkbox1, id2, null, Boolean.TRUE); - checkboxManager.createCheck(checkbox3, id2, null, Boolean.TRUE); + checkboxManager.createCheck(checkbox3, id2, null, Boolean.FALSE); checkboxManager.createCheck(checkbox4, id2, null, Boolean.TRUE); dbInstance.commitAndCloseSession(); @@ -349,7 +349,7 @@ public class CheckboxManagerTest extends OlatTestCase { Assert.assertEquals(2, id1Checked); int id2Checked = checkboxManager.countChecked(id2, ores, resSubPath); - Assert.assertEquals(3, id2Checked); + Assert.assertEquals(2, id2Checked); int id3Checked = checkboxManager.countChecked(id3, ores, resSubPath); Assert.assertEquals(0, id3Checked);