Skip to content
Snippets Groups Projects
Commit 36f9a48d authored by srosse's avatar srosse
Browse files

Merge remote-tracking branch 'origin/OpenOLAT_13.2'

parents 5f79f2d0 206f4faa
No related branches found
No related tags found
No related merge requests found
......@@ -169,6 +169,9 @@ public enum TextMode {
public String getText() {
StringBuilder content = new StringBuilder(1024);
if(sb.length() > 0) {
content.append(sb);
}
for(String line:lines) {
line = line.trim();
if(StringHelper.containsNonWhitespace(line)) {
......
......@@ -37,7 +37,6 @@ import org.olat.core.gui.control.generic.modal.DialogBoxController;
import org.olat.core.gui.control.generic.wizard.Step;
import org.olat.core.gui.control.generic.wizard.StepRunnerCallback;
import org.olat.core.gui.control.generic.wizard.StepsMainRunController;
import org.olat.core.gui.control.generic.wizard.StepsRunContext;
import org.olat.course.assessment.manager.BulkAssessmentTask;
import org.olat.course.assessment.model.BulkAssessmentDatas;
import org.olat.course.assessment.model.BulkAssessmentFeedback;
......@@ -94,6 +93,9 @@ public class BulkAssessmentToolController extends BasicController {
bulkAssessmentCtrl = null;
if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
doBulkAssessmentSynchronous(ureq, feedback);
fireEvent(ureq, Event.CHANGED_EVENT);
} else {
fireEvent(ureq, Event.DONE_EVENT);
}
}
}
......@@ -101,15 +103,12 @@ public class BulkAssessmentToolController extends BasicController {
}
private void doOpen(UserRequest ureq) {
StepRunnerCallback finish = new StepRunnerCallback() {
@Override
public Step execute(UserRequest uureq, WindowControl bwControl, StepsRunContext runContext) {
Date scheduledDate = (Date)runContext.get("scheduledDate");
BulkAssessmentDatas datas = (BulkAssessmentDatas)runContext.get("datas");
Feedback feedback = doBulkAssessment(scheduledDate, datas);
runContext.put("feedback", feedback);
return StepsMainRunController.DONE_MODIFIED;
}
StepRunnerCallback finish = (uureq, bwControl, runContext) -> {
Date scheduledDate = (Date)runContext.get("scheduledDate");
BulkAssessmentDatas datas = (BulkAssessmentDatas)runContext.get("datas");
Feedback feedback = doBulkAssessment(scheduledDate, datas);
runContext.put("feedback", feedback);
return StepsMainRunController.DONE_MODIFIED;
};
Step start = new BulkAssessment_2_DatasStep(ureq, courseNode);
......
......@@ -40,6 +40,7 @@ import org.olat.core.gui.control.generic.wizard.StepFormBasicController;
import org.olat.core.gui.control.generic.wizard.StepsEvent;
import org.olat.core.gui.control.generic.wizard.StepsRunContext;
import org.olat.core.util.StringHelper;
import org.olat.core.util.filter.FilterFactory;
import org.olat.course.assessment.model.BulkAssessmentColumnSettings;
import org.olat.course.assessment.model.BulkAssessmentDatas;
import org.olat.course.assessment.model.BulkAssessmentRow;
......@@ -55,9 +56,15 @@ import org.olat.course.nodes.AssessableCourseNode;
public class ChooseColumnsStepForm extends StepFormBasicController {
private int numOfColumns;
private SingleSelection userNameColumnEl, scoreColumnEl, passedColumnEl, commentColumnEl;
private SingleSelection scoreColumnEl;
private SingleSelection passedColumnEl;
private SingleSelection commentColumnEl;
private SingleSelection userNameColumnEl;
private final OverviewDataModel overviewDataModel;
private final BulkAssessmentColumnSettings columnsSettings;
private final String translatedPassed;
private final String translatedFailed;
public ChooseColumnsStepForm(UserRequest ureq, WindowControl wControl, BulkAssessmentColumnSettings columnsSettings,
StepsRunContext runContext, Form rootForm) {
......@@ -67,10 +74,13 @@ public class ChooseColumnsStepForm extends StepFormBasicController {
@SuppressWarnings("unchecked")
List<String[]> splittedRows = (List<String[]>)getFromRunContext("splittedRows");
if(splittedRows.size() > 0) {
if(!splittedRows.isEmpty()) {
numOfColumns = splittedRows.get(0).length;
}
translatedPassed = FilterFactory.getHtmlTagsFilter().filter(translate("passed.true")).trim();
translatedFailed = FilterFactory.getHtmlTagsFilter().filter(translate("passed.false")).trim();
overviewDataModel = new OverviewDataModel(splittedRows);
initForm(ureq);
}
......@@ -160,15 +170,17 @@ public class ChooseColumnsStepForm extends StepFormBasicController {
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true;
boolean allOk = super.validateFormLogic(ureq);
userNameColumnEl.clearError();
if(userNameColumnEl != null && !userNameColumnEl.isOneSelected()) {
userNameColumnEl.setErrorKey("form.legende.mandatory", null);
allOk &= false;
if(userNameColumnEl != null) {
userNameColumnEl.clearError();
if(!userNameColumnEl.isOneSelected()) {
userNameColumnEl.setErrorKey("form.legende.mandatory", null);
allOk &= false;
}
}
return allOk & super.validateFormLogic(ureq);
return allOk;
}
@Override
......@@ -224,7 +236,7 @@ public class ChooseColumnsStepForm extends StepFormBasicController {
}
String identifyer = values[settings.getUsernameColumn()];
identifyer.trim();
identifyer = identifyer.trim();
if (!StringHelper.containsNonWhitespace(identifyer)) {
identifyer = "-";
}
......@@ -258,19 +270,24 @@ public class ChooseColumnsStepForm extends StepFormBasicController {
if(valuesLength > settings.getPassedColumn()) {
String passedStr = values[settings.getPassedColumn()];
passedStr= passedStr.trim();
passedStr = passedStr.trim();
Boolean passed;
if ("y".equalsIgnoreCase(passedStr)
|| "yes".equalsIgnoreCase(passedStr)
|| "passed".equalsIgnoreCase(passedStr)
|| "true".equalsIgnoreCase(passedStr)
|| "1".equalsIgnoreCase(passedStr)) {
|| "1".equalsIgnoreCase(passedStr)
|| translatedPassed.equalsIgnoreCase(passedStr)) {
passed = Boolean.TRUE;
} else if ("n".equalsIgnoreCase(passedStr)
|| "no".equalsIgnoreCase(passedStr)
|| "false".equalsIgnoreCase(passedStr)
|| "failed".equalsIgnoreCase(passedStr)
|| "0".equalsIgnoreCase(passedStr)) {
|| "0".equalsIgnoreCase(passedStr)
|| translatedFailed.equalsIgnoreCase(passedStr)) {
passed = Boolean.FALSE;
} else {
// only set defined values, ignore everything else
......
......@@ -24,6 +24,7 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
......@@ -125,7 +126,7 @@ public class DataStepForm extends StepFormBasicController {
if(savedDatas != null && StringHelper.containsNonWhitespace(savedDatas.getDataBackupFile())) {
VFSLeaf file = VFSManager.olatRootLeaf(savedDatas.getDataBackupFile());
try(InputStream in = file.getInputStream()) {
dataVal = IOUtils.toString(in, "UTF-8");
dataVal = IOUtils.toString(in, StandardCharsets.UTF_8);
} catch (IOException e) {
logError("", e);
}
......@@ -283,7 +284,7 @@ public class DataStepForm extends StepFormBasicController {
}
try(OutputStream out = inputFile.getOutputStream(false)) {
IOUtils.write(val, out, "UTF-8");
IOUtils.write(val, out, StandardCharsets.UTF_8);
datas.setDataBackupFile(inputFile.getRelPath());
} catch (IOException e) {
logError("", e);
......
......@@ -120,21 +120,21 @@ public class ValidationStepForm extends StepFormBasicController {
if(datas.getRows() != null) {
doValidateRows(datas);
}
flc.contextPut("hasNoItems", Boolean.valueOf(datas.getRows() == null || datas.getRows().size() == 0));
flc.contextPut("hasNoItems", Boolean.valueOf(datas.getRows() == null || datas.getRows().isEmpty()));
}
private void doValidateRows(BulkAssessmentDatas datas) {
List<BulkAssessmentRow> rows = datas.getRows();
List<String> assessedIdList = new ArrayList<String>(rows.size());
List<String> assessedIdList = new ArrayList<>(rows.size());
for(BulkAssessmentRow row : rows) {
assessedIdList.add(row.getAssessedId());
}
Map<String,Identity> idToIdentityMap = loadAssessedIdentities(assessedIdList);
List<UserData> validDatas = new ArrayList<UserData>(idToIdentityMap.size());
List<UserData> invalidDatas = new ArrayList<UserData>(rows.size() - idToIdentityMap.size());
List<UserData> validDatas = new ArrayList<>(idToIdentityMap.size());
List<UserData> invalidDatas = new ArrayList<>(rows.size() - idToIdentityMap.size());
for(BulkAssessmentRow row : datas.getRows()) {
Identity foundIdentity = idToIdentityMap.get(row.getAssessedId());
if(foundIdentity == null) {
......@@ -153,7 +153,7 @@ public class ValidationStepForm extends StepFormBasicController {
}
private Map<String,Identity> loadAssessedIdentities(List<String> assessedIdList) {
Map<String,Identity> idToIdentityMap = new HashMap<String, Identity>();
Map<String,Identity> idToIdentityMap = new HashMap<>();
for(String assessedId : assessedIdList) {
Identity identity = securityManager.findIdentityByName(assessedId);
......
/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
......
......@@ -77,6 +77,7 @@ public class GTAIdentityListCourseNodeController extends IdentityListCourseNodeC
private FormLink groupAssessmentButton;
private GroupAssessmentController assessmentCtrl;
private BulkAssessmentToolController bulkAssessmentToolCtrl;
@Autowired
private GTAManager gtaManager;
......@@ -136,10 +137,12 @@ public class GTAIdentityListCourseNodeController extends IdentityListCourseNodeC
}
private void initBulkAsssessmentTool(UserRequest ureq, FormLayoutContainer formLayout) {
BulkAssessmentToolController bulkAssessmentTollCtrl = new BulkAssessmentToolController(ureq, getWindowControl(),
removeAsListenerAndDispose(bulkAssessmentToolCtrl);
bulkAssessmentToolCtrl = new BulkAssessmentToolController(ureq, getWindowControl(),
getCourseEnvironment(), (AssessableCourseNode)courseNode);
listenTo(bulkAssessmentTollCtrl);
formLayout.put("bulk.assessment", bulkAssessmentTollCtrl.getInitialComponent());
listenTo(bulkAssessmentToolCtrl);
formLayout.put("bulk.assessment", bulkAssessmentToolCtrl.getInitialComponent());
}
@Override
......@@ -181,6 +184,11 @@ public class GTAIdentityListCourseNodeController extends IdentityListCourseNodeC
}
cmc.deactivate();
cleanUp();
} else if(bulkAssessmentToolCtrl == source) {
if(event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) {
loadModel(ureq);
}
cleanUp();
}
super.event(ureq, source, event);
}
......@@ -198,7 +206,9 @@ public class GTAIdentityListCourseNodeController extends IdentityListCourseNodeC
@Override
protected void cleanUp() {
removeAsListenerAndDispose(bulkAssessmentToolCtrl);
removeAsListenerAndDispose(assessmentCtrl);
bulkAssessmentToolCtrl = null;
assessmentCtrl = null;
super.cleanUp();
}
......
......@@ -31,12 +31,27 @@ import org.junit.Test;
public class TextModeTest {
@Test
public void guessOneLine() {
TextMode mode1 = TextMode.guess("bla bla");
public void textModeOneLine_text() {
String text = "bla bla";
TextMode mode1 = TextMode.guess(text);
Assert.assertEquals(TextMode.oneLine, mode1);
TextMode mode2 = TextMode.guess("<p>bla bla</p>");
String fromOneLine = TextMode.fromOneLine(text);
Assert.assertEquals("<p>bla bla</p>", fromOneLine);
String toOneLine = TextMode.toOneLine(text);
Assert.assertEquals("bla bla", toOneLine);
}
@Test
public void textModeOneLine_paragraph() {
String paragraph = "<p>bla bla</p>";
TextMode mode2 = TextMode.guess("paragraph");
Assert.assertEquals(TextMode.oneLine, mode2);
String toOneLine = TextMode.toOneLine(paragraph);
Assert.assertEquals("bla bla", toOneLine);
}
@Test
......
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