diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriod.java b/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriod.java index 1c87a622cf..6270c5622f 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriod.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriod.java @@ -55,17 +55,21 @@ public class ReviewPeriod { @Schema(description = "the id of the self-review template to be used for this review period") private UUID selfReviewTemplateId; + @Nullable @Column(name = "launch_date") private LocalDateTime launchDate; + @Nullable @Column(name = "self_review_close_date") private LocalDateTime selfReviewCloseDate; + @Nullable @Column(name = "close_date") private LocalDateTime closeDate; - public ReviewPeriod(String name, ReviewStatus reviewStatus, @Nullable UUID reviewTemplateId, @Nullable UUID selfReviewTemplateId, - LocalDateTime launchDate, LocalDateTime selfReviewCloseDate, LocalDateTime closeDate) { + public ReviewPeriod(String name, ReviewStatus reviewStatus, @Nullable UUID reviewTemplateId, + @Nullable UUID selfReviewTemplateId, @Nullable LocalDateTime launchDate, + @Nullable LocalDateTime selfReviewCloseDate, @Nullable LocalDateTime closeDate) { this.name = name; this.reviewStatus = reviewStatus; this.reviewTemplateId = reviewTemplateId; diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodCreateDTO.java b/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodCreateDTO.java index 6e4d596455..2d9ef8df87 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodCreateDTO.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodCreateDTO.java @@ -1,6 +1,7 @@ package com.objectcomputing.checkins.services.reviews; import io.micronaut.core.annotation.Introspected; +import io.micronaut.core.annotation.Nullable; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; @@ -24,14 +25,19 @@ public class ReviewPeriodCreateDTO { @Schema(implementation = ReviewStatus.class, required = true, description = "the status of the review") private ReviewStatus reviewStatus; + @Nullable private UUID reviewTemplateId; + @Nullable private UUID selfReviewTemplateId; + @Nullable private LocalDateTime launchDate; + @Nullable private LocalDateTime selfReviewCloseDate; + @Nullable private LocalDateTime closeDate; public ReviewPeriod convertToEntity(){ diff --git a/web-ui/src/components/reviews/periods/ReviewPeriods.jsx b/web-ui/src/components/reviews/periods/ReviewPeriods.jsx index 81610b2838..e70b2f2ce9 100644 --- a/web-ui/src/components/reviews/periods/ReviewPeriods.jsx +++ b/web-ui/src/components/reviews/periods/ReviewPeriods.jsx @@ -120,10 +120,10 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { const [canSave, setCanSave] = useState(false); const [confirmOpen, setConfirmOpen] = useState(false); const [loading, setLoading] = useState(false); - const [status, setStatus] = useState(ReviewStatus.CLOSED); + const [reviewStatus, setReviewStatus] = useState(ReviewStatus.CLOSED); const [periodToAdd, setPeriodToAdd] = useState({ name: '', - status: ReviewStatus.OPEN + reviewStatus: ReviewStatus.OPEN }); const [selfReviews, setSelfReviews] = useState(null); const [templates, setTemplates] = useState([]); @@ -136,12 +136,12 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { const isAdmin = userProfile?.role?.includes('ADMIN'); const handleOpen = useCallback( - () => setStatus(ReviewStatus.OPEN), - [setStatus] + () => setReviewStatus(ReviewStatus.OPEN), + [setReviewStatus] ); const handleClose = useCallback( - () => setStatus(ReviewStatus.CLOSED), - [setStatus] + () => setReviewStatus(ReviewStatus.CLOSED), + [setReviewStatus] ); const findPeriodByName = useCallback( @@ -164,7 +164,7 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { data && dispatch({ type: ADD_REVIEW_PERIOD, payload: data }); } handleClose(); - setPeriodToAdd({ name: '', status: ReviewStatus.OPEN }); + setPeriodToAdd({ name: '', reviewStatus: ReviewStatus.OPEN }); }, [ csrf, @@ -183,8 +183,8 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { return; } const toUpdate = selectReviewPeriod(state, id); - toUpdate.status = - toUpdate?.status === ReviewStatus.CLOSED + toUpdate.reviewStatus = + toUpdate?.reviewStatus === ReviewStatus.CLOSED ? ReviewStatus.OPEN : ReviewStatus.CLOSED; const res = await updateReviewPeriod(toUpdate, csrf); @@ -199,7 +199,7 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { periodId => { if (mode === 'self') { if ( - selectReviewPeriod(state, periodId)?.status === ReviewStatus.status + selectReviewPeriod(state, periodId)?.reviewStatus === ReviewStatus.OPEN ) { if ( !selfReviews || @@ -317,7 +317,7 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { const onPeriodClick = useCallback( id => { - if (selectReviewPeriod(state, id)?.status === ReviewStatus.OPEN) { + if (selectReviewPeriod(state, id)?.reviewStatus === ReviewStatus.OPEN) { onPeriodSelected(id); } }, @@ -386,13 +386,13 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { ) : periods.length > 0 ? ( periods .sort((a, b) => { - return a.status === b.status + return a.reviewStatus === b.reviewStatus ? ('' + a.name).localeCompare(b.name) - : a.status === ReviewStatus.OPEN + : a.reviewStatus === ReviewStatus.OPEN ? -1 : 1; }) - .map(({ name, status, id }, i) => ( + .map(({ name, reviewStatus, id }, i) => ( <> { <> { toggleReviewPeriod(id)} aria-label={ - status === ReviewStatus.OPEN + reviewStatus === ReviewStatus.OPEN ? 'Archive' : 'Unarchive' } > - {status === ReviewStatus.OPEN ? ( + {reviewStatus === ReviewStatus.OPEN ? ( ) : ( @@ -446,7 +446,7 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { key={`period-lit-${id}`} onClick={() => onPeriodClick(id)} primary={ - name + (status === ReviewStatus.OPEN ? ' - Open' : '') + name + (reviewStatus === ReviewStatus.OPEN ? ' - Open' : '') } secondary={getSecondaryLabel(id)} /> @@ -459,7 +459,7 @@ const ReviewPeriods = ({ onPeriodSelected, mode }) => { )} - +