use of org.olat.course.assessment.AssessmentMode.Status in project openolat by klemens.
the class AssessmentModeCoordinationServiceImpl method canStart.
@Override
public boolean canStart(AssessmentMode assessmentMode) {
boolean canStart;
Status status = assessmentMode.getStatus();
if (status == Status.assessment || status == Status.followup || status == Status.end) {
canStart = false;
} else {
canStart = true;
}
return canStart;
}
use of org.olat.course.assessment.AssessmentMode.Status in project openolat by klemens.
the class AssessmentModeCoordinationServiceImpl method evaluateStatus.
@Override
public Status evaluateStatus(Date begin, int leadtime, Date end, int followup) {
Status status;
Date now = now();
Date beginWithLeadTime = assessmentModeManager.evaluateLeadTime(begin, leadtime);
Date endWithFollowupTime = assessmentModeManager.evaluateFollowupTime(end, followup);
if (beginWithLeadTime.compareTo(now) > 0) {
status = Status.none;
} else if (beginWithLeadTime.compareTo(now) <= 0 && begin.compareTo(now) > 0 && !beginWithLeadTime.equals(begin)) {
status = Status.leadtime;
} else if (begin.compareTo(now) <= 0 && end.compareTo(now) > 0) {
status = Status.assessment;
} else if (end.compareTo(now) <= 0 && endWithFollowupTime.compareTo(now) > 0) {
if (followup > 0) {
status = Status.followup;
} else {
status = Status.end;
}
} else if (endWithFollowupTime.compareTo(now) <= 0) {
status = Status.end;
} else {
status = null;
}
return status;
}
use of org.olat.course.assessment.AssessmentMode.Status in project openolat by klemens.
the class AssessmentModeCoordinationServiceImpl method manageListenersOfCoordinatedMode.
private void manageListenersOfCoordinatedMode(AssessmentMode mode) {
try {
Status status = mode.getStatus();
if (status == Status.leadtime || status == Status.assessment || status == Status.followup) {
// add listeners
CoordinatedAssessmentMode coordinateMode = coordinatedModes.get(mode.getKey());
if (coordinateMode == null) {
coordinateMode = new CoordinatedAssessmentMode(mode);
coordinatedModes.put(mode.getKey(), coordinateMode);
}
coordinatorManager.getCoordinator().getEventBus().registerFor(this, null, coordinateMode.getListenerRes());
} else if (coordinatedModes.containsKey(mode.getKey())) {
CoordinatedAssessmentMode decoordinateMode = coordinatedModes.remove(mode.getKey());
if (decoordinateMode != null) {
coordinatorManager.getCoordinator().getEventBus().deregisterFor(this, decoordinateMode.getListenerRes());
}
}
} catch (Exception e) {
log.error("", e);
}
}
use of org.olat.course.assessment.AssessmentMode.Status in project OpenOLAT by OpenOLAT.
the class ModeStatusCellRenderer method render.
@Override
public void render(Renderer renderer, StringOutput sb, Object cellValue, int row, FlexiTableComponent source, URLBuilder ubu, Translator translator) {
if (cellValue instanceof Status) {
Status status = (Status) cellValue;
renderStatus(status, sb);
} else if (cellValue instanceof EnhancedStatus) {
EnhancedStatus enStatus = (EnhancedStatus) cellValue;
renderWarning(enStatus.getWarnings(), sb);
renderStatus(enStatus.getStatus(), sb);
}
}
use of org.olat.course.assessment.AssessmentMode.Status in project OpenOLAT by OpenOLAT.
the class AssessmentModeEditController method formOK.
@Override
protected void formOK(UserRequest ureq) {
Date begin = beginEl.getDate();
Date end = endEl.getDate();
int followupTime = followupTimeEl.getIntValue();
int leadTime = leadTimeEl.getIntValue();
Status currentStatus = assessmentMode.getStatus();
if (startModeEl.isOneSelected() && startModeEl.isSelected(1)) {
// manual start don't change the status of the assessment
save(ureq, false);
} else {
Status nextStatus = modeCoordinationService.evaluateStatus(begin, leadTime, end, followupTime);
if (currentStatus == nextStatus) {
save(ureq, true);
} else {
String title = translate("confirm.status.change.title");
String text;
switch(nextStatus) {
case none:
text = translate("confirm.status.change.none");
break;
case leadtime:
text = translate("confirm.status.change.leadtime");
break;
case assessment:
text = translate("confirm.status.change.assessment");
break;
case followup:
text = translate("confirm.status.change.followup");
break;
case end:
text = translate("confirm.status.change.end");
break;
default:
text = "ERROR";
}
confirmCtrl = activateOkCancelDialog(ureq, title, text, confirmCtrl);
}
}
}
Aggregations