From 8e22b4e88f970573ad80134f35c1a9a2e151c26d Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Tue, 10 Dec 2019 18:16:20 +0100 Subject: [PATCH] OO-4415: use the learn resource title as assessment test title --- .../olat/ims/qti21/pool/QTI21ExportProcessor.java | 15 +++++++++++++-- .../ims/qti21/pool/QTI21QPoolServiceProvider.java | 11 +++++++++-- .../handlers/QTI21AssessmentTestHandler.java | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI21ExportProcessor.java b/src/main/java/org/olat/ims/qti21/pool/QTI21ExportProcessor.java index 1564f7842ec..08f5c5d6beb 100644 --- a/src/main/java/org/olat/ims/qti21/pool/QTI21ExportProcessor.java +++ b/src/main/java/org/olat/ims/qti21/pool/QTI21ExportProcessor.java @@ -36,8 +36,11 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import org.apache.logging.log4j.Logger; +import org.olat.core.gui.translator.Translator; import org.olat.core.logging.Tracing; import org.olat.core.util.FileUtils; +import org.olat.core.util.StringHelper; +import org.olat.core.util.Util; import org.olat.core.util.ZipUtil; import org.olat.core.util.io.ShieldOutputStream; import org.olat.ims.qti21.QTI21Service; @@ -49,6 +52,7 @@ import org.olat.ims.qti21.model.xml.ManifestMetadataBuilder; import org.olat.ims.qti21.model.xml.QtiNodesExtractor; import org.olat.ims.qti21.pool.ImportExportHelper.AssessmentItemsAndResources; import org.olat.ims.qti21.pool.ImportExportHelper.ItemMaterial; +import org.olat.ims.qti21.ui.editor.AssessmentTestComposerController; import org.olat.imscp.xml.manifest.ResourceType; import org.olat.modules.qpool.QuestionItemFull; import org.olat.modules.qpool.manager.QPoolFileStorage; @@ -176,7 +180,7 @@ public class QTI21ExportProcessor { metadataBuilder.appendMetadataFrom(qitem, resolvedAssessmentItem, locale); } - public void assembleTest(List<QuestionItemFull> fullItems, File directory) { + public void assembleTest(String title, List<QuestionItemFull> fullItems, File directory) { try { QtiSerializer qtiSerializer = qtiService.qtiSerializer(); //imsmanifest @@ -184,7 +188,14 @@ public class QTI21ExportProcessor { //assessment test DoubleAdder atomicMaxScore = new DoubleAdder(); - AssessmentTest assessmentTest = AssessmentTestFactory.createAssessmentTest("Assessment test from pool", "Section"); + if(!StringHelper.containsNonWhitespace(title)) { + title = "Assessment test from pool"; + } + + Translator translator = Util.createPackageTranslator(AssessmentTestComposerController.class, locale); + String sectionTitle = translator.translate("new.section"); + + AssessmentTest assessmentTest = AssessmentTestFactory.createAssessmentTest(title, sectionTitle); String assessmentTestFilename = assessmentTest.getIdentifier() + ".xml"; manifest.appendAssessmentTest(assessmentTestFilename); diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java b/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java index 28956d785bf..9b265682c36 100644 --- a/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java +++ b/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java @@ -472,10 +472,17 @@ public class QTI21QPoolServiceProvider implements QPoolSPI { processor.assembleTest(fullItems, zout); } - public void exportToEditorPackage(File exportDir, List<QuestionItemShort> items, Locale locale) { + /** + * + * @param testTitle The title of the test + * @param exportDir The directory to export to + * @param items The list of questions to export + * @param locale The language + */ + public void exportToEditorPackage(String testTitle, File exportDir, List<QuestionItemShort> items, Locale locale) { List<QuestionItemFull> fullItems = loadQuestionFullItems(items); QTI21ExportProcessor processor = new QTI21ExportProcessor(qtiService, qpoolFileStorage, locale); - processor.assembleTest(fullItems, exportDir); + processor.assembleTest(testTitle, fullItems, exportDir); } private List<QuestionItemFull> loadQuestionFullItems(List<QuestionItemShort> items) { diff --git a/src/main/java/org/olat/ims/qti21/repository/handlers/QTI21AssessmentTestHandler.java b/src/main/java/org/olat/ims/qti21/repository/handlers/QTI21AssessmentTestHandler.java index a29e5f50a4f..901723b58ba 100644 --- a/src/main/java/org/olat/ims/qti21/repository/handlers/QTI21AssessmentTestHandler.java +++ b/src/main/java/org/olat/ims/qti21/repository/handlers/QTI21AssessmentTestHandler.java @@ -152,7 +152,7 @@ public class QTI21AssessmentTestHandler extends FileHandler { } if(createObject instanceof QItemList) { QItemList itemToImport = (QItemList)createObject; - qpoolServiceProvider.exportToEditorPackage(repositoryDir, itemToImport.getItems(), locale); + qpoolServiceProvider.exportToEditorPackage(displayname, repositoryDir, itemToImport.getItems(), locale); } else if(createObject instanceof QTIEditorPackage) { QTIEditorPackage testToConvert = (QTIEditorPackage)createObject; QTI21DeliveryOptions options = qtiService.getDeliveryOptions(re); -- GitLab