From 3d943e09cdec71a4b463e23483b28d159cbc147b Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 21 Oct 2015 11:51:17 +0200 Subject: [PATCH] OO-1732: take the number of user properties to render the first row of headers in the test archive file --- .../olat/course/nodes/IQSELFCourseNode.java | 2 +- .../olat/course/nodes/IQSURVCourseNode.java | 2 +- .../olat/course/nodes/IQTESTCourseNode.java | 2 +- .../course/nodes/iq/IQEditReplaceWizard.java | 2 +- .../export/QTIArchiveWizardController.java | 26 +++++++++---------- .../export/QTIExportFormatterCSVType1.java | 21 +++++++++++---- .../export/QTIExportFormatterCSVType2.java | 4 +-- .../export/QTIExportFormatterCSVType3.java | 6 ++--- .../qti/statistics/QTIStatisticsResource.java | 5 ++-- 9 files changed, 37 insertions(+), 33 deletions(-) diff --git a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java index 3095ee1d26e..990847daa8f 100644 --- a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java @@ -231,7 +231,7 @@ public class IQSELFCourseNode extends AbstractAccessableCourseNode implements Se RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repositorySoftKey, true); try { - QTIExportFormatter qef = new QTIExportFormatterCSVType2(locale, null, "\t", "\"", "\\", "\r\n", false); + QTIExportFormatter qef = new QTIExportFormatterCSVType2(locale, null, "\t", "\"", "\r\n", false); return qem.selectAndExportResults(qef, course.getResourceableId(), getShortTitle(), getIdent(), re, exportStream, ".xls"); } catch (IOException e) { log.error("", e); diff --git a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java index c920f3623d8..40f4eafe903 100644 --- a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java @@ -269,7 +269,7 @@ public class IQSURVCourseNode extends AbstractAccessableCourseNode implements QT String repositorySoftKey = (String) getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY); RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repositorySoftKey, true); - QTIExportFormatter qef = new QTIExportFormatterCSVType3(locale, null,"\t", "\"", "\\", "\r\n", false); + QTIExportFormatter qef = new QTIExportFormatterCSVType3(locale, null,"\t", "\"", "\r\n", false); try { return qem.selectAndExportResults(qef, course.getResourceableId(), getShortTitle(), getIdent(), re, exportStream, ".xls"); } catch (IOException e) { diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java index 6c7dac156eb..9720738a772 100644 --- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java @@ -479,7 +479,7 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements As } else { String shortTitle = getShortTitle(); QTIExportManager qem = QTIExportManager.getInstance(); - QTIExportFormatter qef = new QTIExportFormatterCSVType1(locale, "\t", "\"", "\\", "\r\n", false); + QTIExportFormatter qef = new QTIExportFormatterCSVType1(locale, "\t", "\"", "\r\n", false); return qem.selectAndExportResults(qef, courseResourceableId, shortTitle, getIdent(), re, exportStream, ".xls"); } } catch (IOException e) { diff --git a/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java b/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java index 8c9aaef8b64..23a6fc739e8 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java +++ b/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java @@ -195,7 +195,7 @@ public class IQEditReplaceWizard extends WizardController { QTIExportManager qem = QTIExportManager.getInstance(); Long repositoryRef = results.get(0).getResultSet().getRepositoryRef(); List<QTIItemObject> qtiItemObjectList = new QTIObjectTreeBuilder().getQTIItemObjectList(repositoryRef); - QTIExportFormatter formatter = new QTIExportFormatterCSVType1(ureq.getLocale(), "\t", "\"", "\\", "\r\n", false); + QTIExportFormatter formatter = new QTIExportFormatterCSVType1(ureq.getLocale(), "\t", "\"", "\r\n", false); Map<Class<?>, QTIExportItemFormatConfig> qtiItemConfigs = getQTIItemConfigs(qtiItemObjectList); formatter.setMapWithExportItemConfigs(qtiItemConfigs); resultExportFile = qem.exportResults(formatter, results, qtiItemObjectList, courseNode.getShortTitle(), exportDir, charset, ".xls"); diff --git a/src/main/java/org/olat/ims/qti/export/QTIArchiveWizardController.java b/src/main/java/org/olat/ims/qti/export/QTIArchiveWizardController.java index e99f0378200..6f427944261 100644 --- a/src/main/java/org/olat/ims/qti/export/QTIArchiveWizardController.java +++ b/src/main/java/org/olat/ims/qti/export/QTIArchiveWizardController.java @@ -292,7 +292,7 @@ public class QTIArchiveWizardController extends BasicController { this.sep = convert2CtrlChars(sep); this.car = convert2CtrlChars(car); - formatter = getFormatter(ureq.getLocale(), sep, emb, esc, car, true); + formatter = getFormatter(ureq.getLocale(), sep, emb, car, true); formatter.setMapWithExportItemConfigs(qtiItemConfigs); exportDir = CourseFactory.getOrCreateDataExportDirectory(ureq.getIdentity(), course.getCourseTitle()); @@ -355,7 +355,7 @@ public class QTIArchiveWizardController extends BasicController { this.sep = convert2CtrlChars(sep); this.car = convert2CtrlChars(car); - formatter = getFormatter(ureq.getLocale(), sep, emb, esc, car, dcForm.isTagless()); + formatter = getFormatter(ureq.getLocale(), sep, emb, car, dcForm.isTagless()); formatter.setMapWithExportItemConfigs(qtiItemConfigs); ICourse course = CourseFactory.loadCourse(ores); @@ -539,21 +539,19 @@ public class QTIArchiveWizardController extends BasicController { return itConfigs; } - private QTIExportFormatter getFormatter(Locale locale, String se, String em, String es, String ca, boolean tagless){ + private QTIExportFormatter getFormatter(Locale locale, String se, String em, String ca, boolean tagless){ QTIExportFormatter frmtr = null; - if (type == 1){ - frmtr = new QTIExportFormatterCSVType1(locale, se, em, es, ca, tagless); - } - else if (type == 2){ - frmtr = new QTIExportFormatterCSVType2(locale, null, se, em, es, ca, tagless); - } - else { // type == 3 - frmtr = new QTIExportFormatterCSVType3(locale, null, se, em, es, ca, tagless); - } - return frmtr; + if (type == 1){ + frmtr = new QTIExportFormatterCSVType1(locale, se, em, ca, tagless); + } else if (type == 2){ + frmtr = new QTIExportFormatterCSVType2(locale, null, se, em, ca, tagless); + } else { // type == 3 + frmtr = new QTIExportFormatterCSVType3(locale, null, se, em, ca, tagless); + } + return frmtr; } - + @Override protected void doDispose() { // } diff --git a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java index 28a5c86810b..b223dc455b2 100644 --- a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java +++ b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java @@ -57,7 +57,6 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter { // Delimiters and file name suffix for the export file private String sep; // fields separated by private String emb; // fields embedded by - private String esc; // fields escaped by private String car; // carriage return // Author can export the mattext without HTML tags // especially used for the results export of matrix questions created by QANT @@ -78,11 +77,10 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter { * qtiExportFormatConfig with (QTIExportItemXYZ.class,IQTIExportItemFormatConfig) */ - public QTIExportFormatterCSVType1(Locale locale, String sep, String emb, String esc, String car, boolean tagless) { + public QTIExportFormatterCSVType1(Locale locale, String sep, String emb, String car, boolean tagless) { super(locale, null); this.sep = sep; this.emb = emb; - this.esc = esc; this.car = car; this.tagless = tagless; // initialize user property handlers @@ -448,7 +446,20 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter { } private String createHeaderRow1Intro() { - return sep + sep + sep + sep + sep + sep + sep + sep + sep + sep; + StringBuilder hr1Intro = new StringBuilder(); + hr1Intro.append(sep);//seqnum + for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { + if (userPropertyHandler != null) { + hr1Intro.append(sep); + } + } + hr1Intro.append(sep); + hr1Intro.append(sep); + hr1Intro.append(sep); + hr1Intro.append(sep); + hr1Intro.append(sep); + hr1Intro.append(sep); + return hr1Intro.toString();// + sep + sep + sep + sep + sep + sep + sep + sep + sep; } /** @@ -467,7 +478,7 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter { hr2Intro.append(sep); // add configured user properties - for (UserPropertyHandler userPropertyHandler : this.userPropertyHandlers) { + for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { if (userPropertyHandler == null) { continue; } diff --git a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType2.java b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType2.java index 1cbb1e7e467..57236395ac5 100644 --- a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType2.java +++ b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType2.java @@ -51,7 +51,6 @@ public class QTIExportFormatterCSVType2 extends QTIExportFormatter { // Delimiters and file name suffix for the export file private String sep; // fields separated by private String emb; // fields embedded by - private String esc; // fields escaped by private String car; // carriage return // Author can export the mattext without HTML tags // especially used for the results export of matrix questions created by QANT @@ -74,11 +73,10 @@ public class QTIExportFormatterCSVType2 extends QTIExportFormatter { * qtiExportFormatConfig with (QTIExportItemXYZ.class,IQTIExportItemFormatConfig) */ - public QTIExportFormatterCSVType2(Locale locale, IdentityAnonymizerCallback anonymizerCallback, String sep, String emb, String esc, String car, boolean tagless) { + public QTIExportFormatterCSVType2(Locale locale, IdentityAnonymizerCallback anonymizerCallback, String sep, String emb, String car, boolean tagless) { super(locale, anonymizerCallback); this.sep = sep; this.emb = emb; - this.esc = esc; this.car = car; this.tagless = tagless; } diff --git a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType3.java b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType3.java index 5bf27bf7bc9..e5b056971d4 100644 --- a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType3.java +++ b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType3.java @@ -45,12 +45,11 @@ import org.olat.ims.qti.export.helper.QTIItemObject; * * @author Alexander Schneider */ -public class QTIExportFormatterCSVType3 extends QTIExportFormatter{ +public class QTIExportFormatterCSVType3 extends QTIExportFormatter { private String fileNamePrefix = "QUEST_"; private int type = 3; private String sep; // fields separated by private String emb; // fields embedded by - private String esc; // fields escaped by private String car; // carriage return // Author can export the mattext without HTML tags // especially used for the results export of matrix questions created by QANT @@ -74,11 +73,10 @@ public class QTIExportFormatterCSVType3 extends QTIExportFormatter{ * @param Map qtiExportFormatConfig with (QTIExportItemXYZ.class,IQTIExportItemFormatConfig) */ - public QTIExportFormatterCSVType3(Locale locale, IdentityAnonymizerCallback anonymizerCallback, String sep, String emb, String esc, String car, boolean tagless) { + public QTIExportFormatterCSVType3(Locale locale, IdentityAnonymizerCallback anonymizerCallback, String sep, String emb, String car, boolean tagless) { super(locale, anonymizerCallback); this.sep = sep; this.emb = emb; - this.esc = esc; this.car = car; this.tagless = tagless; } diff --git a/src/main/java/org/olat/ims/qti/statistics/QTIStatisticsResource.java b/src/main/java/org/olat/ims/qti/statistics/QTIStatisticsResource.java index 97fd6b2fa3e..ab6fe7da482 100644 --- a/src/main/java/org/olat/ims/qti/statistics/QTIStatisticsResource.java +++ b/src/main/java/org/olat/ims/qti/statistics/QTIStatisticsResource.java @@ -118,7 +118,6 @@ public class QTIStatisticsResource implements MediaResource { try { String sep = "\\t"; // fields separated by String emb = "\""; // fields embedded by - String esc = "\\"; // fields escaped by String car = "\\r\\n"; // carriage return sep = QTIArchiveWizardController.convert2CtrlChars(sep); @@ -128,10 +127,10 @@ public class QTIStatisticsResource implements MediaResource { QTIExportFormatter formatter; if (QTIType.test.equals(resourceResult.getType())){ exportType = 1; - formatter = new QTIExportFormatterCSVType1(locale, sep, emb, esc, car, true); + formatter = new QTIExportFormatterCSVType1(locale, sep, emb, car, true); } else if (QTIType.survey.equals(resourceResult.getType())) { exportType = 2; - formatter = new QTIExportFormatterCSVType2(locale, null, sep, emb, esc, car, true); + formatter = new QTIExportFormatterCSVType2(locale, null, sep, emb, car, true); } else { return; } -- GitLab