diff --git a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java index 9a297e84112d4ab026ddda911428cc86c3fc52c9..1b94ad2d9abb00b16a0380934a645d98ca9453ca 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java +++ b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java @@ -20,6 +20,7 @@ package org.olat.admin.user.bulkChange; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -52,8 +53,6 @@ import org.olat.core.util.Util; import org.olat.user.UserManager; import org.springframework.beans.factory.annotation.Autowired; -import edu.emory.mathcs.backport.java.util.Collections; - /** * Description:<br> * first step: select attributes, which should be changed diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamAdminController.java b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamAdminController.java index 906d7470b2281257f09f3a745edb0820fd3dfdcc..9e61db4752d223c8fe041df343ce3f775b5abf02 100644 --- a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamAdminController.java +++ b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamAdminController.java @@ -24,6 +24,8 @@ import static org.olat.core.gui.translator.TranslatorHelper.translateAll; import static org.olat.course.nodes.livestream.ui.LiveStreamUIFactory.validateInteger; import static org.olat.course.nodes.livestream.ui.LiveStreamUIFactory.validateMandatory; +import java.util.Arrays; + import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; @@ -40,8 +42,6 @@ import org.olat.course.nodes.livestream.LiveStreamModule; import org.olat.course.nodes.livestream.paella.PlayerProfile; import org.springframework.beans.factory.annotation.Autowired; -import edu.emory.mathcs.backport.java.util.Arrays; - /** * * Initial date: 5 Jun 2019<br> diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamConfigController.java b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamConfigController.java index 638740ebdd5876d0e7957ff1403443cef9e22366..41627e160fc4ff15cc033ebf1d1f0f23a23ab8e1 100644 --- a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamConfigController.java +++ b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamConfigController.java @@ -23,6 +23,8 @@ import static org.olat.core.gui.components.util.KeyValues.entry; import static org.olat.core.gui.translator.TranslatorHelper.translateAll; import static org.olat.course.nodes.livestream.ui.LiveStreamUIFactory.validateInteger; +import java.util.Arrays; + import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; @@ -39,8 +41,6 @@ import org.olat.course.nodes.livestream.paella.PlayerProfile; import org.olat.modules.ModuleConfiguration; import org.springframework.beans.factory.annotation.Autowired; -import edu.emory.mathcs.backport.java.util.Arrays; - /** * * Initial date: 23.05.2019<br> diff --git a/src/main/java/org/olat/modules/grading/manager/GradingAssignmentDAO.java b/src/main/java/org/olat/modules/grading/manager/GradingAssignmentDAO.java index 7f569e1049eb4e406160408aa4c6c6db363a9ffe..75be14e7d9f9886f786cbd72be2163b36eaf7cfb 100644 --- a/src/main/java/org/olat/modules/grading/manager/GradingAssignmentDAO.java +++ b/src/main/java/org/olat/modules/grading/manager/GradingAssignmentDAO.java @@ -404,7 +404,14 @@ public class GradingAssignmentDAO { return assignments.isEmpty() ? null : assignments.get(0); } - public List<GradingAssignment> getGradingAssignmentsToRemind() { + /** + * This is not an exact method! check the configuration before send remidners. + * + * @return A list of grading assignments where the status is assigned or + * in process, the assignment was done and the configuration defined some + * reminders date. + */ + public List<GradingAssignment> getGradingAssignmentsOpenWithPotentialToRemind() { QueryBuilder sb = new QueryBuilder(); sb.append("select assignment from gradingassignment as assignment") .append(" inner join assignment.referenceEntry referenceEntry") @@ -413,9 +420,9 @@ public class GradingAssignmentDAO { .append(" and assignment.status ").in(GradingAssignmentStatus.assigned, GradingAssignmentStatus.inProcess) .append(" and assignment.assignmentDate is not null") .append(" and (") - .append(" (assignment.reminder1Date is null and assignment.assignmentDate <= cast((current_date - cast(config.firstReminder as integer)) as date))") + .append(" (assignment.reminder1Date is null and assignment.assignmentDate <= current_date)") .append(" or") - .append(" (assignment.reminder2Date is null and assignment.assignmentDate <= cast((current_date - cast(config.secondReminder as integer)) as date))") + .append(" (assignment.reminder2Date is null and assignment.assignmentDate <= current_date)") .append(" )"); return dbInstance.getCurrentEntityManager() diff --git a/src/main/java/org/olat/modules/grading/manager/GradingServiceImpl.java b/src/main/java/org/olat/modules/grading/manager/GradingServiceImpl.java index 6c29abe8d31f2b90706119c0780c144d501bdf82..90fcb2907bf182a0267a0c58766ba10441fe4942 100644 --- a/src/main/java/org/olat/modules/grading/manager/GradingServiceImpl.java +++ b/src/main/java/org/olat/modules/grading/manager/GradingServiceImpl.java @@ -22,6 +22,7 @@ package org.olat.modules.grading.manager; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -101,8 +102,6 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import edu.emory.mathcs.backport.java.util.Collections; - /** * * Initial date: 13 janv. 2020<br> @@ -557,7 +556,7 @@ public class GradingServiceImpl implements GradingService, UserDataDeletable, Re @Override public void sendReminders() { // the query returns only an approximation because of the working days part of the configuration - List<GradingAssignment> inexactList = gradingAssignmentDao.getGradingAssignmentsToRemind(); + List<GradingAssignment> inexactList = gradingAssignmentDao.getGradingAssignmentsOpenWithPotentialToRemind(); for(GradingAssignment assignment:inexactList) { try { RepositoryEntryGradingConfiguration config = gradingConfigurationDao.getConfiguration(assignment.getReferenceEntry()); diff --git a/src/test/java/org/olat/modules/grading/manager/GraderToIdentityDAOTest.java b/src/test/java/org/olat/modules/grading/manager/GraderToIdentityDAOTest.java index 36ffb853a52f40242b811ea642553e7e5da75a79..60115b3ce8c8789621220326b995bb1fa5d8c828 100644 --- a/src/test/java/org/olat/modules/grading/manager/GraderToIdentityDAOTest.java +++ b/src/test/java/org/olat/modules/grading/manager/GraderToIdentityDAOTest.java @@ -19,6 +19,7 @@ */ package org.olat.modules.grading.manager; +import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -50,8 +51,6 @@ import org.olat.user.AbsenceLeave; import org.olat.user.manager.AbsenceLeaveDAO; import org.springframework.beans.factory.annotation.Autowired; -import edu.emory.mathcs.backport.java.util.Arrays; - /** * * Initial date: 21 janv. 2020<br> diff --git a/src/test/java/org/olat/modules/grading/manager/GradingAssignmentDAOTest.java b/src/test/java/org/olat/modules/grading/manager/GradingAssignmentDAOTest.java index 88246e0c2166debe3eb57e9c9018ce227562a810..0f2aa7fa5eae5ca07877aa755702a39a1f800932 100644 --- a/src/test/java/org/olat/modules/grading/manager/GradingAssignmentDAOTest.java +++ b/src/test/java/org/olat/modules/grading/manager/GradingAssignmentDAOTest.java @@ -422,11 +422,11 @@ public class GradingAssignmentDAOTest extends OlatTestCase { config.setSecondReminderBody("Content"); gradingConfigurationDao.updateConfiguration(config); - assignment.setAssignmentDate(removeDays(4)); + assignment.setAssignmentDate(removeDays(5)); assignment = gradingAssignmentDao.updateAssignment(assignment); dbInstance.commitAndCloseSession(); - List<GradingAssignment> assignmentsToRemind = gradingAssignmentDao.getGradingAssignmentsToRemind(); + List<GradingAssignment> assignmentsToRemind = gradingAssignmentDao.getGradingAssignmentsOpenWithPotentialToRemind(); Assert.assertNotNull(assignmentsToRemind); Assert.assertTrue(assignmentsToRemind.contains(assignment)); }