use of org.olat.course.assessment.AssessmentMode.Status in project OpenOLAT by OpenOLAT.
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 OpenOLAT.
the class AssessmentModeCoordinationServiceImpl method canStop.
@Override
public boolean canStop(AssessmentMode assessmentMode) {
boolean canStop;
Status status = assessmentMode.getStatus();
if (status == Status.leadtime || status == Status.assessment) {
canStop = true;
} else {
canStop = false;
}
return canStop;
}
use of org.olat.course.assessment.AssessmentMode.Status in project OpenOLAT by OpenOLAT.
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 AssessmentModeCoordinationServiceImpl method ensureStatusOfMode.
private AssessmentMode ensureStatusOfMode(AssessmentMode mode, Status status) {
Status currentStatus = mode.getStatus();
if (currentStatus == null || currentStatus != status) {
mode.setStatus(status);
mode = dbInstance.getCurrentEntityManager().merge(mode);
if (status == Status.leadtime || status == Status.assessment) {
warmUpAssessment(mode);
}
dbInstance.commit();
}
return mode;
}
use of org.olat.course.assessment.AssessmentMode.Status in project OpenOLAT by OpenOLAT.
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;
}
Aggregations