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(); + } +}