From 1337bbb6abace21672808276ae8139b71d929a7e Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 20 Dec 2023 10:50:41 +0100 Subject: [PATCH] Only display unstarted schedules --- .../core/api/controller/ScheduleController.java | 14 +++++++++----- .../main/java/core/entities/timemanager/Task.java | 4 ++++ .../java/core/services/TaskScheduleService.java | 4 ++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/core/api/controller/ScheduleController.java b/backend/src/main/java/core/api/controller/ScheduleController.java index 3949347..0828926 100644 --- a/backend/src/main/java/core/api/controller/ScheduleController.java +++ b/backend/src/main/java/core/api/controller/ScheduleController.java @@ -3,10 +3,7 @@ package core.api.controller; import core.api.models.auth.SimpleStatusResponse; import core.api.models.timemanager.taskSchedule.*; -import core.api.models.timemanager.taskSchedule.scheduleInfos.AdvancedScheduleFieldInfo; -import core.api.models.timemanager.taskSchedule.scheduleInfos.AdvancedScheduleInfo; -import core.api.models.timemanager.taskSchedule.scheduleInfos.BasicScheduleFieldInfo; -import core.api.models.timemanager.taskSchedule.scheduleInfos.ScheduleFieldInfo; +import core.api.models.timemanager.taskSchedule.scheduleInfos.*; import core.entities.timemanager.AbstractSchedule; import core.entities.timemanager.AdvancedTaskSchedule; import core.entities.timemanager.BasicTaskSchedule; @@ -50,7 +47,14 @@ public class ScheduleController { } List taskSchedules = permissionResult.getResult().getBasicTaskSchedules(); - return ResponseEntity.ok(taskSchedules.stream().map(AbstractSchedule::toScheduleInfo).toList()); + List scheduleInfos = new ArrayList<>(); + for(AbstractSchedule schedule : taskSchedules) { + //Filter completed schedules out + if(!schedule.isCompleted()) { + scheduleInfos.add(schedule.toScheduleInfo()); + } + } + return ResponseEntity.ok(scheduleInfos); } @PutMapping("/schedules/{taskID}/basic") diff --git a/backend/src/main/java/core/entities/timemanager/Task.java b/backend/src/main/java/core/entities/timemanager/Task.java index 940478f..89562c6 100644 --- a/backend/src/main/java/core/entities/timemanager/Task.java +++ b/backend/src/main/java/core/entities/timemanager/Task.java @@ -207,4 +207,8 @@ public class Task { } return false; } + + public void increaseWorkTime(long minutes) { + this.workTime += (int) minutes; + } } diff --git a/backend/src/main/java/core/services/TaskScheduleService.java b/backend/src/main/java/core/services/TaskScheduleService.java index 8265759..2df2e3f 100644 --- a/backend/src/main/java/core/services/TaskScheduleService.java +++ b/backend/src/main/java/core/services/TaskScheduleService.java @@ -14,6 +14,7 @@ import core.repositories.timemanager.TaskRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; @@ -164,6 +165,9 @@ public class TaskScheduleService { if(schedule.getStartTime() != null && schedule.getStopTime() == null) { schedule.setStopTime(LocalDateTime.now()); scheduleRepository.save(schedule); + Duration scheduleDuration = Duration.between(schedule.getStartTime(), schedule.getStopTime()); + schedule.getTask().increaseWorkTime(scheduleDuration.toMinutes()); + taskRepository.save(schedule.getTask()); } if(finish) {