Search in sources :

Example 16 with QTIItemObject

use of org.olat.ims.qti.export.helper.QTIItemObject in project openolat by klemens.

the class QTIExportFormatterCSVType1 method closeReport.

public void closeReport() {
    if (qtiItemObjectList == null) {
        throw new OLATRuntimeException(null, "Can not format report when qtiItemObjectList is null", null);
    }
    String legend = translator.translate("legend");
    sb.append(car + car);
    sb.append(legend);
    sb.append(car + car);
    int y = 1;
    for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext(); ) {
        QTIItemObject element = iter.next();
        sb.append(element.getItemIdent());
        sb.append(sep);
        sb.append(emb);
        sb.append(escape(element.getItemTitle()));
        sb.append(emb);
        sb.append(car);
        sb.append(sep + sep);
        sb.append("minValue");
        sb.append(sep);
        sb.append(element.getItemMinValue());
        sb.append(car);
        sb.append(sep + sep);
        sb.append("maxValue");
        sb.append(sep);
        sb.append(element.getItemMaxValue());
        sb.append(car);
        sb.append(sep + sep);
        sb.append("cutValue");
        sb.append(sep);
        sb.append(element.getItemCutValue());
        sb.append(car);
        // CELFI#107
        sb.append(sep + sep + sep + sep);
        String question = element.getQuestionText();
        if (tagless) {
            question = FilterFactory.getXSSFilter(-1).filter(question);
            question = FilterFactory.getHtmlTagsFilter().filter(question);
        }
        question = StringEscapeUtils.unescapeHtml(question);
        sb.append(question);
        sb.append(car);
        // CELFI#107 END
        List<String> responseLabelMaterials = element.getResponseLabelMaterials();
        for (int i = 0; i < element.getResponseIdentifier().size(); i++) {
            sb.append(sep + sep);
            sb.append(y);
            sb.append("_");
            sb.append(element.getItemType());
            sb.append(i + 1);
            sb.append(sep);
            sb.append(element.getResponseIdentifier().get(i));
            sb.append(sep);
            if (responseLabelMaterials != null) {
                String s = responseLabelMaterials.get(i);
                s = StringEscapeUtils.unescapeHtml(s);
                if (tagless) {
                    s = s.replaceAll("\\<.*?\\>", "");
                }
                sb.append(Formatter.stripTabsAndReturns(s));
            }
            sb.append(car);
        }
        y++;
    }
    sb.append(car + car);
    sb.append("SCQ");
    sb.append(sep);
    sb.append("Single Choice Question");
    sb.append(car);
    sb.append("MCQ");
    sb.append(sep);
    sb.append("Multiple Choice Question");
    sb.append(car);
    sb.append("FIB");
    sb.append(sep);
    sb.append("Fill in the blank");
    sb.append(car);
    sb.append("ESS");
    sb.append(sep);
    sb.append("Essay");
    sb.append(car);
    sb.append("KPR");
    sb.append(sep);
    sb.append("Kprim (K-Type)");
    sb.append(car + car);
    sb.append("R:");
    sb.append(sep);
    sb.append("Radio button (SCQ)");
    sb.append(car);
    sb.append("C:");
    sb.append(sep);
    sb.append("Check box (MCQ or KPR)");
    sb.append(car);
    sb.append("B:");
    sb.append(sep);
    sb.append("Blank (FIB)");
    sb.append(car);
    sb.append("A:");
    sb.append(sep);
    sb.append("Area (ESS)");
    sb.append(car + car);
    sb.append("x_Ry");
    sb.append(sep);
    sb.append("Radio Button y of SCQ x, e.g. 1_R1");
    sb.append(car);
    sb.append("x_Cy");
    sb.append(sep);
    sb.append("Check Box y of MCQ x or two Radio Buttons y of KPR x, e.g. 3_C2");
    sb.append(car);
    sb.append("x_By");
    sb.append(sep);
    sb.append("Blank y of FIB x, e.g. 17_B2");
    sb.append(car);
    sb.append("x_Ay");
    sb.append(sep);
    sb.append("Area y of ESS x, e.g. 4_A1");
    sb.append(car + car);
    sb.append("Kprim:");
    sb.append(sep);
    sb.append("'+' = yes");
    sb.append(sep);
    sb.append("'-' = no");
    sb.append(sep);
    sb.append("'.' = no answer");
    sb.append(sep);
}
Also used : OLATRuntimeException(org.olat.core.logging.OLATRuntimeException) QTIItemObject(org.olat.ims.qti.export.helper.QTIItemObject)

