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

OO-3804: double check if exported item doesn't exist (deleted or else)

parent 6eb9c4d8
No related branches found
No related tags found
No related merge requests found
......@@ -389,7 +389,7 @@ public class QuestionPoolServiceImpl implements QPoolService {
@Override
public Set<ExportFormatOptions> getExportFormatOptions(List<QuestionItemShort> items, Outcome outcome) {
return items.stream()
.filter(item -> StringHelper.containsNonWhitespace(item.getFormat()))
.filter(item -> item != null && StringHelper.containsNonWhitespace(item.getFormat()))
.map(QuestionItemShort::getFormat)
.map(qpoolModule::getQuestionPoolProvider)
.map(QPoolSPI::getTestExportFormats)
......
......@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
......@@ -370,7 +371,9 @@ public abstract class AbstractItemListController extends FormBasicController
public List<QuestionItemShort> getSelectedShortItems() {
return getItemsTable().getMultiSelectedIndex().stream()
.filter(index -> getModel().ensureLoaded(index.intValue(), itemsTable))
.map(index -> getModel().getObject(index.intValue()))
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
......
......@@ -22,6 +22,7 @@ package org.olat.modules.qpool.ui;
import java.text.DecimalFormat;
import java.util.List;
import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataSourceModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataSourceDelegate;
......@@ -55,6 +56,14 @@ public class QuestionItemDataModel extends DefaultFlexiTableDataSourceModel<Item
return null;
}
public boolean ensureLoaded(int row, FlexiTableElement tableEl) {
if(isRowLoaded(row) ) {
return true;
}
tableEl.preloadPageOfObjectIndex(row - 1);
return isRowLoaded(row);
}
@Override
public QuestionItemDataModel createCopyWithEmptyList() {
return new QuestionItemDataModel(getTableColumnModel(), getSourceDelegate(), translator);
......
......@@ -55,7 +55,6 @@ public class Export_1_TypeStep extends BasicStep {
@Override
public StepFormController getStepController(UserRequest ureq, WindowControl wControl, StepsRunContext runContext, Form form) {
runContext.put("items", items);
ExportTypeController controller = new ExportTypeController(ureq, wControl, form, runContext, items);
return controller;
return new ExportTypeController(ureq, wControl, form, runContext, items);
}
}
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