Search in sources :

Example 41 with DueDate

use of org.olat.course.nodes.gta.model.DueDate in project openolat by klemens.

the class EditMultipleDueDatesController method initForm.

@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
    ModuleConfiguration config = gtaNode.getModuleConfiguration();
    assignmentDueDateEl = uifactory.addDateChooser("assignment.duedate", null, formLayout);
    assignmentDueDateEl.setDateChooserTimeEnabled(true);
    DueDate standardAssignmentDueDate = gtaManager.getAssignmentDueDate(null, null, null, gtaNode, courseEntry, false);
    setDueDateExplanation(assignmentDueDateEl, standardAssignmentDueDate);
    assignmentDueDateEl.setVisible(config.getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT));
    submissionDueDateEl = uifactory.addDateChooser("submission.duedate", null, formLayout);
    submissionDueDateEl.setDateChooserTimeEnabled(true);
    DueDate standardSubmissionDueDate = gtaManager.getSubmissionDueDate(null, null, null, gtaNode, courseEntry, false);
    setDueDateExplanation(submissionDueDateEl, standardSubmissionDueDate);
    boolean submissionDeadline = config.getBooleanSafe(GTACourseNode.GTASK_SUBMIT);
    submissionDueDateEl.setVisible(submissionDeadline);
    if (submissionDeadline) {
        for (Task task : tasks) {
            if (task.getTaskStatus().ordinal() > TaskProcess.submit.ordinal()) {
                StaticTextElement warningReopenEl = uifactory.addStaticTextElement("reopen", translate("warning.reopen"), formLayout);
                warningReopenEl.setElementCssClass("o_gta_reopen_warning");
                warningReopenEl.setLabel(null, null);
                break;
            }
        }
    }
    revisionDueDateEl = uifactory.addDateChooser("revisions.duedate", null, formLayout);
    revisionDueDateEl.setDateChooserTimeEnabled(true);
    revisionDueDateEl.setVisible(config.getBooleanSafe(GTACourseNode.GTASK_REVISION_PERIOD));
    solutionDueDateEl = uifactory.addDateChooser("solution.duedate", null, formLayout);
    solutionDueDateEl.setDateChooserTimeEnabled(true);
    DueDate standardSolutionDueDate = gtaManager.getSolutionDueDate(null, null, null, gtaNode, courseEntry, false);
    setDueDateExplanation(solutionDueDateEl, standardSolutionDueDate);
    solutionDueDateEl.setVisible(config.getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION));
    FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
    formLayout.add(buttonsCont);
    uifactory.addFormCancelButton("cancel", buttonsCont, ureq, getWindowControl());
    uifactory.addFormSubmitButton("save", buttonsCont);
}
Also used : Task(org.olat.course.nodes.gta.Task) ModuleConfiguration(org.olat.modules.ModuleConfiguration) FormLayoutContainer(org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer) StaticTextElement(org.olat.core.gui.components.form.flexible.elements.StaticTextElement) DueDate(org.olat.course.nodes.gta.model.DueDate) TaskDueDate(org.olat.course.nodes.gta.TaskDueDate)

Example 42 with DueDate

use of org.olat.course.nodes.gta.model.DueDate in project openolat by klemens.

the class GTAAbstractController method stepAssignment.

protected Task stepAssignment(@SuppressWarnings("unused") UserRequest ureq, Task assignedTask) {
    DueDate dueDate = getAssignementDueDate(assignedTask);
    if (dueDate != null) {
        if (dueDate.getDueDate() != null) {
            Date date = dueDate.getDueDate();
            String dateAsString = formatDueDate(dueDate, true);
            mainVC.contextPut("assignmentDueDate", dateAsString);
            mainVC.contextRemove("assignmentDueDateMsg");
            if (assignedTask != null && StringHelper.containsNonWhitespace(assignedTask.getTaskName()) && assignedTask.getTaskStatus() == TaskProcess.assignment && date.compareTo(new Date()) < 0) {
                // push to the next step if the task is blocked in assignment (it's a security)
                assignedTask = gtaManager.nextStep(assignedTask, gtaNode, Role.auto);
            }
        } else if (dueDate.getMessageKey() != null) {
            mainVC.contextPut("assignmentDueDateMsg", translate(dueDate.getMessageKey(), dueDate.getMessageArg()));
            mainVC.contextRemove("assignmentDueDate");
        }
    }
    return assignedTask;
}
Also used : DueDate(org.olat.course.nodes.gta.model.DueDate) Date(java.util.Date) DueDate(org.olat.course.nodes.gta.model.DueDate)

