Skip to content
Snippets Groups Projects
Commit 7c6dfe0c authored by srosse's avatar srosse
Browse files

OO-4438: grading time as excel import and bulk change

parent 5a9db568
No related branches found
No related tags found
No related merge requests found
...@@ -184,6 +184,7 @@ public class CSVToAssessmentItemConverter { ...@@ -184,6 +184,7 @@ public class CSVToAssessmentItemConverter {
case "language": processLanguage(parts); break; case "language": processLanguage(parts); break;
case "durchschnittliche bearbeitungszeit": case "durchschnittliche bearbeitungszeit":
case "typical learning time": processTypicalLearningTime(parts); break; case "typical learning time": processTypicalLearningTime(parts); break;
case "required grading time": processCorrectionTime(parts); break;
case "itemschwierigkeit": case "itemschwierigkeit":
case "difficulty index": processDifficultyIndex(parts); break; case "difficulty index": processDifficultyIndex(parts); break;
case "standardabweichung itemschwierigkeit": case "standardabweichung itemschwierigkeit":
...@@ -229,6 +230,19 @@ public class CSVToAssessmentItemConverter { ...@@ -229,6 +230,19 @@ public class CSVToAssessmentItemConverter {
} }
} }
private void processCorrectionTime(String[] parts) {
if(currentItem == null || parts.length < 2) return;
String time = parts[1];
if(StringHelper.containsNonWhitespace(time) && StringHelper.isLong(time.trim())) {
try {
currentItem.setCorrectionTime(Integer.valueOf(time.trim()));
} catch (NumberFormatException e) {
log.error("Cannot parse correction time: {}", time, e);
}
}
}
private void processLicense(String[] parts) { private void processLicense(String[] parts) {
if(currentItem == null || parts.length < 2) return; if(currentItem == null || parts.length < 2) return;
......
...@@ -22,6 +22,7 @@ package org.olat.modules.qpool.ui.metadata; ...@@ -22,6 +22,7 @@ package org.olat.modules.qpool.ui.metadata;
import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.toBigDecimal; import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.toBigDecimal;
import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.toInt; import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.toInt;
import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateBigDecimal; import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateBigDecimal;
import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateInteger;
import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateElementLogic; import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateElementLogic;
import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateSelection; import static org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateSelection;
...@@ -84,7 +85,11 @@ public class MetadataBulkChangeController extends FormBasicController { ...@@ -84,7 +85,11 @@ public class MetadataBulkChangeController extends FormBasicController {
private SingleSelection taxonomyLevelEl; private SingleSelection taxonomyLevelEl;
private SingleSelection contextEl; private SingleSelection contextEl;
private FormLayoutContainer learningTimeContainer; private FormLayoutContainer learningTimeContainer;
private IntegerElement learningTimeDayElement, learningTimeHourElement, learningTimeMinuteElement, learningTimeSecondElement; private IntegerElement learningTimeDayElement;
private IntegerElement learningTimeHourElement;
private IntegerElement learningTimeMinuteElement;
private IntegerElement learningTimeSecondElement;
private TextElement correctionTimeElement;
private SingleSelection assessmentTypeEl; private SingleSelection assessmentTypeEl;
private TextElement difficultyEl, stdevDifficultyEl, differentiationEl, numAnswerAltEl; private TextElement difficultyEl, stdevDifficultyEl, differentiationEl, numAnswerAltEl;
private SingleSelection licenseEl; private SingleSelection licenseEl;
...@@ -216,6 +221,10 @@ public class MetadataBulkChangeController extends FormBasicController { ...@@ -216,6 +221,10 @@ public class MetadataBulkChangeController extends FormBasicController {
learningTimeSecondElement = uifactory.addIntegerElement("learningTime.second", "", 0, learningTimeContainer); learningTimeSecondElement = uifactory.addIntegerElement("learningTime.second", "", 0, learningTimeContainer);
learningTimeSecondElement.setDisplaySize(3); learningTimeSecondElement.setDisplaySize(3);
correctionTimeElement = uifactory.addTextElement("question.correctionTime", "question.correctionTime", 10, null, questionCont);
correctionTimeElement.setDisplaySize(4);
decorate(correctionTimeElement, questionCont);
difficultyEl = uifactory.addTextElement("question.difficulty", "question.difficulty", 10, null, questionCont); difficultyEl = uifactory.addTextElement("question.difficulty", "question.difficulty", 10, null, questionCont);
difficultyEl.setExampleKey("question.difficulty.example", null); difficultyEl.setExampleKey("question.difficulty.example", null);
difficultyEl.setDisplaySize(4); difficultyEl.setDisplaySize(4);
...@@ -345,6 +354,8 @@ public class MetadataBulkChangeController extends FormBasicController { ...@@ -345,6 +354,8 @@ public class MetadataBulkChangeController extends FormBasicController {
allOk &= validateBigDecimal(stdevDifficultyEl, 0.0d, 1.0d, true); allOk &= validateBigDecimal(stdevDifficultyEl, 0.0d, 1.0d, true);
allOk &= validateBigDecimal(differentiationEl, -1.0d, 1.0d, true); allOk &= validateBigDecimal(differentiationEl, -1.0d, 1.0d, true);
allOk &= validateInteger(correctionTimeElement, 0, 1000, isEnabled(correctionTimeElement));
//technical //technical
allOk &= validateElementLogic(versionEl, versionEl.getMaxLength(), false, isEnabled(versionEl)); allOk &= validateElementLogic(versionEl, versionEl.getMaxLength(), false, isEnabled(versionEl));
allOk &= validateSelection(statusEl, isEnabled(statusEl)); allOk &= validateSelection(statusEl, isEnabled(statusEl));
...@@ -422,14 +433,21 @@ public class MetadataBulkChangeController extends FormBasicController { ...@@ -422,14 +433,21 @@ public class MetadataBulkChangeController extends FormBasicController {
itemImpl.setEducationalLearningTime(timeStr); itemImpl.setEducationalLearningTime(timeStr);
} }
if(isEnabled(difficultyEl)) if(isEnabled(correctionTimeElement) && StringHelper.isLong(correctionTimeElement.getValue())) {
itemImpl.setCorrectionTime(Integer.valueOf(correctionTimeElement.getValue()));
}
if(isEnabled(difficultyEl)) {
itemImpl.setDifficulty(toBigDecimal(difficultyEl.getValue())); itemImpl.setDifficulty(toBigDecimal(difficultyEl.getValue()));
if(isEnabled(stdevDifficultyEl)) }
if(isEnabled(stdevDifficultyEl)) {
itemImpl.setStdevDifficulty(toBigDecimal(stdevDifficultyEl.getValue())); itemImpl.setStdevDifficulty(toBigDecimal(stdevDifficultyEl.getValue()));
if(isEnabled(differentiationEl)) }
if(isEnabled(differentiationEl)) {
itemImpl.setDifferentiation(toBigDecimal(differentiationEl.getValue())); itemImpl.setDifferentiation(toBigDecimal(differentiationEl.getValue()));
if(isEnabled(numAnswerAltEl)) }
if(isEnabled(numAnswerAltEl)) {
itemImpl.setNumOfAnswerAlternatives(toInt(numAnswerAltEl.getValue())); itemImpl.setNumOfAnswerAlternatives(toInt(numAnswerAltEl.getValue()));
}
if(isEnabled(assessmentTypeEl)) { if(isEnabled(assessmentTypeEl)) {
String assessmentType = assessmentTypeEl.isOneSelected() ? assessmentTypeEl.getSelectedKey() : null; String assessmentType = assessmentTypeEl.isOneSelected() ? assessmentTypeEl.getSelectedKey() : null;
itemImpl.setAssessmentType(assessmentType); itemImpl.setAssessmentType(assessmentType);
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment