Skip to content

Commit 8fe72fb

Browse files
authored
Merge pull request #1704 from topcoder-platform/pm-2372
fix(PM-2372): remove the phase name which is already added
2 parents 46ed479 + 08fc6cf commit 8fe72fb

File tree

1 file changed

+51
-38
lines changed
  • src/components/ChallengeEditor/ChallengeReviewer-Field

1 file changed

+51
-38
lines changed

src/components/ChallengeEditor/ChallengeReviewer-Field/index.js

Lines changed: 51 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -760,44 +760,57 @@ class ChallengeReviewerField extends Component {
760760
onChange={(e) => this.updateReviewer(index, 'phaseId', e.target.value)}
761761
>
762762
<option value=''>Select Phase</option>
763-
{challenge.phases && challenge.phases
764-
.filter(phase => {
765-
const rawName = phase.name ? phase.name : ''
766-
const phaseName = rawName.toLowerCase()
767-
const norm = phaseName.replace(/[-\s]/g, '')
768-
const isReviewPhase = phaseName.includes('review')
769-
const isSubmissionPhase = phaseName.includes('submission')
770-
const isScreeningPhase = norm === 'screening' || norm === 'checkpointscreening'
771-
const isApprovalPhase = norm === 'approval'
772-
const isPostMortemPhase = norm === 'postmortem'
773-
const isCurrentlySelected = reviewer.phaseId && ((phase.id === reviewer.phaseId) || (phase.phaseId === reviewer.phaseId)) && !isSubmissionPhase
774-
775-
// For AI reviewers, allow review, submission, and other required phases
776-
// For member reviewers, allow review and other required phases
777-
if (this.isAIReviewer(reviewer)) {
778-
return (
779-
isReviewPhase ||
780-
isSubmissionPhase ||
781-
isScreeningPhase ||
782-
isApprovalPhase ||
783-
isPostMortemPhase ||
784-
isCurrentlySelected
785-
)
786-
} else {
787-
return (
788-
isReviewPhase ||
789-
isScreeningPhase ||
790-
isApprovalPhase ||
791-
isPostMortemPhase ||
792-
isCurrentlySelected
793-
)
794-
}
795-
})
796-
.map(phase => (
797-
<option key={phase.id || phase.phaseId} value={phase.phaseId || phase.id}>
798-
{phase.name || `Phase ${phase.phaseId || phase.id}`}
799-
</option>
800-
))}
763+
{challenge.phases && challenge.phases
764+
.filter(phase => {
765+
const rawName = phase.name ? phase.name : ''
766+
const phaseName = rawName.toLowerCase()
767+
const norm = phaseName.replace(/[-\s]/g, '')
768+
const isReviewPhase = phaseName.includes('review')
769+
const isSubmissionPhase = phaseName.includes('submission')
770+
const isScreeningPhase = norm === 'screening' || norm === 'checkpointscreening'
771+
const isApprovalPhase = norm === 'approval'
772+
const isPostMortemPhase = norm === 'postmortem'
773+
const isCurrentlySelected = reviewer.phaseId && ((phase.id === reviewer.phaseId) || (phase.phaseId === reviewer.phaseId)) && !isSubmissionPhase
774+
775+
// Collect phases already assigned to other reviewers (excluding current reviewer)
776+
const assignedPhaseIds = new Set(
777+
(challenge.reviewers || [])
778+
.filter((r, i) => i !== index)
779+
.map(r => r.phaseId)
780+
.filter(id => id !== undefined && id !== null)
781+
)
782+
783+
// Exclude phases already assigned to other reviewers, except the currently selected phase
784+
if (assignedPhaseIds.has(phase.phaseId || phase.id) && !isCurrentlySelected) {
785+
return false
786+
}
787+
788+
// For AI reviewers, allow review, submission, and other required phases
789+
// For member reviewers, allow review and other required phases
790+
if (this.isAIReviewer(reviewer)) {
791+
return (
792+
isReviewPhase ||
793+
isSubmissionPhase ||
794+
isScreeningPhase ||
795+
isApprovalPhase ||
796+
isPostMortemPhase ||
797+
isCurrentlySelected
798+
)
799+
} else {
800+
return (
801+
isReviewPhase ||
802+
isScreeningPhase ||
803+
isApprovalPhase ||
804+
isPostMortemPhase ||
805+
isCurrentlySelected
806+
)
807+
}
808+
})
809+
.map(phase => (
810+
<option key={phase.id || phase.phaseId} value={phase.phaseId || phase.id}>
811+
{phase.name || `Phase ${phase.phaseId || phase.id}`}
812+
</option>
813+
))}
801814
</select>
802815
)}
803816
{!readOnly && challenge.submitTriggered && validationErrors.phaseId && (

0 commit comments

Comments
 (0)