Search in sources :

Example 6 with AssessmentHtmlBuilder

use of org.olat.ims.qti21.model.xml.AssessmentHtmlBuilder in project openolat by klemens.

the class QTI21WordExport method renderAssessmentItem.

public static void renderAssessmentItem(AssessmentItem item, File itemFile, File mediaDir, OpenXMLDocument document, boolean withResponses, Translator translator, AssessmentHtmlBuilder htmlBuilder) {
    StringBuilder addText = new StringBuilder();
    QTI21QuestionType type = QTI21QuestionType.getType(item);
    String typeDescription = "";
    switch(type) {
        case sc:
            typeDescription = translator.translate("form.choice");
            break;
        case mc:
            typeDescription = translator.translate("form.choice");
            break;
        case fib:
            typeDescription = translator.translate("form.fib");
            break;
        case numerical:
            typeDescription = translator.translate("form.fib");
            break;
        case kprim:
            typeDescription = translator.translate("form.kprim");
            break;
        case hotspot:
            typeDescription = translator.translate("form.hotspot");
            break;
        case essay:
            typeDescription = translator.translate("form.essay");
            break;
        case upload:
            typeDescription = translator.translate("form.upload");
            break;
        case drawing:
            typeDescription = translator.translate("form.drawing");
            break;
        case match:
            typeDescription = translator.translate("form.match");
            break;
        default:
            typeDescription = null;
            break;
    }
    Double maxScore = QtiNodesExtractor.extractMaxScore(item);
    if (StringHelper.containsNonWhitespace(typeDescription) || maxScore != null) {
        if (StringHelper.containsNonWhitespace(typeDescription)) {
            addText.append("(").append(typeDescription).append(")");
        }
        if (maxScore != null) {
            addText.append(" - ").append(AssessmentHelper.getRoundedScore(maxScore));
        }
    }
    String title = item.getTitle();
    document.appendHeading1(title, addText.toString());
    List<Block> itemBodyBlocks = item.getItemBody().getBlocks();
    String html = htmlBuilder.blocksString(itemBodyBlocks);
    document.appendHtmlText(html, true, new QTI21AndHTMLToOpenXMLHandler(document, item, itemFile, mediaDir, withResponses, htmlBuilder, translator));
    if (withResponses && (type == QTI21QuestionType.essay || type == QTI21QuestionType.upload || type == QTI21QuestionType.drawing)) {
        renderCorrectSolutionForWord(item, document, translator, htmlBuilder);
    }
}
Also used : QTI21QuestionType(org.olat.ims.qti21.model.QTI21QuestionType) RubricBlock(uk.ac.ed.ph.jqtiplus.node.content.variable.RubricBlock) Block(uk.ac.ed.ph.jqtiplus.node.content.basic.Block)

Aggregations

AssessmentHtmlBuilder (org.olat.ims.qti21.model.xml.AssessmentHtmlBuilder)4 File (java.io.File)2 IOException (java.io.IOException)2 URI (java.net.URI)2 ArrayList (java.util.ArrayList)2 ZipOutputStream (java.util.zip.ZipOutputStream)2 Translator (org.olat.core.gui.translator.Translator)2 OpenXMLDocument (org.olat.core.util.openxml.OpenXMLDocument)2 OpenXMLDocumentWriter (org.olat.core.util.openxml.OpenXMLDocumentWriter)2 VFSContainer (org.olat.core.util.vfs.VFSContainer)2 VFSItem (org.olat.core.util.vfs.VFSItem)2 Item (org.olat.ims.qti.editor.beecom.objects.Item)2 QTI21QuestionType (org.olat.ims.qti21.model.QTI21QuestionType)2 AssessmentItemFactory.appendHottext (org.olat.ims.qti21.model.xml.AssessmentItemFactory.appendHottext)2 AssessmentTestComposerController (org.olat.ims.qti21.ui.editor.AssessmentTestComposerController)2 QuestionItemFull (org.olat.modules.qpool.QuestionItemFull)2 Block (uk.ac.ed.ph.jqtiplus.node.content.basic.Block)2 RubricBlock (uk.ac.ed.ph.jqtiplus.node.content.variable.RubricBlock)2 AssessmentItem (uk.ac.ed.ph.jqtiplus.node.item.AssessmentItem)2 Hottext (uk.ac.ed.ph.jqtiplus.node.item.interaction.content.Hottext)2