3321 PO Show a warning about targets when assigned a reviewer to a project before a review has been requested.
This commit is contained in:
parent
f57a58d9b5
commit
95a300eeee
core/src/main/java/se/su/dsv/scipro/reviewing
DecisionRepository.javaDecisionRepositoryImpl.javaReviewerAssignmentService.javaReviewerCapacityServiceImpl.java
view/src/main/java/se/su/dsv/scipro/admin/pages
@ -1,9 +1,13 @@
|
||||
package se.su.dsv.scipro.reviewing;
|
||||
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
public interface DecisionRepository {
|
||||
int countDecisions(User reviewer, LocalDate fromDate, LocalDate toDate);
|
||||
|
||||
List<Decision> findBy(Project project);
|
||||
}
|
||||
|
@ -1,12 +1,14 @@
|
||||
package se.su.dsv.scipro.reviewing;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.AbstractRepository;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
public class DecisionRepositoryImpl extends AbstractRepository implements DecisionRepository {
|
||||
@Inject
|
||||
@ -22,4 +24,11 @@ public class DecisionRepositoryImpl extends AbstractRepository implements Decisi
|
||||
.and(QDecision.decision.reviewerAssignedAt.loe(toDate)))
|
||||
.fetchCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Decision> findBy(Project project) {
|
||||
return from(QDecision.decision)
|
||||
.where(QDecision.decision.reviewerApproval.project.eq(project))
|
||||
.fetch();
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,6 @@ public interface ReviewerAssignmentService {
|
||||
void unassignReviewer(Project project);
|
||||
|
||||
enum ReviewerAssignment {
|
||||
OK, ERROR_IS_SUPERVISOR, ERROR_IS_NOT_REVIEWER
|
||||
OK, ERROR_IS_SUPERVISOR, WARNING_NO_REVIEW_REQUEST, ERROR_IS_NOT_REVIEWER
|
||||
}
|
||||
}
|
||||
|
@ -194,6 +194,10 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
|
||||
project.addReviewer(reviewer);
|
||||
projectService.save(project);
|
||||
eventBus.post(new ReviewerAssignedEvent(project, reviewer));
|
||||
List<Decision> currentDecisions = decisionRepository.findBy(project);
|
||||
if (currentDecisions.isEmpty()) {
|
||||
return ReviewerAssignment.WARNING_NO_REVIEW_REQUEST;
|
||||
}
|
||||
return ReviewerAssignment.OK;
|
||||
}
|
||||
}
|
||||
|
@ -225,6 +225,10 @@ public class AdminAssignReviewerPage extends AbstractAdminProjectPage {
|
||||
// Put the feedback message in the parent container since this component will be
|
||||
// lost when the ListView recreates its ListItems
|
||||
case OK -> AvailableReviewersPanel.this.success(AvailableReviewersPanel.this.getString("reviewer_assigned"));
|
||||
case WARNING_NO_REVIEW_REQUEST -> {
|
||||
AvailableReviewersPanel.this.success(AvailableReviewersPanel.this.getString("reviewer_assigned"));
|
||||
AvailableReviewersPanel.this.warn(AvailableReviewersPanel.this.getString("warning_no_review_request"));
|
||||
}
|
||||
case ERROR_IS_SUPERVISOR -> AvailableReviewersPanel.this.error(AvailableReviewersPanel.this.getString("error_reviewer_is_supervisor"));
|
||||
case ERROR_IS_NOT_REVIEWER -> AvailableReviewersPanel.this.error(AvailableReviewersPanel.this.getString("error_reviewer_is_not_reviewer"));
|
||||
}
|
||||
|
@ -1,4 +1,8 @@
|
||||
reviewer_assigned=Reviewer assigned
|
||||
warning_no_review_request=No request for review has been sent for this project yet. The reviewer has still been \
|
||||
assigned, but the number of reviews assigned to the reviewer will not be updated until a request for review is \
|
||||
submitted by the supervisor. It is the date the review is requested that will decide which period the review is \
|
||||
assigned to.
|
||||
error_reviewer_is_supervisor=The selected reviewer is the supervisor of the project
|
||||
error_reviewer_is_not_reviewer=The selected reviewer does not have the reviewer role
|
||||
reviewer_unassigned=Reviewer un-assigned
|
||||
|
Loading…
x
Reference in New Issue
Block a user