Example 17 with QTIItemObject

use of org.olat.ims.qti.export.helper.QTIItemObject in project openolat by klemens.

the class QTIExportFormatterCSVType1 method setDefaultQTIItemConfigs.

private void setDefaultQTIItemConfigs() {
    Map<Class<?>, QTIExportItemFormatConfig> itConfigs = new HashMap<>();
    for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext(); ) {
        QTIItemObject item = iter.next();
        if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_SCQ)) {
            if (itConfigs.get(QTIExportSCQItemFormatConfig.class) == null) {
                QTIExportSCQItemFormatConfig confSCQ = new QTIExportSCQItemFormatConfig(true, false, false, false);
                itConfigs.put(QTIExportSCQItemFormatConfig.class, confSCQ);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_MCQ)) {
            if (itConfigs.get(QTIExportMCQItemFormatConfig.class) == null) {
                QTIExportMCQItemFormatConfig confMCQ = new QTIExportMCQItemFormatConfig(true, false, false, false);
                itConfigs.put(QTIExportMCQItemFormatConfig.class, confMCQ);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_KPRIM)) {
            if (itConfigs.get(QTIExportKPRIMItemFormatConfig.class) == null) {
                QTIExportKPRIMItemFormatConfig confKPRIM = new QTIExportKPRIMItemFormatConfig(true, false, false, false);
                itConfigs.put(QTIExportKPRIMItemFormatConfig.class, confKPRIM);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_ESSAY)) {
            if (itConfigs.get(QTIExportEssayItemFormatConfig.class) == null) {
                QTIExportEssayItemFormatConfig confEssay = new QTIExportEssayItemFormatConfig(true, false);
                itConfigs.put(QTIExportEssayItemFormatConfig.class, confEssay);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_FIB)) {
            if (itConfigs.get(QTIExportFIBItemFormatConfig.class) == null) {
                QTIExportFIBItemFormatConfig confFIB = new QTIExportFIBItemFormatConfig(true, false, false);
                itConfigs.put(QTIExportFIBItemFormatConfig.class, confFIB);
            }
        } else // if cannot find the type via the ItemParser, look for the QTIItemObject type
        if (item.getItemType().equals(QTIItemObject.TYPE.A)) {
            QTIExportEssayItemFormatConfig confEssay = new QTIExportEssayItemFormatConfig(true, false);
            itConfigs.put(QTIExportEssayItemFormatConfig.class, confEssay);
        } else if (item.getItemType().equals(QTIItemObject.TYPE.R)) {
            QTIExportSCQItemFormatConfig confSCQ = new QTIExportSCQItemFormatConfig(true, false, false, false);
            itConfigs.put(QTIExportSCQItemFormatConfig.class, confSCQ);
        } else if (item.getItemType().equals(QTIItemObject.TYPE.C)) {
            QTIExportMCQItemFormatConfig confMCQ = new QTIExportMCQItemFormatConfig(true, false, false, false);
            itConfigs.put(QTIExportMCQItemFormatConfig.class, confMCQ);
        } else if (item.getItemType().equals(QTIItemObject.TYPE.B)) {
            QTIExportFIBItemFormatConfig confFIB = new QTIExportFIBItemFormatConfig(true, false, false);
            itConfigs.put(QTIExportFIBItemFormatConfig.class, confFIB);
        } else {
            throw new OLATRuntimeException(null, "Can not resolve QTIItem type='" + item.getItemType() + "'", null);
        }
    }
    mapWithExportItemConfigs = itConfigs;
}
Also used : HashMap(java.util.HashMap) QTIItemObject(org.olat.ims.qti.export.helper.QTIItemObject) OLATRuntimeException(org.olat.core.logging.OLATRuntimeException)

Example 18 with QTIItemObject

use of org.olat.ims.qti.export.helper.QTIItemObject in project openolat by klemens.

the class QTIExportFormatterCSVType3 method closeReport.