Example 43 with DueDate

use of org.olat.course.nodes.gta.model.DueDate in project openolat by klemens.

the class GTAAbstractController method formatDueDate.

/**
 * User friendly format, 2015-06-20 00:00 will be rendered as 2015-06-20
 * if @param userDeadLine is false (for solution,e.g) and 2015-06-20
 * if @param userDeadLine is true (meaning the user have the whole day
 * to do the job until the deadline at midnight).
 * @param dueDate
 * @param user deadline
 * @return
 */
protected String formatDueDate(DueDate dueDate, boolean userDeadLine) {
    Date date = dueDate.getDueDate();
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    String formattedDate;
    if (cal.get(Calendar.HOUR_OF_DAY) == 0 && cal.get(Calendar.MINUTE) == 0) {
        if (userDeadLine) {
            cal.add(Calendar.DATE, -1);
        }
        formattedDate = Formatter.getInstance(getLocale()).formatDate(cal.getTime());
    } else {
        formattedDate = Formatter.getInstance(getLocale()).formatDateAndTime(date);
    }
    return formattedDate;
}
Also used : Calendar(java.util.Calendar) Date(java.util.Date) DueDate(org.olat.course.nodes.gta.model.DueDate)

Example 44 with DueDate

use of org.olat.course.nodes.gta.model.DueDate in project openolat by klemens.

the class GTAAbstractController method stepRevision.

protected Task stepRevision(@SuppressWarnings("unused") UserRequest ureq, Task assignedTask) {
    if (assignedTask != null && assignedTask.getRevisionsDueDate() != null) {
        Date date = assignedTask.getRevisionsDueDate();
        String dateAsString = formatDueDate(new DueDate(false, date), false);
        mainVC.contextPut("revisionDueDate", dateAsString);
        if (assignedTask != null && assignedTask.getTaskStatus() == TaskProcess.revision && date.compareTo(new Date()) < 0) {
            // push to the next step
            int numOfDocs = getNumberOfRevisionDocuments(assignedTask);
            assignedTask = gtaManager.submitRevisions(assignedTask, gtaNode, numOfDocs, Role.auto);
            doUpdateAttempts();
        }
    }
    return assignedTask;
}
Also used : DueDate(org.olat.course.nodes.gta.model.DueDate) Date(java.util.Date) DueDate(org.olat.course.nodes.gta.model.DueDate)

Aggregations

DueDate (org.olat.course.nodes.gta.model.DueDate)44 Date (java.util.Date)38 TaskRevisionDate (org.olat.course.nodes.gta.TaskRevisionDate)14 TaskDueDate (org.olat.course.nodes.gta.TaskDueDate)12 RepositoryEntry (org.olat.repository.RepositoryEntry)10 File (java.io.File)6 VFSContainer (org.olat.core.util.vfs.VFSContainer)6 ArrayList (java.util.ArrayList)4 Calendar (java.util.Calendar)4 HashMap (java.util.HashMap)4 StaticTextElement (org.olat.core.gui.components.form.flexible.elements.StaticTextElement)4 FormLayoutContainer (org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer)4 TaskLight (org.olat.course.nodes.gta.TaskLight)4 ModuleConfiguration (org.olat.modules.ModuleConfiguration)4 BigDecimal (java.math.BigDecimal)2 List (java.util.List)2 IdentityRef (org.olat.basesecurity.IdentityRef)2 IdentityRefImpl (org.olat.basesecurity.model.IdentityRefImpl)2 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)2 VelocityContainer (org.olat.core.gui.components.velocity.VelocityContainer)2