use of org.olat.course.nodes.gta.Task in project OpenOLAT by OpenOLAT.
the class GTAManagerImpl method selectTask.
private AssignmentResponse selectTask(Identity identity, BusinessGroup businessGroup, TaskList tasks, GTACourseNode cNode, File taskFile) {
Task currentTask;
if (businessGroup != null) {
currentTask = getTask(businessGroup, tasks);
} else {
currentTask = getTask(identity, tasks);
}
AssignmentResponse response;
if (currentTask == null) {
String taskName = taskFile.getName();
TaskList reloadedTasks = loadForUpdate(tasks);
String sampling = cNode.getModuleConfiguration().getStringValue(GTACourseNode.GTASK_SAMPLING);
if (GTACourseNode.GTASK_SAMPLING_UNIQUE.equals(sampling) && isTaskAssigned(reloadedTasks, taskName)) {
response = new AssignmentResponse(null, Status.alreadyAssigned);
} else {
TaskProcess nextStep = nextStep(TaskProcess.assignment, cNode);
TaskImpl task = createTask(taskName, reloadedTasks, nextStep, businessGroup, identity, cNode);
task.setAssignmentDate(new Date());
dbInstance.getCurrentEntityManager().persist(task);
syncAssessmentEntry(task, cNode, Role.user);
response = new AssignmentResponse(task, Status.ok);
}
dbInstance.commit();
} else {
if (currentTask.getTaskStatus() == TaskProcess.assignment) {
TaskProcess nextStep = nextStep(currentTask.getTaskStatus(), cNode);
((TaskImpl) currentTask).setTaskStatus(nextStep);
if (taskFile != null) {
((TaskImpl) currentTask).setTaskName(taskFile.getName());
}
}
currentTask = dbInstance.getCurrentEntityManager().merge(currentTask);
syncAssessmentEntry((TaskImpl) currentTask, cNode, Role.user);
response = new AssignmentResponse(currentTask, Status.ok);
}
return response;
}
use of org.olat.course.nodes.gta.Task in project OpenOLAT by OpenOLAT.
the class GTAManagerImpl method getDetails.
@Override
public String getDetails(Identity assessedIdentity, RepositoryEntryRef entry, GTACourseNode cNode) {
String details;
if (cNode.getModuleConfiguration().getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT)) {
List<Task> tasks = getTasks(assessedIdentity, entry, cNode);
if (tasks == null || tasks.isEmpty()) {
details = null;
} else {
StringBuilder sb = new StringBuilder();
for (Task task : tasks) {
if (sb.length() > 0)
sb.append(", ");
if (sb.length() > 64) {
sb.append("...");
break;
}
String taskName = task.getTaskName();
if (StringHelper.containsNonWhitespace(taskName)) {
sb.append(StringHelper.escapeHtml(taskName));
}
}
details = sb.length() == 0 ? null : sb.toString();
}
} else {
details = null;
}
return details;
}
use of org.olat.course.nodes.gta.Task in project OpenOLAT by OpenOLAT.
the class ConvertToGTACourseNode method setTaskStatus.
private void setTaskStatus(TaskList taskList, Identity assessedIdentity, TaskProcess current, GTACourseNode gtaNode) {
TaskProcess process = gtaManager.nextStep(current, gtaNode);
Task task = gtaManager.getTask(assessedIdentity, taskList);
if (task == null) {
gtaManager.createTask(null, taskList, process, null, assessedIdentity, gtaNode);
} else {
gtaManager.updateTask(task, process, gtaNode, Role.auto);
}
}
use of org.olat.course.nodes.gta.Task in project OpenOLAT by OpenOLAT.
the class GTACoachedGroupListController method doEditDueDate.
private void doEditDueDate(UserRequest ureq, CoachedGroupRow row) {
if (editDueDatesCtrl != null)
return;
Task task;
BusinessGroup assessedGroup = row.getBusinessGroup();
RepositoryEntry entry = coachCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
if (row.getTask() == null) {
TaskProcess firstStep = gtaManager.firstStep(gtaNode);
TaskList taskList = gtaManager.getTaskList(entry, gtaNode);
task = gtaManager.createAndPersistTask(null, taskList, firstStep, assessedGroup, null, gtaNode);
} else {
task = gtaManager.getTask(row.getTask());
}
editDueDatesCtrl = new EditDueDatesController(ureq, getWindowControl(), task, null, assessedGroup, gtaNode, entry, courseEnv);
listenTo(editDueDatesCtrl);
String title = translate("duedates.user", new String[] { StringHelper.escapeHtml(assessedGroup.getName()) });
cmc = new CloseableModalController(getWindowControl(), "close", editDueDatesCtrl.getInitialComponent(), true, title, true);
listenTo(cmc);
cmc.activate();
}
use of org.olat.course.nodes.gta.Task in project OpenOLAT by OpenOLAT.
the class GTAParticipantRevisionAndCorrectionsController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (uploadRevisionsCtrl == source) {
if (event instanceof SubmitEvent) {
Task aTask = uploadRevisionsCtrl.getAssignedTask();
gtaManager.log("Revision", (SubmitEvent) event, aTask, getIdentity(), getIdentity(), assessedGroup, courseEnv, gtaNode);
} else if (event == Event.DONE_EVENT) {
fireEvent(ureq, Event.DONE_EVENT);
}
submitRevisionButton.setCustomEnabledLinkCSS(uploadRevisionsCtrl.hasUploadDocuments() ? "btn btn-primary" : "btn btn-default");
} else if (confirmSubmitDialog == source) {
if (DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) {
doSubmitRevisions();
fireEvent(ureq, Event.DONE_EVENT);
}
cleanUp();
}
super.event(ureq, source, event);
}
Aggregations