public void closeReport() {
    if (qtiItemObjectList == null) {
        throw new OLATRuntimeException(null, "Can not format report when qtiItemObjectList is null", null);
    }
    String legend = translator.translate("legend");
    sb.append(car + car);
    sb.append(legend);
    sb.append(car + car);
    int y = 1;
    for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext(); ) {
        QTIItemObject element = iter.next();
        sb.append(element.getItemIdent());
        sb.append(sep);
        sb.append(emb);
        sb.append(escape(element.getItemTitle()));
        sb.append(emb);
        sb.append(car);
        // CELFI#107
        sb.append(sep + sep + sep + sep);
        String question = element.getQuestionText();
        if (tagless) {
            question = FilterFactory.getXSSFilter(-1).filter(question);
            question = FilterFactory.getHtmlTagsFilter().filter(question);
        }
        question = StringEscapeUtils.unescapeHtml(question);
        sb.append(question);
        sb.append(car);
        // CELFI#107 END
        List<String> responseLabelMaterials = element.getResponseLabelMaterials();
        for (int i = 0; i < element.getResponseIdentifier().size(); i++) {
            sb.append(sep + sep);
            sb.append(y);
            sb.append("_");
            sb.append(element.getItemType());
            sb.append(i + 1);
            sb.append(sep);
            sb.append(element.getResponseIdentifier().get(i));
            sb.append(sep);
            if (responseLabelMaterials != null) {
                String s = responseLabelMaterials.get(i);
                s = StringEscapeUtils.unescapeHtml(s);
                if (tagless) {
                    s = s.replaceAll("\\<.*?\\>", "");
                }
                sb.append(Formatter.stripTabsAndReturns(s));
            }
            sb.append(car);
        }
        y++;
    }
    sb.append(car + car);
    sb.append("SCQ");
    sb.append(sep);
    sb.append("Single Choice Question");
    sb.append(car);
    sb.append("MCQ");
    sb.append(sep);
    sb.append("Multiple Choice Question");
    sb.append(car);
    sb.append("FIB");
    sb.append(sep);
    sb.append("Fill in the blank");
    sb.append(car);
    sb.append("ESS");
    sb.append(sep);
    sb.append("Essay");
    sb.append(car);
    sb.append("KPR");
    sb.append(sep);
    sb.append("Kprim (K-Type)");
    sb.append(car + car);
    sb.append("R:");
    sb.append(sep);
    sb.append("Radio button (SCQ)");
    sb.append(car);
    sb.append("C:");
    sb.append(sep);
    sb.append("Check box (MCQ or KPR)");
    sb.append(car);
    sb.append("B:");
    sb.append(sep);
    sb.append("Blank (FIB)");
    sb.append(car);
    sb.append("A:");
    sb.append(sep);
    sb.append("Area (ESS)");
    sb.append(car + car);
    sb.append("x_Ry");
    sb.append(sep);
    sb.append("Radio Button y of SCQ x, e.g. 1_R1");
    sb.append(car);
    sb.append("x_Cy");
    sb.append(sep);
    sb.append("Check Box y of MCQ x or two Radio Buttons y of KPR x, e.g. 3_C2");
    sb.append(car);
    sb.append("x_By");
    sb.append(sep);
    sb.append("Blank y of FIB x, e.g. 17_B2");
    sb.append(car);
    sb.append("x_Ay");
    sb.append(sep);
    sb.append("Area y of ESS x, e.g. 4_A1");
    sb.append(car + car);
    sb.append("Kprim:");
    sb.append(sep);
    sb.append("'+' = yes");
    sb.append(sep);
    sb.append("'-' = no");
    sb.append(sep);
    sb.append("'.' = no answer");
    sb.append(sep);
}
Also used : OLATRuntimeException(org.olat.core.logging.OLATRuntimeException) QTIItemObject(org.olat.ims.qti.export.helper.QTIItemObject)

Example 19 with QTIItemObject

use of org.olat.ims.qti.export.helper.QTIItemObject in project openolat by klemens.

the class QTIExportFormatterCSVType3 method openReport.

