87: Save cloned RoughDraftApproval
This commit is contained in:
parent
8a050491f9
commit
57774b1c32
core/src/main/java/se/su/dsv/scipro
@ -817,9 +817,10 @@ public class CoreConfig {
|
||||
public SplitOrRestartProjectServiceImpl SplitOrRestartProjectService(
|
||||
ProjectService projectService,
|
||||
FinalSeminarService finalSeminarService,
|
||||
RoughDraftApprovalService roughDraftApprovalService
|
||||
RoughDraftApprovalService roughDraftApprovalService,
|
||||
EventBus eventBus
|
||||
) {
|
||||
return new SplitOrRestartProjectServiceImpl(projectService, finalSeminarService, roughDraftApprovalService);
|
||||
return new SplitOrRestartProjectServiceImpl(projectService, finalSeminarService, roughDraftApprovalService, eventBus);
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
@ -1,35 +1,41 @@
|
||||
package se.su.dsv.scipro.project.split;
|
||||
|
||||
import com.querydsl.core.types.dsl.BooleanExpression;
|
||||
import com.google.common.eventbus.EventBus;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.transaction.Transactional;
|
||||
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.RoughDraftApprovalService;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.util.Pair;
|
||||
|
||||
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;
|
||||
private final FinalSeminarService finalSeminarService;
|
||||
private final RoughDraftApprovalService roughDraftApprovalService;
|
||||
private final EventBus eventBus;
|
||||
|
||||
@Inject
|
||||
public SplitOrRestartProjectServiceImpl(
|
||||
ProjectService projectService,
|
||||
FinalSeminarService finalSeminarService,
|
||||
RoughDraftApprovalService roughDraftApprovalService
|
||||
RoughDraftApprovalService roughDraftApprovalService,
|
||||
EventBus eventBus
|
||||
) {
|
||||
this.projectService = projectService;
|
||||
this.finalSeminarService = finalSeminarService;
|
||||
this.roughDraftApprovalService = roughDraftApprovalService;
|
||||
this.eventBus = eventBus;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -95,12 +101,18 @@ public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectSe
|
||||
childProject.setRootProjectId(
|
||||
project.getRootProjectId() != null ? project.getRootProjectId() : project.getId()
|
||||
);
|
||||
|
||||
// Todo: add RoughDraftApproval if it's 'APPROVED'
|
||||
if (result.roughDraftApproval() != null) {}
|
||||
childProject.setCloneTimestamp(Date.from(Instant.now()));
|
||||
|
||||
childProject = projectService.save(childProject);
|
||||
// Todo: Send event to eventBus to synchronize eventual Phase Two Approval with MileStone
|
||||
|
||||
// Add cloned RoughDraftApproval if it's 'APPROVED'
|
||||
RoughDraftApproval rda = result.roughDraftApproval();
|
||||
if (rda != null && rda.isApproved()) {
|
||||
RoughDraftApproval clonedRda = roughDraftApprovalService.saveCloned(rda.cloneToProject(childProject));
|
||||
|
||||
// Send event to eventBus to synchronize eventual Phase Two Approval with MileStone
|
||||
eventBus.post(new RoughDraftApprovalApprovedEvent(clonedRda));
|
||||
}
|
||||
}
|
||||
|
||||
// Parent project will set as inactive
|
||||
|
@ -1,3 +1,5 @@
|
||||
package se.su.dsv.scipro.reviewing;
|
||||
|
||||
public interface RoughDraftApprovalService extends ReviewerApprovalService<RoughDraftApproval> {}
|
||||
public interface RoughDraftApprovalService extends ReviewerApprovalService<RoughDraftApproval> {
|
||||
RoughDraftApproval saveCloned(RoughDraftApproval approval);
|
||||
}
|
||||
|
@ -71,4 +71,10 @@ public class RoughDraftApprovalServiceImpl
|
||||
public Optional<RoughDraftApproval> findBy(Project project) {
|
||||
return Optional.ofNullable(findOne(QRoughDraftApproval.roughDraftApproval.project.eq(project)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public RoughDraftApproval saveCloned(RoughDraftApproval approval) {
|
||||
return save(approval);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user