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 1564f7842ec0cc4996b1a7954444f4275660be24..08f5c5d6beb57105e9c0ee94aeb1834d57be30fe 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 d7e05d8982b046c01547f513f972a776c4a1a0bb..eaab55e620207ee11d57794bcafc3b7fb24e8971 100644 --- a/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java +++ b/src/main/java/org/olat/ims/qti21/pool/QTI21QPoolServiceProvider.java @@ -475,10 +475,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 926492feefc7e3c7c7a37916780f08c88ad9e775..5349d268e2de8e40eeb806e9be22eb9f382b0bc7 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 @@ -167,7 +167,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);