public void openReport() {
    if (qtiItemObjectList == null) {
        throw new OLATRuntimeException(null, "Can not format report when qtiItemObjectList is null", null);
    }
    if (mapWithExportItemConfigs == null) {
        // while deleting a survey node the formatter has no config consiting of user input
        setDefaultQTIItemConfigs();
    }
    QTIExportItemFactory qeif = new QTIExportItemFactory(mapWithExportItemConfigs);
    // // // Preparing HeaderRow 1 and HeaderRow2
    StringBuilder hR1 = new StringBuilder();
    StringBuilder hR2 = new StringBuilder();
    int i = 1;
    for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext(); ) {
        QTIItemObject item = iter.next();
        if (displayItem(qeif.getExportItemConfig(item))) {
            hR1.append(emb);
            hR1.append(escape(item.getItemTitle()));
            // CELFI#107
            String question = item.getQuestionText();
            question = FilterFactory.getXSSFilter(-1).filter(question);
            question = FilterFactory.getHtmlTagsFilter().filter(question);
            if (question.length() > cut) {
                question = question.substring(0, cut) + "...";
            }
            question = StringEscapeUtils.unescapeHtml(question);
            hR1.append(": " + escape(question));
            // CELFI#107 END
            hR1.append(emb);
            if (qeif.getExportItemConfig(item).hasResponseCols()) {
                List<String> responseColumnHeaders = item.getResponseColumnHeaders();
                for (Iterator<String> iterator = responseColumnHeaders.iterator(); iterator.hasNext(); ) {
                    // HeaderRow1
                    hR1.append(sep);
                    // HeaderRow2
                    String columnHeader = iterator.next();
                    hR2.append(i);
                    hR2.append("_");
                    hR2.append(columnHeader);
                    hR2.append(sep);
                }
            }
            if (qeif.getExportItemConfig(item).hasPositionsOfResponsesCol()) {
                if (item.hasPositionsOfResponses()) {
                    // HeaderRow1
                    hR1.append(sep);
                    // HeaderRow2
                    hR2.append(i);
                    hR2.append("_");
                    hR2.append(translator.translate("item.positions"));
                    hR2.append(sep);
                }
            }
            if (qeif.getExportItemConfig(item).hasTimeCols()) {
                // HeaderRow1
                hR1.append(sep + sep);
                // HeaderRow2
                hR2.append(i);
                hR2.append("_");
                hR2.append(translator.translate("item.start"));
                hR2.append(sep);
                hR2.append(i);
                hR2.append("_");
                hR2.append(translator.translate("item.duration"));
                hR2.append(sep);
            }
            i++;
        }
    }
    // // // HeaderRow1Intro
    sb.append(createHeaderRow1Intro());
    // // // HeaderRow1
    sb.append(hR1.toString());
    sb.append(car);
    // // // HeaderRow2Intro
    sb.append(createHeaderRow2Intro());
    // // // HeaderRow2
    sb.append(hR2.toString());
    sb.append(car);
}
Also used : OLATRuntimeException(org.olat.core.logging.OLATRuntimeException) QTIItemObject(org.olat.ims.qti.export.helper.QTIItemObject)

Example 20 with QTIItemObject

use of org.olat.ims.qti.export.helper.QTIItemObject in project openolat by klemens.

the class QTIExportFormatterCSVType3 method setDefaultQTIItemConfigs.

