3283 TR Change signature

This commit is contained in:
Wayne Westmoreland 2024-01-10 16:18:30 +01:00
parent 59a215422f
commit 1cb10be6a1
10 changed files with 15 additions and 17 deletions

@ -65,7 +65,7 @@ public class FinalSeminarCreationSubscribers {
}
private boolean onlyFailedOppositions(Author subscriber) {
return finalSeminarService.findUserOpposing(subscriber.getProject(), subscriber.getUser())
return finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(subscriber.getProject().getProjectType(), subscriber.getUser())
.stream()
.noneMatch(FinalSeminarParticipation::isApproved);
}

@ -3,10 +3,7 @@ package se.su.dsv.scipro.finalseminar;
import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.DegreeType;
import se.su.dsv.scipro.system.FilteredService;
import se.su.dsv.scipro.system.GenericService;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.system.*;
import se.su.dsv.scipro.util.Either;
import java.io.Serializable;
@ -54,7 +51,8 @@ public interface FinalSeminarService extends GenericService<FinalSeminar, Long>,
FinalSeminar cancel(FinalSeminar finalSeminar);
List<FinalSeminarOpposition> findUserOpposing(Project project, User user);
List<FinalSeminarOpposition> findFinalSeminarOppositionsByOpponentAndProjectType(ProjectType projectType, User user);
List<FinalSeminarActiveParticipation> findUserParticipating(Project project, User user);
boolean isSubscribedToSeminarCreationNotifications(Project project, User user);

@ -17,6 +17,7 @@ import se.su.dsv.scipro.report.OppositionReportService;
import se.su.dsv.scipro.reviewing.RoughDraftApproval;
import se.su.dsv.scipro.reviewing.RoughDraftApprovalService;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.util.Either;
@ -418,7 +419,7 @@ public class FinalSeminarServiceImpl extends AbstractServiceImpl<FinalSeminar, L
public List<FinalSeminarOpposition> getOppositionsByProjectAuthors(Project project) {
return project.getProjectParticipants()
.stream()
.map(author -> findUserOpposing(project, author))
.map(author -> findFinalSeminarOppositionsByOpponentAndProjectType(project.getProjectType(), author))
.flatMap(List::stream)
.toList();
}
@ -449,8 +450,8 @@ public class FinalSeminarServiceImpl extends AbstractServiceImpl<FinalSeminar, L
}
@Override
public List<FinalSeminarOpposition> findUserOpposing(Project project, User user) {
return finalSeminarOppositionRepository.findByOpposingUserAndType(user, project.getProjectType());
public List<FinalSeminarOpposition> findFinalSeminarOppositionsByOpponentAndProjectType(ProjectType projectType, User user) {
return finalSeminarOppositionRepository.findByOpposingUserAndType(user, projectType);
}
@Override

@ -427,7 +427,7 @@ public class ZipReporter implements Reporter {
if (finalSeminar != null) {
children.addAll(finalSeminarReport(finalSeminar));
}
final List<FinalSeminarOpposition> oppositions = finalSeminarService.findUserOpposing(project, user);
final List<FinalSeminarOpposition> oppositions = finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(project.getProjectType(), user);
if (!oppositions.isEmpty()) {
List<FinalSeminar> seminars = oppositions.stream().map(FinalSeminarParticipation::getFinalSeminar).toList();
children.addAll(oppositionsReport("Oppositions", seminars));

@ -51,7 +51,7 @@ public class ActivateCompletedMilestonesOnNewProjects {
}
private void activateOppositionMilestone(Project project, User author) {
List<FinalSeminarOpposition> opposing = finalSeminarService.findUserOpposing(project, author);
List<FinalSeminarOpposition> opposing = finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(project.getProjectType(), author);
for (FinalSeminarOpposition finalSeminarOpposition : opposing) {
if (finalSeminarOpposition.isApproved()) {
confirmMilestoneByEvent(project, author, "OppositionGradingEvent");

@ -114,7 +114,7 @@ public class AttendingPanel extends GenericPanel<Project> {
return new LoadableDetachableModel<>() {
@Override
protected List<FinalSeminarOpposition> load() {
return finalSeminarService.findUserOpposing(getModelObject(), SciProSession.get().getUser());
return finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(getModelObject().getProjectType(), SciProSession.get().getUser());
}
};
}

@ -204,7 +204,7 @@ abstract class AbstractExaminationsPanel extends GenericPanel<User> {
if (!examination.hasManyPassingGrades()) {
return NO_REQUIREMENTS;
}
final long completedOppositions = finalSeminarService.findUserOpposing(project, user)
final long completedOppositions = finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(project.getProjectType(), user)
.stream()
.filter(FinalSeminarOpposition::isApproved)
.count();

@ -39,7 +39,6 @@ import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.util.AjaxConfirmationLink;
import javax.inject.Inject;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@ -170,7 +169,7 @@ public class CriteriaPanel extends GenericPanel<SupervisorGradingReport> {
super(id, author);
this.gradingCriterion = gradingCriterion;
final IModel<List<FinalSeminarOpposition>> authorOppositions = LoadableDetachableModel.of(() ->
finalSeminarService.findUserOpposing(CriteriaPanel.this.getModelObject().getProject(), author.getObject()));
finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(CriteriaPanel.this.getModelObject().getProject().getProjectType(), author.getObject()));
modal = new ModalWindowPlus("modal");
modal.setTitle("Opposition feedback");

@ -220,7 +220,7 @@ public class SendToExaminer extends GenericPanel<Project> {
}
private LocalDate getExaminationDate(User author, Project project, FinalThesis finalThesis) {
var oppositions = finalSeminarService.findUserOpposing(project, author);
var oppositions = finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(project.getProjectType(), author);
var participations = finalSeminarService.findUserParticipating(project, author);
Optional<LocalDate> seminarDate = Stream.concat(oppositions.stream(), participations.stream())

@ -61,7 +61,7 @@ public class AttendingPanelTest extends SciProTest {
List<FinalSeminarOpposition> oppositions = List.of(finalSeminarOpposition);
when(finalSeminarService.findUserOpposing(isA(Project.class), isA(User.class))).thenReturn(oppositions);
when(finalSeminarService.findFinalSeminarOppositionsByOpponentAndProjectType(isA(ProjectType.class), isA(User.class))).thenReturn(oppositions);
startPanel();