Search in sources :

Example 21 with Task

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);
    }
}
Also used : Task(org.olat.course.nodes.gta.Task) AssessmentEntryStatus(org.olat.modules.assessment.model.AssessmentEntryStatus)

Example 22 with Task

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;
}
Also used : Task(org.olat.course.nodes.gta.Task)

Example 23 with Task

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;
}
Also used : Task(org.olat.course.nodes.gta.Task)

Example 24 with 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;
}
Also used : Task(org.olat.course.nodes.gta.Task) TaskImpl(org.olat.course.nodes.gta.model.TaskImpl) File(java.io.File)

Example 25 with Task

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;
}
Also used : Task(org.olat.course.nodes.gta.Task) TaskProcess(org.olat.course.nodes.gta.TaskProcess) TaskImpl(org.olat.course.nodes.gta.model.TaskImpl) TaskList(org.olat.course.nodes.gta.TaskList) AssignmentResponse(org.olat.course.nodes.gta.AssignmentResponse) File(java.io.File) Date(java.util.Date) TaskDueDate(org.olat.course.nodes.gta.TaskDueDate) TaskRevisionDate(org.olat.course.nodes.gta.TaskRevisionDate) DueDate(org.olat.course.nodes.gta.model.DueDate)

Aggregations

Task (org.olat.course.nodes.gta.Task)86 TaskList (org.olat.course.nodes.gta.TaskList)36 Identity (org.olat.core.id.Identity)34 RepositoryEntry (org.olat.repository.RepositoryEntry)34 File (java.io.File)32 Test (org.junit.Test)24 GTACourseNode (org.olat.course.nodes.GTACourseNode)24 AssignmentResponse (org.olat.course.nodes.gta.AssignmentResponse)20 BusinessGroup (org.olat.group.BusinessGroup)18 TaskProcess (org.olat.course.nodes.gta.TaskProcess)16 TaskRevisionDate (org.olat.course.nodes.gta.TaskRevisionDate)14 DueDate (org.olat.course.nodes.gta.model.DueDate)10 Date (java.util.Date)8 TaskDueDate (org.olat.course.nodes.gta.TaskDueDate)8 SubmitEvent (org.olat.course.nodes.gta.ui.events.SubmitEvent)8 ArrayList (java.util.ArrayList)6 HashSet (java.util.HashSet)6 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)6 TaskImpl (org.olat.course.nodes.gta.model.TaskImpl)6 ModuleConfiguration (org.olat.modules.ModuleConfiguration)6