private void setDefaultQTIItemConfigs() {
    Map<Class<?>, QTIExportItemFormatConfig> itConfigs = new HashMap<>();
    for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext(); ) {
        QTIItemObject item = iter.next();
        if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_SCQ)) {
            if (itConfigs.get(QTIExportSCQItemFormatConfig.class) == null) {
                QTIExportSCQItemFormatConfig confSCQ = new QTIExportSCQItemFormatConfig(true, false, false, false);
                itConfigs.put(QTIExportSCQItemFormatConfig.class, confSCQ);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_MCQ)) {
            if (itConfigs.get(QTIExportMCQItemFormatConfig.class) == null) {
                QTIExportMCQItemFormatConfig confMCQ = new QTIExportMCQItemFormatConfig(true, false, false, false);
                itConfigs.put(QTIExportMCQItemFormatConfig.class, confMCQ);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_KPRIM)) {
            if (itConfigs.get(QTIExportKPRIMItemFormatConfig.class) == null) {
                QTIExportKPRIMItemFormatConfig confKPRIM = new QTIExportKPRIMItemFormatConfig(true, false, false, false);
                itConfigs.put(QTIExportKPRIMItemFormatConfig.class, confKPRIM);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_ESSAY)) {
            if (itConfigs.get(QTIExportEssayItemFormatConfig.class) == null) {
                QTIExportEssayItemFormatConfig confEssay = new QTIExportEssayItemFormatConfig(true, false);
                itConfigs.put(QTIExportEssayItemFormatConfig.class, confEssay);
            }
        } else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_FIB)) {
            if (itConfigs.get(QTIExportFIBItemFormatConfig.class) == null) {
                QTIExportFIBItemFormatConfig confFIB = new QTIExportFIBItemFormatConfig(true, false, false);
                itConfigs.put(QTIExportFIBItemFormatConfig.class, confFIB);
            }
        } else // if cannot find the type via the ItemParser, look for the QTIItemObject type
        if (item.getItemType().equals(QTIItemObject.TYPE.A)) {
            QTIExportEssayItemFormatConfig confEssay = new QTIExportEssayItemFormatConfig(true, false);
            itConfigs.put(QTIExportEssayItemFormatConfig.class, confEssay);
        } else if (item.getItemType().equals(QTIItemObject.TYPE.R)) {
            QTIExportSCQItemFormatConfig confSCQ = new QTIExportSCQItemFormatConfig(true, false, false, false);
            itConfigs.put(QTIExportSCQItemFormatConfig.class, confSCQ);
        } else if (item.getItemType().equals(QTIItemObject.TYPE.C)) {
            QTIExportMCQItemFormatConfig confMCQ = new QTIExportMCQItemFormatConfig(true, false, false, false);
            itConfigs.put(QTIExportMCQItemFormatConfig.class, confMCQ);
        } else if (item.getItemType().equals(QTIItemObject.TYPE.B)) {
            QTIExportFIBItemFormatConfig confFIB = new QTIExportFIBItemFormatConfig(true, false, false);
            itConfigs.put(QTIExportFIBItemFormatConfig.class, confFIB);
        } else {
            throw new OLATRuntimeException(null, "Can not resolve QTIItem type='" + item.getItemType() + "'", null);
        }
    }
    mapWithExportItemConfigs = itConfigs;
}
Also used : HashMap(java.util.HashMap) QTIItemObject(org.olat.ims.qti.export.helper.QTIItemObject) OLATRuntimeException(org.olat.core.logging.OLATRuntimeException)

Aggregations

QTIItemObject (org.olat.ims.qti.export.helper.QTIItemObject)36 OLATRuntimeException (org.olat.core.logging.OLATRuntimeException)20 HashMap (java.util.HashMap)10 QTIResult (org.olat.ims.qti.QTIResult)8 QTIObjectTreeBuilder (org.olat.ims.qti.export.helper.QTIObjectTreeBuilder)8 Test (org.junit.Test)6 QTIResultManager (org.olat.ims.qti.QTIResultManager)6 QTIExportItemFormatConfig (org.olat.ims.qti.export.QTIExportItemFormatConfig)6 QTIStatisticSearchParams (org.olat.ims.qti.statistics.QTIStatisticSearchParams)6 StatisticsItem (org.olat.ims.qti.statistics.model.StatisticsItem)6 QTIExportEssayItemFormatConfig (org.olat.ims.qti.export.QTIExportEssayItemFormatConfig)4 QTIExportFIBItemFormatConfig (org.olat.ims.qti.export.QTIExportFIBItemFormatConfig)4 QTIExportFormatter (org.olat.ims.qti.export.QTIExportFormatter)4 QTIExportFormatterCSVType1 (org.olat.ims.qti.export.QTIExportFormatterCSVType1)4 QTIExportFormatterCSVType3 (org.olat.ims.qti.export.QTIExportFormatterCSVType3)4 QTIExportKPRIMItemFormatConfig (org.olat.ims.qti.export.QTIExportKPRIMItemFormatConfig)4 QTIExportMCQItemFormatConfig (org.olat.ims.qti.export.QTIExportMCQItemFormatConfig)4 QTIExportSCQItemFormatConfig (org.olat.ims.qti.export.QTIExportSCQItemFormatConfig)4 InputStream (java.io.InputStream)2 ArrayList (java.util.ArrayList)2