From 2b5f8c2d337df4b279db8545b8747523a687534e Mon Sep 17 00:00:00 2001 From: Nowshad Date: Sat, 9 Jan 2021 20:07:02 +0600 Subject: [PATCH 1/3] Fixed issue #1007 --- .../ChallengeEditor/ReviewType-Field/index.js | 5 +++-- src/components/ChallengeEditor/index.js | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/components/ChallengeEditor/ReviewType-Field/index.js b/src/components/ChallengeEditor/ReviewType-Field/index.js index 139ea0a3..01fffd30 100644 --- a/src/components/ChallengeEditor/ReviewType-Field/index.js +++ b/src/components/ChallengeEditor/ReviewType-Field/index.js @@ -9,10 +9,11 @@ import { DES_TRACK_ID, REVIEW_TYPES, MESSAGE, QA_TRACK_ID } from '../../../confi const ReviewTypeField = ({ reviewers, challenge, onUpdateOthers, onUpdateSelect }) => { const isDesignChallenge = challenge.trackId === DES_TRACK_ID const isQAChallenge = challenge.trackId === QA_TRACK_ID + const isTask = challenge.type === 'Task' const defaultReviewType = isDesignChallenge ? REVIEW_TYPES.INTERNAL : REVIEW_TYPES.COMMUNITY const reviewType = challenge.reviewType ? challenge.reviewType.toUpperCase() : defaultReviewType const isCommunity = reviewType === REVIEW_TYPES.COMMUNITY - const isInternal = reviewType === REVIEW_TYPES.INTERNAL + const isInternal = reviewType === REVIEW_TYPES.INTERNAL || isTask const communityOption = (disabled) => (
} - { !isDesignChallenge && + { !isDesignChallenge && !isTask && communityOption() }
diff --git a/src/components/ChallengeEditor/index.js b/src/components/ChallengeEditor/index.js index 935b65ad..56165486 100644 --- a/src/components/ChallengeEditor/index.js +++ b/src/components/ChallengeEditor/index.js @@ -63,6 +63,8 @@ const getTitle = (isNew) => { return 'Set-Up Work' } +const checkTaskType = (type) => type === 'Task' + class ChallengeEditor extends Component { constructor (props) { super(props) @@ -167,7 +169,8 @@ class ChallengeEditor extends Component { reviewer = challenge.reviewer } challengeData.copilot = copilot || copilotFromResources - challengeData.reviewer = reviewer || reviewerFromResources + challengeData.reviewer = reviewer || reviewerFromResources || (checkTaskType(challengeData.type) ? challengeData.createdBy : '') + challengeData.startDate = (checkTaskType(challengeData.type) ? moment().format() : challengeData.startDate) const challengeDetail = { ...challengeData } const isOpenAdvanceSettings = challengeDetail.groups.length > 0 setState({ @@ -1100,6 +1103,7 @@ class ChallengeEditor extends Component { if (_.isEmpty(challenge)) { return
Error loading challenge
} + const isTaskType = checkTaskType(challenge.type) const isTask = _.get(challenge, 'task.isTask', false) const { assignedMemberDetails, error } = this.state let isActive = false @@ -1357,7 +1361,7 @@ class ChallengeEditor extends Component { )} - { + {!isTaskType && (
- } + )} { showTimeline && ( Date: Tue, 12 Jan 2021 15:07:21 +0600 Subject: [PATCH 2/3] Updated properties and related backend call location for task type challenge. --- .../ChallengeEditor/ReviewType-Field/index.js | 3 ++- src/components/ChallengeEditor/index.js | 24 ++++++++++++------- .../ChallengeCard/index.js | 11 ++++++--- src/containers/ChallengeEditor/index.js | 14 +++++++---- 4 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/components/ChallengeEditor/ReviewType-Field/index.js b/src/components/ChallengeEditor/ReviewType-Field/index.js index 01fffd30..a7ee070f 100644 --- a/src/components/ChallengeEditor/ReviewType-Field/index.js +++ b/src/components/ChallengeEditor/ReviewType-Field/index.js @@ -1,3 +1,4 @@ +import _ from 'lodash' import React from 'react' import PropTypes from 'prop-types' import Select from '../../Select' @@ -9,7 +10,7 @@ import { DES_TRACK_ID, REVIEW_TYPES, MESSAGE, QA_TRACK_ID } from '../../../confi const ReviewTypeField = ({ reviewers, challenge, onUpdateOthers, onUpdateSelect }) => { const isDesignChallenge = challenge.trackId === DES_TRACK_ID const isQAChallenge = challenge.trackId === QA_TRACK_ID - const isTask = challenge.type === 'Task' + const isTask = _.get(challenge, 'task.isTask', false) const defaultReviewType = isDesignChallenge ? REVIEW_TYPES.INTERNAL : REVIEW_TYPES.COMMUNITY const reviewType = challenge.reviewType ? challenge.reviewType.toUpperCase() : defaultReviewType const isCommunity = reviewType === REVIEW_TYPES.COMMUNITY diff --git a/src/components/ChallengeEditor/index.js b/src/components/ChallengeEditor/index.js index 56165486..fe12a0e6 100644 --- a/src/components/ChallengeEditor/index.js +++ b/src/components/ChallengeEditor/index.js @@ -63,8 +63,6 @@ const getTitle = (isNew) => { return 'Set-Up Work' } -const checkTaskType = (type) => type === 'Task' - class ChallengeEditor extends Component { constructor (props) { super(props) @@ -169,8 +167,7 @@ class ChallengeEditor extends Component { reviewer = challenge.reviewer } challengeData.copilot = copilot || copilotFromResources - challengeData.reviewer = reviewer || reviewerFromResources || (checkTaskType(challengeData.type) ? challengeData.createdBy : '') - challengeData.startDate = (checkTaskType(challengeData.type) ? moment().format() : challengeData.startDate) + challengeData.reviewer = reviewer || reviewerFromResources const challengeDetail = { ...challengeData } const isOpenAdvanceSettings = challengeDetail.groups.length > 0 setState({ @@ -358,6 +355,7 @@ class ChallengeEditor extends Component { newChallenge[field][index][option.key] = option.name } } + console.log(newChallenge) this.setState({ challenge: newChallenge }, () => { this.validateChallenge() }) @@ -738,7 +736,7 @@ class ChallengeEditor extends Component { } collectChallengeData (status) { - const { attachments } = this.props + const { attachments, metadata } = this.props const challenge = pick([ 'phases', 'typeId', @@ -755,6 +753,7 @@ class ChallengeEditor extends Component { 'prizeSets', 'winners' ], this.state.challenge) + const isTask = _.find(metadata.challengeTypes, { id: challenge.typeId, isTask: true }) challenge.legacy = _.assign(this.state.challenge.legacy, { reviewType: challenge.reviewType }) @@ -765,6 +764,10 @@ class ChallengeEditor extends Component { return { ...p, prizes } }) challenge.status = status + if (status === 'Active' && isTask) { + challenge.startDate = moment().format() + } + if (this.state.challenge.id) { challenge.attachmentIds = _.map(attachments, item => item.id) } @@ -799,7 +802,7 @@ class ChallengeEditor extends Component { const avlTemplates = this.getAvailableTimelineTemplates() // chooses first available timeline template or fallback template for the new challenge const defaultTemplate = avlTemplates && avlTemplates.length > 0 ? avlTemplates[0] : STD_DEV_TIMELINE_TEMPLATE - + const isTask = _.find(metadata.challengeTypes, { id: typeId, isTask: true }) const newChallenge = { status: 'New', projectId: this.props.projectId, @@ -808,7 +811,7 @@ class ChallengeEditor extends Component { trackId, startDate: moment().add(1, 'days').format(), legacy: { - reviewType: isDesignChallenge ? REVIEW_TYPES.INTERNAL : REVIEW_TYPES.COMMUNITY + reviewType: isTask || isDesignChallenge ? REVIEW_TYPES.INTERNAL : REVIEW_TYPES.COMMUNITY }, descriptionFormat: 'markdown', timelineTemplateId: defaultTemplate.id, @@ -821,6 +824,10 @@ class ChallengeEditor extends Component { } try { const action = await createChallenge(newChallenge) + if (isTask) { + await this.updateResource(action.challengeDetails.id, 'Reviewer', action.challengeDetails.createdBy, action.challengeDetails.reviewer) + action.challengeDetails.reviewer = action.challengeDetails.createdBy + } const draftChallenge = { data: action.challengeDetails } @@ -1103,7 +1110,6 @@ class ChallengeEditor extends Component { if (_.isEmpty(challenge)) { return
Error loading challenge
} - const isTaskType = checkTaskType(challenge.type) const isTask = _.get(challenge, 'task.isTask', false) const { assignedMemberDetails, error } = this.state let isActive = false @@ -1361,7 +1367,7 @@ class ChallengeEditor extends Component { )} - {!isTaskType && ( + {!isTask && (
Date: Tue, 12 Jan 2021 19:15:12 +0600 Subject: [PATCH 3/3] console log removed --- src/components/ChallengeEditor/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/ChallengeEditor/index.js b/src/components/ChallengeEditor/index.js index 6b062184..b776114c 100644 --- a/src/components/ChallengeEditor/index.js +++ b/src/components/ChallengeEditor/index.js @@ -396,7 +396,6 @@ class ChallengeEditor extends Component { newChallenge[field][index][option.key] = option.name } } - console.log(newChallenge) this.setState({ challenge: newChallenge }, () => { this.validateChallenge() })