diff --git a/server/build.gradle b/server/build.gradle index 0eb3bf25da..54a3b0f28b 100755 --- a/server/build.gradle +++ b/server/build.gradle @@ -7,7 +7,7 @@ plugins { id "jacoco" } -version "0.8.8" +version "0.8.9" group "com.objectcomputing.checkins" repositories { diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java b/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java index d762263318..73913bffa4 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reports/ReportDataCollation.java @@ -260,7 +260,9 @@ private List getFeedbackType(FeedbackType type) { reviewPeriod.getReviewTemplateId()); break; case FeedbackType.feedback: - use = !template.getIsReview(); + use = !template.getIsReview() && request.getStatus().equalsIgnoreCase("submitted") && + request.getSendDate() != null && request.getSendDate().isAfter(reviewPeriod.getPeriodStartDate().toLocalDate()) && + request.getSendDate().isBefore(reviewPeriod.getCloseDate().toLocalDate()); break; } if (use) { diff --git a/server/src/test/java/com/objectcomputing/checkins/services/fixture/FeedbackRequestFixture.java b/server/src/test/java/com/objectcomputing/checkins/services/fixture/FeedbackRequestFixture.java index 8b1b1c6cc6..201a67023e 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/fixture/FeedbackRequestFixture.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/fixture/FeedbackRequestFixture.java @@ -3,11 +3,18 @@ import com.objectcomputing.checkins.services.feedback_template.FeedbackTemplate; import com.objectcomputing.checkins.services.memberprofile.MemberProfile; import com.objectcomputing.checkins.services.reviews.ReviewPeriod; +import jnr.constants.platform.Local; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalField; +import java.util.Date; +import java.util.Random; import java.util.UUID; import java.util.List; +import java.util.concurrent.ThreadLocalRandom; public interface FeedbackRequestFixture extends RepositoryFixture, FeedbackTemplateFixture { @@ -51,6 +58,15 @@ default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberP return getFeedbackRequestRepository().save(new FeedbackRequest(creator.getId(), requestee.getId(), recipient.getId(), templateId, testDate, null, "pending", null, null)); } + default LocalDate getRandomLocalDateTime(LocalDateTime start, LocalDateTime end) { + LocalDate startDate = start.toLocalDate(); + long daysBetween = ChronoUnit.DAYS.between(startDate, end.toLocalDate()); + Random random = new Random(); + long randomDays = random.nextLong(daysBetween); + + return startDate.plusDays(randomDays); + } + /** * Saves a sample feedback request * @param creator The {@link MemberProfile} of the creator of the feedback request @@ -60,8 +76,13 @@ default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberP * @return The saved {@link FeedbackRequest} */ default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberProfile requestee, MemberProfile recipient, UUID templateId, ReviewPeriod reviewPeriod) { - LocalDate testDate = LocalDate.of(2010, 10, 8); - return getFeedbackRequestRepository().save(new FeedbackRequest(creator.getId(), requestee.getId(), recipient.getId(), templateId, testDate, null, "pending", null, reviewPeriod.getId())); + return saveSampleFeedbackRequest(creator, requestee, recipient, templateId, reviewPeriod, "pending"); + } + + default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberProfile requestee, MemberProfile recipient, UUID templateId, ReviewPeriod reviewPeriod, String status) { + LocalDate submitDate = getRandomLocalDateTime(reviewPeriod.getPeriodStartDate(), reviewPeriod.getCloseDate()); + LocalDate sendDate = getRandomLocalDateTime(reviewPeriod.getPeriodStartDate(), submitDate.atStartOfDay()); + return getFeedbackRequestRepository().save(new FeedbackRequest(creator.getId(), requestee.getId(), recipient.getId(), templateId, sendDate, null, status, submitDate, reviewPeriod.getId())); } default FeedbackRequest saveSampleFeedbackRequestWithStatus(MemberProfile creator, MemberProfile requestee, MemberProfile recipient, UUID templateId, String status) { diff --git a/server/src/test/java/com/objectcomputing/checkins/services/fixture/ReviewPeriodFixture.java b/server/src/test/java/com/objectcomputing/checkins/services/fixture/ReviewPeriodFixture.java index 905ed7d64d..cd2cf0eded 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/fixture/ReviewPeriodFixture.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/fixture/ReviewPeriodFixture.java @@ -81,10 +81,10 @@ default ReviewPeriod createAClosedReviewPeriod() { default ReviewPeriod createAClosedReviewPeriod( LocalDateTime periodStart, LocalDateTime periodEnd) { - LocalDateTime launchDate = LocalDateTime.now().plusMinutes(1) - .truncatedTo(ChronoUnit.MILLIS); - LocalDateTime selfReviewCloseDate = launchDate.plusDays(1); - LocalDateTime closeDate = selfReviewCloseDate.plusDays(1); + LocalDateTime launchDate = periodEnd.plusMinutes(1) + .truncatedTo(ChronoUnit.MILLIS).plusDays(1); + LocalDateTime selfReviewCloseDate = launchDate.plusDays(3); + LocalDateTime closeDate = selfReviewCloseDate.plusDays(7); return getReviewPeriodRepository().save( new ReviewPeriod( "Period of Closure", ReviewStatus.CLOSED, null, null, diff --git a/server/src/test/java/com/objectcomputing/checkins/services/reports/ReportDataControllerTest.java b/server/src/test/java/com/objectcomputing/checkins/services/reports/ReportDataControllerTest.java index 07ffd0854c..d88012c0b9 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/reports/ReportDataControllerTest.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/reports/ReportDataControllerTest.java @@ -75,7 +75,7 @@ void createRolesAndPermissions() { questionTwo = saveAnotherTemplateQuestion(feedbackTemplate, 2); feedbackRequest = saveSampleFeedbackRequest(admin, regular, admin, feedbackTemplate.getId(), - reviewPeriod); + reviewPeriod, "submitted"); saveSampleFeedbackAnswer(questionOne.getId(), feedbackRequest.getId()); saveSampleFeedbackAnswer(questionTwo.getId(), feedbackRequest.getId()); diff --git a/web-ui/package.json b/web-ui/package.json index 4ff698e894..8296355517 100644 --- a/web-ui/package.json +++ b/web-ui/package.json @@ -1,6 +1,6 @@ { "name": "web-ui", - "version": "0.8.8", + "version": "0.8.9", "private": true, "type": "module", "dependencies": { diff --git a/web-ui/src/components/kudos_dialog/KudosDialog.jsx b/web-ui/src/components/kudos_dialog/KudosDialog.jsx index 92cc98a41a..28ed890c83 100644 --- a/web-ui/src/components/kudos_dialog/KudosDialog.jsx +++ b/web-ui/src/components/kudos_dialog/KudosDialog.jsx @@ -317,13 +317,13 @@ const KudosDialog = ({ open, recipient, teamId, onClose }) => { value={message} onChange={handleMessageChange} /> - Kudos will be visible to admins for approval, then sent to the recipient. - + :
}