87: Use other event so no notification will go

This commit is contained in:
Tom Zhao 2025-04-03 12:56:20 +02:00
parent 8465d4c687
commit e963bee932
3 changed files with 27 additions and 6 deletions
core/src/main/java/se/su/dsv/scipro

@ -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());

@ -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));
}
}

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