diff --git a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java index ae816a68a617280e8b3ff3915257393802279bb8..4da2876235e7468d09b4cb58be44f7f4c6882e74 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java +++ b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java @@ -92,6 +92,7 @@ import org.springframework.beans.factory.annotation.Autowired; import de.bps.onyx.plugin.OnyxModule; import de.bps.onyx.plugin.course.nodes.iq.IQEditForm; +import de.bps.onyx.plugin.run.OnyxRunController; import de.bps.webservices.clients.onyxreporter.OnyxReporterConnector; import de.bps.webservices.clients.onyxreporter.OnyxReporterException; @@ -193,12 +194,8 @@ public class IQConfigurationController extends BasicController { previewLink = LinkFactory.createCustomLink("command.preview", "command.preview", displayName, Link.NONTRANSLATED, myContent, this); previewLink.setIconLeftCSS("o_icon o_icon-fw o_icon_preview"); - if(isOnyx) { - previewLink.setEnabled(false); - } else { - previewLink.setCustomEnabledLinkCSS("o_preview"); - previewLink.setTitle(translate("command.preview")); - } + previewLink.setCustomEnabledLinkCSS("o_preview"); + previewLink.setTitle(translate("command.preview")); } String disclaimer = (String) moduleConfiguration.get(IQEditController.CONFIG_KEY_DISCLAIMER); @@ -374,9 +371,14 @@ public class IQConfigurationController extends BasicController { removeAsListenerAndDispose(previewLayoutCtr); RepositoryEntry re = getIQReference(moduleConfiguration, false); - if(re != null && !OnyxModule.isOnyxTest(re.getOlatResource())) { + if(re != null) { Controller previewController; - if(ImsQTI21Resource.TYPE_NAME.equals(re.getOlatResource().getResourceableTypeName())) { + if(OnyxModule.isOnyxTest(re.getOlatResource())) { + Controller previewCtrl = new OnyxRunController(ureq, getWindowControl(), re, false); + listenTo(previewCtrl); + previewLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), previewCtrl); + stackPanel.pushController(translate("preview"), previewLayoutCtr); + } else if(ImsQTI21Resource.TYPE_NAME.equals(re.getOlatResource().getResourceableTypeName())) { //TODO qti /* need to clean up the assessment test session QTI21DeliveryOptions deliveryOptions = qti21service.getDeliveryOptions(re); diff --git a/src/main/java/org/olat/course/nodes/iq/_content/edit.html b/src/main/java/org/olat/course/nodes/iq/_content/edit.html index 6a996d87f780e68aecf2846829c2ffb8789f36f4..028b19f0c7bbcae15ff082e8c9cc2c5d4163a1bd 100644 --- a/src/main/java/org/olat/course/nodes/iq/_content/edit.html +++ b/src/main/java/org/olat/course/nodes/iq/_content/edit.html @@ -12,13 +12,7 @@ #if ($dontRenderRepositoryButton) <div class="form-group"> <label class="control-label col-sm-3">$r.translate("file.name")</label> - <div class="col-sm-9"><p class="form-control-static"> - #if ($isOnyx) - $onyxDisplayName - #else - $r.render("command.preview") - #end</p> - </div> + <div class="col-sm-9"><p class="form-control-static">$r.render("command.preview")</div> </div> <div class="form-group"> <div class="col-sm-offset-3 col-sm-9"> diff --git a/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java b/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java index 5a78f321cc126598ebebbc80fcc642cebe97f4f5..8204cc3df2d324c6743b16c00b97c59ee6c3c047 100644 --- a/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java +++ b/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java @@ -375,18 +375,43 @@ public class QItemQueriesDAO { boolean asc = orderBy[0].isAsc(); sb.append(" order by "); switch(sortKey) { - case "itemType": sb.append(dbRef).append(".type.type"); break; - case "marks": sb.append("marks"); break; - case "rating": sb.append("rating"); break; - default: sb.append(dbRef).append(".").append(sortKey); break; - } - if(asc) { - sb.append(" asc "); - } else { - sb.append(" desc "); + case "itemType": + sb.append(dbRef).append(".type.type "); + appendAsc(sb, asc); + break; + case "marks": + sb.append("marks"); + appendAsc(sb, asc); + break; + case "rating": + sb.append("rating"); + appendAsc(sb, asc); + sb.append(" nulls last"); + break; + case "keywords": + case "coverage": + case "additionalInformations": + sb.append("lower(").append(dbRef).append(".").append(sortKey).append(")"); + appendAsc(sb, asc); + sb.append(" nulls last"); + break; + default: + sb.append(dbRef).append(".").append(sortKey); + appendAsc(sb, asc); + sb.append(" nulls last"); + break; } } else { sb.append(" order by item.key asc "); } } + + private final StringBuilder appendAsc(StringBuilder sb, boolean asc) { + if(asc) { + sb.append(" asc"); + } else { + sb.append(" desc"); + } + return sb; + } } diff --git a/src/main/java/org/olat/modules/qpool/ui/metadata/GeneralMetadataEditController.java b/src/main/java/org/olat/modules/qpool/ui/metadata/GeneralMetadataEditController.java index 6cfec2e197825f6acd544bbccf3ec086e1741cf4..d3cae28639c89313c64a2803ded052290eecb6fd 100644 --- a/src/main/java/org/olat/modules/qpool/ui/metadata/GeneralMetadataEditController.java +++ b/src/main/java/org/olat/modules/qpool/ui/metadata/GeneralMetadataEditController.java @@ -197,9 +197,21 @@ public class GeneralMetadataEditController extends FormBasicController { if(item instanceof QuestionItemImpl) { QuestionItemImpl itemImpl = (QuestionItemImpl)item; itemImpl.setTitle(titleEl.getValue()); - itemImpl.setKeywords(keywordsEl.getValue()); - itemImpl.setCoverage(coverageEl.getValue()); - itemImpl.setAdditionalInformations(addInfosEl.getValue()); + if(StringHelper.containsNonWhitespace(keywordsEl.getValue())) { + itemImpl.setKeywords(keywordsEl.getValue()); + } else { + itemImpl.setKeywords(""); + } + if(StringHelper.containsNonWhitespace(coverageEl.getValue())) { + itemImpl.setCoverage(coverageEl.getValue()); + } else { + itemImpl.setCoverage(""); + } + if(StringHelper.containsNonWhitespace(addInfosEl.getValue())) { + itemImpl.setAdditionalInformations(addInfosEl.getValue()); + } else { + itemImpl.setAdditionalInformations(null); + } itemImpl.setLanguage(languageEl.getValue()); if(selectedTaxonomicPath != null) { itemImpl.setTaxonomyLevel(selectedTaxonomicPath); diff --git a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml index 90104717f0dc1195720f4258ec48b504b7801960..6e696270c08466cf4f32d8e005e5d2238824938a 100644 --- a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml +++ b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml @@ -124,6 +124,10 @@ <constructor-arg index="0" value="OLAT_11.1.0" /> <property name="alterDbStatements" value="alter_11_x_0_to_11_1_0.sql" /> </bean> + <bean id="database_upgrade_11_1_2" class="org.olat.upgrade.DatabaseUpgrade"> + <constructor-arg index="0" value="OLAT_11.1.2" /> + <property name="alterDbStatements" value="alter_11_1_1_to_11_1_2.sql" /> + </bean> <bean id="database_upgrade_11_2_0" class="org.olat.upgrade.DatabaseUpgrade"> <constructor-arg index="0" value="OLAT_11.2.0" /> <property name="alterDbStatements" value="alter_11_0_6_to_11_2_0.sql" /> diff --git a/src/main/resources/database/mysql/alter_11_1_1_to_11_1_2.sql b/src/main/resources/database/mysql/alter_11_1_1_to_11_1_2.sql new file mode 100644 index 0000000000000000000000000000000000000000..275e42c248a86915020cf25b4e7facd049fb05ed --- /dev/null +++ b/src/main/resources/database/mysql/alter_11_1_1_to_11_1_2.sql @@ -0,0 +1,2 @@ +update o_qp_item set q_keywords=null where q_keywords=''; +update o_qp_item set q_coverage=null where q_coverage=''; \ No newline at end of file diff --git a/src/main/resources/database/oracle/alter_11_1_1_to_11_1_2.sql b/src/main/resources/database/oracle/alter_11_1_1_to_11_1_2.sql new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/main/resources/database/postgresql/alter_11_1_1_to_11_1_2.sql b/src/main/resources/database/postgresql/alter_11_1_1_to_11_1_2.sql new file mode 100644 index 0000000000000000000000000000000000000000..275e42c248a86915020cf25b4e7facd049fb05ed --- /dev/null +++ b/src/main/resources/database/postgresql/alter_11_1_1_to_11_1_2.sql @@ -0,0 +1,2 @@ +update o_qp_item set q_keywords=null where q_keywords=''; +update o_qp_item set q_coverage=null where q_coverage=''; \ No newline at end of file