From e963bee932917da2d21a0680bb3996b736896e37 Mon Sep 17 00:00:00 2001
From: Tom Zhao <tom.zhao@dsv.su.se>
Date: Thu, 3 Apr 2025 12:56:20 +0200
Subject: [PATCH] 87: Use other event so no notification will go

---
 .../milestones/service/MilestoneActivator.java     |  6 ++++++
 .../split/SplitOrRestartProjectServiceImpl.java    | 13 +++++++------
 .../RoughDraftApprovalApprovedClonedEvent.java     | 14 ++++++++++++++
 3 files changed, 27 insertions(+), 6 deletions(-)
 create mode 100644 core/src/main/java/se/su/dsv/scipro/reviewing/RoughDraftApprovalApprovedClonedEvent.java

diff --git a/core/src/main/java/se/su/dsv/scipro/milestones/service/MilestoneActivator.java b/core/src/main/java/se/su/dsv/scipro/milestones/service/MilestoneActivator.java
index 145ee9d096..7a518492fc 100644
--- a/core/src/main/java/se/su/dsv/scipro/milestones/service/MilestoneActivator.java
+++ b/core/src/main/java/se/su/dsv/scipro/milestones/service/MilestoneActivator.java
@@ -21,6 +21,7 @@ import se.su.dsv.scipro.peer.SecondPeerReviewCompletedEvent;
 import se.su.dsv.scipro.project.Project;
 import se.su.dsv.scipro.report.SupervisorGradingReportSubmittedEvent;
 import se.su.dsv.scipro.reviewing.FinalSeminarApprovalApprovedEvent;
+import se.su.dsv.scipro.reviewing.RoughDraftApprovalApprovedClonedEvent;
 import se.su.dsv.scipro.reviewing.RoughDraftApprovalApprovedEvent;
 import se.su.dsv.scipro.reviewing.RoughDraftApprovalRequestedEvent;
 import se.su.dsv.scipro.system.User;
@@ -136,6 +137,11 @@ public class MilestoneActivator {
         activateProjectMilestone(Set.of(event.getName()), event.getProject());
     }
 
+    @Subscribe
+    public void reviewerApprovalApprovedClone(RoughDraftApprovalApprovedClonedEvent event) {
+        activateProjectMilestone(Set.of(event.getName()), event.getProject());
+    }
+
     @Subscribe
     public void finalSeminarThesisDeleted(FinalSeminarThesisDeletedEvent event) {
         deactivateProjectMilestone(Set.of("FinalSeminarThesisUploaded"), event.getFinalSeminar().getProject());
diff --git a/core/src/main/java/se/su/dsv/scipro/project/split/SplitOrRestartProjectServiceImpl.java b/core/src/main/java/se/su/dsv/scipro/project/split/SplitOrRestartProjectServiceImpl.java
index 2f727f4471..9bddb9433a 100644
--- a/core/src/main/java/se/su/dsv/scipro/project/split/SplitOrRestartProjectServiceImpl.java
+++ b/core/src/main/java/se/su/dsv/scipro/project/split/SplitOrRestartProjectServiceImpl.java
@@ -3,20 +3,21 @@ package se.su.dsv.scipro.project.split;
 import com.google.common.eventbus.EventBus;
 import jakarta.inject.Inject;
 import jakarta.transaction.Transactional;
-import java.time.Instant;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
 import se.su.dsv.scipro.finalseminar.FinalSeminarService;
 import se.su.dsv.scipro.project.Project;
 import se.su.dsv.scipro.project.ProjectService;
 import se.su.dsv.scipro.project.ProjectStatus;
 import se.su.dsv.scipro.project.QProject;
 import se.su.dsv.scipro.reviewing.RoughDraftApproval;
-import se.su.dsv.scipro.reviewing.RoughDraftApprovalApprovedEvent;
+import se.su.dsv.scipro.reviewing.RoughDraftApprovalApprovedClonedEvent;
 import se.su.dsv.scipro.reviewing.RoughDraftApprovalService;
 import se.su.dsv.scipro.system.User;
 
+import java.time.Instant;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
 public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectService {
 
     private final ProjectService projectService;
@@ -110,7 +111,7 @@ public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectSe
                 RoughDraftApproval clonedRda = roughDraftApprovalService.saveCloned(rda.cloneToProject(childProject));
 
                 // Send event to eventBus to synchronize eventual Phase Two Approval with MileStone
-                eventBus.post(new RoughDraftApprovalApprovedEvent(clonedRda));
+                eventBus.post(new RoughDraftApprovalApprovedClonedEvent(clonedRda));
             }
         }
 
diff --git a/core/src/main/java/se/su/dsv/scipro/reviewing/RoughDraftApprovalApprovedClonedEvent.java b/core/src/main/java/se/su/dsv/scipro/reviewing/RoughDraftApprovalApprovedClonedEvent.java
new file mode 100644
index 0000000000..d403a44d07
--- /dev/null
+++ b/core/src/main/java/se/su/dsv/scipro/reviewing/RoughDraftApprovalApprovedClonedEvent.java
@@ -0,0 +1,14 @@
+package se.su.dsv.scipro.reviewing;
+
+import se.su.dsv.scipro.project.Project;
+
+public record RoughDraftApprovalApprovedClonedEvent(ReviewerApproval process) {
+    public Project getProject() {
+        return process.getProject();
+    }
+
+    public String getName() {
+        ReviewerApproval.Step step = process.getStep();
+        return step.getDeclaringClass().getSimpleName() + "." + step.name();
+    }
+}