From 57be3393c9ce5712e74bb569430b958905d00743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Fri, 19 Apr 2024 09:51:14 +0200 Subject: [PATCH 1/3] Distribute cloned tasks on weeks --- backend/src/main/java/core/services/TaskSeriesService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/core/services/TaskSeriesService.java b/backend/src/main/java/core/services/TaskSeriesService.java index fbfbf22..a2094c8 100644 --- a/backend/src/main/java/core/services/TaskSeriesService.java +++ b/backend/src/main/java/core/services/TaskSeriesService.java @@ -62,6 +62,7 @@ public class TaskSeriesService { List clonedSchedules = new ArrayList<>(); LocalDate currentDate = rootTask.getStartDate().plusDays(offsetMap.get(rootTask)); + long index = 1; while(currentDate.isBefore(endingDate)) { var cloneResult = rootTask.cloneTask(); Task clonedRootTask = cloneResult.getValue00(); @@ -73,10 +74,11 @@ public class TaskSeriesService { taskSerie.addItem(item); } - clonedRootTask.shiftTask(offsetMap.get(rootTask)); + clonedRootTask.shiftTask(index * offsetMap.get(rootTask)); currentDate = currentDate.plusDays(offsetMap.get(rootTask)); itemIndex += offsetMap.size(); + index++; } return new Tupel<>(clonedTasks, clonedSchedules); -- 2.34.1 From dd58ec65203480a143606fd6685ac355ed32ee74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Fri, 19 Apr 2024 09:59:43 +0200 Subject: [PATCH 2/3] Repare indecing (duplicate 00): Call RepeatTask with itemIndex 1, as the root task gets itemIndex 0 --- backend/src/main/java/core/services/TaskSeriesService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/java/core/services/TaskSeriesService.java b/backend/src/main/java/core/services/TaskSeriesService.java index a2094c8..28c4bdf 100644 --- a/backend/src/main/java/core/services/TaskSeriesService.java +++ b/backend/src/main/java/core/services/TaskSeriesService.java @@ -107,7 +107,7 @@ public class TaskSeriesService { HashMap offsetMap = new HashMap<>(); offsetMap.put(rootTask, taskRepeatInfo.getOffset()); - var repeatingResult = repeatTask(rootTask, taskRepeatInfo.getEndingDate(), offsetMap, taskSerie, 0); + var repeatingResult = repeatTask(rootTask, taskRepeatInfo.getEndingDate(), offsetMap, taskSerie, 1); List clonedTasks = new ArrayList<>(repeatingResult.getValue00()); List clonedSchedules = new ArrayList<>(repeatingResult.getValue01()); -- 2.34.1 From 952dddff2e094c050f2647ac6ef86337f10b2945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Fri, 19 Apr 2024 10:14:23 +0200 Subject: [PATCH 3/3] Assign cloned schedule to cloned task and not to root task --- backend/src/main/java/core/entities/timemanager/Task.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/main/java/core/entities/timemanager/Task.java b/backend/src/main/java/core/entities/timemanager/Task.java index 41e68a9..0afa064 100644 --- a/backend/src/main/java/core/entities/timemanager/Task.java +++ b/backend/src/main/java/core/entities/timemanager/Task.java @@ -75,6 +75,8 @@ public class Task { clonedSchedules.add(clonedSchedule); clonedTask.getBasicTaskSchedules().clear(); clonedTask.getBasicTaskSchedules().add(clonedSchedule); + + clonedSchedule.setTask(clonedTask); } Set clonedSubtasks = new HashSet<>(); -- 2.34.1