Skip to content

Commit 4c0cc45

Browse files
authored
Merge pull request #2770 from objectcomputing/bugfix-2769/exclude-feedback-outside-review-period
Restrict feedback to within the review period
2 parents 6a3434d + ed63dc4 commit 4c0cc45

File tree

4 files changed

+31
-8
lines changed

4 files changed

+31
-8
lines changed

server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,9 @@ private List<Feedback> getFeedbackType(FeedbackType type) {
260260
reviewPeriod.getReviewTemplateId());
261261
break;
262262
case FeedbackType.feedback:
263-
use = !template.getIsReview();
263+
use = !template.getIsReview() && request.getStatus().equalsIgnoreCase("submitted") &&
264+
request.getSendDate() != null && request.getSendDate().isAfter(reviewPeriod.getPeriodStartDate().toLocalDate()) &&
265+
request.getSendDate().isBefore(reviewPeriod.getCloseDate().toLocalDate());
264266
break;
265267
}
266268
if (use) {

server/src/test/java/com/objectcomputing/checkins/services/fixture/FeedbackRequestFixture.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,18 @@
33
import com.objectcomputing.checkins.services.feedback_template.FeedbackTemplate;
44
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
55
import com.objectcomputing.checkins.services.reviews.ReviewPeriod;
6+
import jnr.constants.platform.Local;
67

78
import java.time.LocalDate;
89

10+
import java.time.LocalDateTime;
11+
import java.time.temporal.ChronoUnit;
12+
import java.time.temporal.TemporalField;
13+
import java.util.Date;
14+
import java.util.Random;
915
import java.util.UUID;
1016
import java.util.List;
17+
import java.util.concurrent.ThreadLocalRandom;
1118

1219
public interface FeedbackRequestFixture extends RepositoryFixture, FeedbackTemplateFixture {
1320

@@ -51,6 +58,15 @@ default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberP
5158
return getFeedbackRequestRepository().save(new FeedbackRequest(creator.getId(), requestee.getId(), recipient.getId(), templateId, testDate, null, "pending", null, null));
5259
}
5360

61+
default LocalDate getRandomLocalDateTime(LocalDateTime start, LocalDateTime end) {
62+
LocalDate startDate = start.toLocalDate();
63+
long daysBetween = ChronoUnit.DAYS.between(startDate, end.toLocalDate());
64+
Random random = new Random();
65+
long randomDays = random.nextLong(daysBetween);
66+
67+
return startDate.plusDays(randomDays);
68+
}
69+
5470
/**
5571
* Saves a sample feedback request
5672
* @param creator The {@link MemberProfile} of the creator of the feedback request
@@ -60,8 +76,13 @@ default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberP
6076
* @return The saved {@link FeedbackRequest}
6177
*/
6278
default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberProfile requestee, MemberProfile recipient, UUID templateId, ReviewPeriod reviewPeriod) {
63-
LocalDate testDate = LocalDate.of(2010, 10, 8);
64-
return getFeedbackRequestRepository().save(new FeedbackRequest(creator.getId(), requestee.getId(), recipient.getId(), templateId, testDate, null, "pending", null, reviewPeriod.getId()));
79+
return saveSampleFeedbackRequest(creator, requestee, recipient, templateId, reviewPeriod, "pending");
80+
}
81+
82+
default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberProfile requestee, MemberProfile recipient, UUID templateId, ReviewPeriod reviewPeriod, String status) {
83+
LocalDate submitDate = getRandomLocalDateTime(reviewPeriod.getPeriodStartDate(), reviewPeriod.getCloseDate());
84+
LocalDate sendDate = getRandomLocalDateTime(reviewPeriod.getPeriodStartDate(), submitDate.atStartOfDay());
85+
return getFeedbackRequestRepository().save(new FeedbackRequest(creator.getId(), requestee.getId(), recipient.getId(), templateId, sendDate, null, status, submitDate, reviewPeriod.getId()));
6586
}
6687

6788
default FeedbackRequest saveSampleFeedbackRequestWithStatus(MemberProfile creator, MemberProfile requestee, MemberProfile recipient, UUID templateId, String status) {

server/src/test/java/com/objectcomputing/checkins/services/fixture/ReviewPeriodFixture.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ default ReviewPeriod createAClosedReviewPeriod() {
8181

8282
default ReviewPeriod createAClosedReviewPeriod(
8383
LocalDateTime periodStart, LocalDateTime periodEnd) {
84-
LocalDateTime launchDate = LocalDateTime.now().plusMinutes(1)
85-
.truncatedTo(ChronoUnit.MILLIS);
86-
LocalDateTime selfReviewCloseDate = launchDate.plusDays(1);
87-
LocalDateTime closeDate = selfReviewCloseDate.plusDays(1);
84+
LocalDateTime launchDate = periodEnd.plusMinutes(1)
85+
.truncatedTo(ChronoUnit.MILLIS).plusDays(1);
86+
LocalDateTime selfReviewCloseDate = launchDate.plusDays(3);
87+
LocalDateTime closeDate = selfReviewCloseDate.plusDays(7);
8888
return getReviewPeriodRepository().save(
8989
new ReviewPeriod(
9090
"Period of Closure", ReviewStatus.CLOSED, null, null,

server/src/test/java/com/objectcomputing/checkins/services/reports/ReportDataControllerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void createRolesAndPermissions() {
7575
questionTwo = saveAnotherTemplateQuestion(feedbackTemplate, 2);
7676
feedbackRequest = saveSampleFeedbackRequest(admin, regular, admin,
7777
feedbackTemplate.getId(),
78-
reviewPeriod);
78+
reviewPeriod, "submitted");
7979
saveSampleFeedbackAnswer(questionOne.getId(), feedbackRequest.getId());
8080
saveSampleFeedbackAnswer(questionTwo.getId(), feedbackRequest.getId());
8181

0 commit comments

Comments
 (0)