use of org.olat.ims.qti21.ui.assessment.model.AssessmentItemListEntry in project openolat by klemens.
the class CorrectionAssessmentItemListController method doSelect.
private void doSelect(UserRequest ureq, CorrectionAssessmentItemRow row, Predicate<AssessmentItemListEntry> filter) {
removeAsListenerAndDispose(identityItemCtrl);
AssessmentItemRef itemRef = row.getItemRef();
String itemRefIdentifier = row.getItemRef().getIdentifier().toString();
List<AssessmentItemSession> allItemSessions = qtiService.getAssessmentItemSessions(model.getCourseEntry(), model.getSubIdent(), model.getTestEntry(), itemRefIdentifier);
Map<AssessmentTestSession, AssessmentItemSession> testToItemSession = new HashMap<>();
for (AssessmentItemSession itemSession : allItemSessions) {
AssessmentTestSession testSession = itemSession.getAssessmentTestSession();
testToItemSession.put(testSession, itemSession);
}
// reorder to match the list of identities
int count = 1;
List<Identity> assessedIdentities = model.getAssessedIdentities();
List<AssessmentItemListEntry> reorderItemSessions = new ArrayList<>(assessedIdentities.size());
for (Identity assessedIdentity : assessedIdentities) {
AssessmentTestSession testSession = model.getLastSessions().get(assessedIdentity);
if (testSession != null) {
AssessmentItemSession itemSession = testToItemSession.get(testSession);
String title;
if (anonymous) {
title = translate("number.assessed.identity", new String[] { Integer.toString(count++) });
} else {
title = userManager.getUserDisplayName(assessedIdentity);
}
AssessmentItemListEntry entry = new AssessmentItemListEntry(assessedIdentity, testSession, itemSession, itemRef, title, "o_icon_user");
if (filter.test(entry)) {
reorderItemSessions.add(entry);
}
}
}
if (!reorderItemSessions.isEmpty()) {
doSelect(ureq, reorderItemSessions.get(0), reorderItemSessions);
} else {
showWarning("waring.atleast.one");
}
}
use of org.olat.ims.qti21.ui.assessment.model.AssessmentItemListEntry in project OpenOLAT by OpenOLAT.
the class CorrectionIdentityAssessmentItemNavigationController method doNext.
private void doNext(UserRequest ureq) {
AssessmentItemListEntry currentEntry = getAssessmentItemSession();
List<? extends AssessmentItemListEntry> assessmentEntryList = getAssessmentEntryList();
int index = assessmentEntryList.indexOf(currentEntry) + 1;
if (index >= 0 && index < assessmentEntryList.size()) {
AssessmentItemListEntry nextEntry = assessmentEntryList.get(index);
fireEvent(ureq, new SelectAssessmentItemEvent(nextEntry));
} else {
nextItemLink.setEnabled(false);
}
}
use of org.olat.ims.qti21.ui.assessment.model.AssessmentItemListEntry in project OpenOLAT by OpenOLAT.
the class CorrectionAssessmentItemListController method doSelect.
private void doSelect(UserRequest ureq, CorrectionAssessmentItemRow row, Predicate<AssessmentItemListEntry> filter) {
removeAsListenerAndDispose(identityItemCtrl);
AssessmentItemRef itemRef = row.getItemRef();
String itemRefIdentifier = row.getItemRef().getIdentifier().toString();
List<AssessmentItemSession> allItemSessions = qtiService.getAssessmentItemSessions(model.getCourseEntry(), model.getSubIdent(), model.getTestEntry(), itemRefIdentifier);
Map<AssessmentTestSession, AssessmentItemSession> testToItemSession = new HashMap<>();
for (AssessmentItemSession itemSession : allItemSessions) {
AssessmentTestSession testSession = itemSession.getAssessmentTestSession();
testToItemSession.put(testSession, itemSession);
}
// reorder to match the list of identities
int count = 1;
List<Identity> assessedIdentities = model.getAssessedIdentities();
List<AssessmentItemListEntry> reorderItemSessions = new ArrayList<>(assessedIdentities.size());
for (Identity assessedIdentity : assessedIdentities) {
AssessmentTestSession testSession = model.getLastSessions().get(assessedIdentity);
if (testSession != null) {
AssessmentItemSession itemSession = testToItemSession.get(testSession);
String title;
if (anonymous) {
title = translate("number.assessed.identity", new String[] { Integer.toString(count++) });
} else {
title = userManager.getUserDisplayName(assessedIdentity);
}
AssessmentItemListEntry entry = new AssessmentItemListEntry(assessedIdentity, testSession, itemSession, itemRef, title, "o_icon_user");
if (filter.test(entry)) {
reorderItemSessions.add(entry);
}
}
}
if (!reorderItemSessions.isEmpty()) {
doSelect(ureq, reorderItemSessions.get(0), reorderItemSessions);
} else {
showWarning("waring.atleast.one");
}
}
use of org.olat.ims.qti21.ui.assessment.model.AssessmentItemListEntry in project openolat by klemens.
the class CorrectionAssessmentItemListController method formInnerEvent.
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (tableEl == source) {
if (event instanceof SelectionEvent) {
SelectionEvent se = (SelectionEvent) event;
String cmd = se.getCommand();
CorrectionAssessmentItemRow row = tableModel.getObject(se.getIndex());
if ("select".equals(cmd)) {
// accept all
doSelect(ureq, row, r -> true);
} else if ("answered".equals(cmd)) {
// accept all
doSelect(ureq, row, new ResponsedPredicate(row, true));
} else if ("notAnswered".equals(cmd)) {
// accept all
doSelect(ureq, row, new ResponsedPredicate(row, false));
} else if ("autoCorrected".equals(cmd)) {
doSelect(ureq, row, entry -> !row.isManualCorrection() && entry.getManualScore() == null);
} else if ("corrected".equals(cmd)) {
doSelect(ureq, row, entry -> entry.getManualScore() != null);
} else if ("notCorrected".equals(cmd)) {
doSelect(ureq, row, entry -> row.isManualCorrection() && entry.getManualScore() == null);
} else if ("toReview".equals(cmd)) {
doSelect(ureq, row, AssessmentItemListEntry::isToReview);
}
}
} else if (saveTestsButton == source) {
doConfirmSaveTests(ureq);
} else if (source instanceof FormLink) {
FormLink link = (FormLink) source;
if ("tools".equals(link.getCmd())) {
doOpenTools(ureq, (CorrectionAssessmentItemRow) link.getUserObject(), link);
}
}
super.formInnerEvent(ureq, source, event);
}
use of org.olat.ims.qti21.ui.assessment.model.AssessmentItemListEntry in project openolat by klemens.
the class CorrectionIdentityAssessmentItemListController method updatePreviousNext.
private void updatePreviousNext() {
if (identityItemCtrl != null) {
List<CorrectionIdentityAssessmentItemRow> rows = tableModel.getObjects();
AssessmentItemListEntry itemSession = identityItemCtrl.getAssessmentItemSession();
String previousText = translate("previous.item");
String nextText = translate("next.item");
boolean previousEnable = false;
boolean nextEnable = false;
int index = rows.indexOf(itemSession);
if (index - 1 >= 0 && rows.size() > index - 1) {
previousText = rows.get(index - 1).getLabel();
previousEnable = true;
}
if (index + 1 >= 0 && rows.size() > index + 1) {
nextText = rows.get(index + 1).getLabel();
nextEnable = true;
}
identityItemCtrl.updatePreviousNext(previousText, previousEnable, nextText, nextEnable);
}
}
Aggregations