use of org.olat.course.nodes.gta.Task in project openolat by klemens.
the class OLATUpgrade_11_0_0 method processAssessmentPropertyForGTA.
private void processAssessmentPropertyForGTA(Identity assessedIdentity, AssessmentEntryImpl entry, GTACourseNode cNode, RepositoryEntry courseEntry) {
List<Task> tasks = gtaManager.getTasks(assessedIdentity, courseEntry, cNode);
if (tasks != null && tasks.size() > 0) {
Task task = tasks.get(0);
AssessmentEntryStatus status = gtaManager.convertToAssessmentEntrystatus(task, cNode);
entry.setStatus(status.name());
String details = gtaManager.getDetails(assessedIdentity, courseEntry, cNode);
entry.setDetails(details);
}
}
use of org.olat.course.nodes.gta.Task in project openolat by klemens.
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 klemens.
the class GTAManagerImpl method createAndPersistTask.
@Override
public Task createAndPersistTask(String taskName, TaskList taskList, TaskProcess status, BusinessGroup assessedGroup, Identity assessedIdentity, GTACourseNode cNode) {
Task task = createTask(taskName, taskList, status, assessedGroup, assessedIdentity, cNode);
dbInstance.getCurrentEntityManager().persist(task);
return task;
}
use of org.olat.course.nodes.gta.Task in project openolat by klemens.
the class GTAManagerImpl method resetTask.
@Override
public Task resetTask(Task task, GTACourseNode cNode, CourseEnvironment courseEnv) {
TaskImpl taskImpl = (TaskImpl) task;
taskImpl.setTaskName(null);
taskImpl.setAllowResetDate(null);
Task updatedTask = updateTask(task, TaskProcess.assignment, cNode, Role.user);
File submissionDir = null;
if (updatedTask.getBusinessGroup() != null) {
submissionDir = getSubmitDirectory(courseEnv, cNode, updatedTask.getBusinessGroup());
} else if (updatedTask.getIdentity() != null) {
submissionDir = getSubmitDirectory(courseEnv, cNode, updatedTask.getIdentity());
}
if (submissionDir != null) {
FileUtils.deleteDirsAndFiles(submissionDir, true, false);
}
return updatedTask;
}
use of org.olat.course.nodes.gta.Task in project openolat by klemens.
the class GTAManagerImpl method assignTaskAutomatically.
private AssignmentResponse assignTaskAutomatically(TaskList tasks, BusinessGroup businessGroup, Identity identity, CourseEnvironment courseEnv, GTACourseNode cNode) {
Task currentTask;
if (businessGroup != null) {
currentTask = getTask(businessGroup, tasks);
} else {
currentTask = getTask(identity, tasks);
}
AssignmentResponse response;
if (currentTask == null) {
TaskList reloadedTasks = loadForUpdate(tasks);
File tasksFolder = getTasksDirectory(courseEnv, cNode);
String[] taskFiles = tasksFolder.list(SystemFilenameFilter.FILES_ONLY);
List<String> assignedFilenames = getAssignedTasks(reloadedTasks);
String taskName;
if (GTACourseNode.GTASK_SAMPLING_UNIQUE.equals(cNode.getModuleConfiguration().get(GTACourseNode.GTASK_SAMPLING))) {
taskName = nextUnique(taskFiles, assignedFilenames);
} else {
taskName = nextSlotRoundRobin(taskFiles, assignedFilenames);
}
if (taskName == null) {
response = AssignmentResponse.NO_MORE_TASKS;
} else {
TaskProcess nextStep = nextStep(TaskProcess.assignment, cNode);
TaskImpl task = createTask(taskName, reloadedTasks, nextStep, businessGroup, identity, cNode);
task.setAssignmentDate(new Date());
dbInstance.getCurrentEntityManager().persist(task);
dbInstance.commit();
syncAssessmentEntry((TaskImpl) currentTask, cNode, Role.user);
response = new AssignmentResponse(task, Status.ok);
}
} else {
if (currentTask.getTaskStatus() == TaskProcess.assignment) {
((TaskImpl) currentTask).setTaskStatus(TaskProcess.submit);
}
currentTask = dbInstance.getCurrentEntityManager().merge(currentTask);
syncAssessmentEntry((TaskImpl) currentTask, cNode, Role.user);
response = new AssignmentResponse(currentTask, Status.ok);
}
return response;
}
Aggregations