Skip to content

Commit 8bdb9ca

Browse files
committed
Limit work formats based on selected Domain (Work Type)
#1424
1 parent 997ae90 commit 8bdb9ca

File tree

5 files changed

+31
-3
lines changed

5 files changed

+31
-3
lines changed

config/constants/development.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ module.exports = {
3333
DES_TRACK_ID: '5fa04185-041f-49a6-bfd1-fe82533cd6c8',
3434
DS_TRACK_ID: 'c0f5d461-8219-4c14-878a-c3a3f356466d',
3535
QA_TRACK_ID: '36e6a8d0-7e1e-4608-a673-64279d99c115',
36+
CP_TRACK_ID: '9d6e0de8-df14-4c76-ba0a-a9a8cb03a4ea',
3637
CHALLENGE_TYPE_ID: '927abff4-7af9-4145-8ba1-577c16e64e2e',
3738
MARATHON_TYPE_ID: '929bc408-9cf2-4b3e-ba71-adfbf693046c',
3839
SEGMENT_API_KEY: 'QBtLgV8vCiuRX1lDikbMjcoe9aCHkF6n',

config/constants/production.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ module.exports = {
3333
DES_TRACK_ID: '5fa04185-041f-49a6-bfd1-fe82533cd6c8',
3434
DS_TRACK_ID: 'c0f5d461-8219-4c14-878a-c3a3f356466d',
3535
QA_TRACK_ID: '36e6a8d0-7e1e-4608-a673-64279d99c115',
36+
CP_TRACK_ID: '9d6e0de8-df14-4c76-ba0a-a9a8cb03a4ea',
3637
CHALLENGE_TYPE_ID: '927abff4-7af9-4145-8ba1-577c16e64e2e',
3738
MARATHON_TYPE_ID: '929bc408-9cf2-4b3e-ba71-adfbf693046c',
3839
SEGMENT_API_KEY: 'QSQAW5BWmZfLoKFNRgNKaqHvLDLJoGqF',

src/components/ChallengeEditor/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import {
2929
QA_TRACK_ID, DESIGN_CHALLENGE_TYPES, ROUND_TYPES,
3030
MULTI_ROUND_CHALLENGE_TEMPLATE_ID, DS_TRACK_ID
3131
} from '../../config/constants'
32+
import { getDomainTypes, getResourceRoleByName } from '../../util/tc'
3233
import { PrimaryButton, OutlineButton } from '../Buttons'
3334
import TrackField from './Track-Field'
3435
import TypeField from './Type-Field'
@@ -60,7 +61,7 @@ import AssignedMemberField from './AssignedMember-Field'
6061
import Tooltip from '../Tooltip'
6162
import CancelDropDown from './Cancel-Dropdown'
6263
import UseSchedulingAPIField from './UseSchedulingAPIField'
63-
import { getResourceRoleByName } from '../../util/tc'
64+
6465
import { isBetaMode } from '../../util/cookie'
6566
import MilestoneField from './Milestone-Field'
6667
import DiscussionField from './Discussion-Field'
@@ -1575,13 +1576,15 @@ class ChallengeEditor extends Component {
15751576
const showDashBoard = (challenge.trackId === DS_TRACK_ID && isChallengeType) || (isDevChallenge && isMM)
15761577
const useDashboardData = _.find(challenge.metadata, { name: 'show_data_dashboard' })
15771578
const useDashboard = useDashboardData ? useDashboardData.value : true
1579+
const workTypes = getDomainTypes(challenge.trackId)
1580+
const filteredTypes = metadata.challengeTypes.filter(type => workTypes.includes(type.abbreviation))
15781581

15791582
const challengeForm = isNew
15801583
? (
15811584
<form name='challenge-new-form' noValidate autoComplete='off' onSubmit={this.createChallengeHandler}>
15821585
<div className={styles.newFormContainer}>
15831586
<TrackField tracks={metadata.challengeTracks} challenge={challenge} onUpdateOthers={this.onUpdateOthers} />
1584-
<TypeField types={metadata.challengeTypes} onUpdateSelect={this.onUpdateSelect} challenge={challenge} />
1587+
<TypeField types={filteredTypes} onUpdateSelect={this.onUpdateSelect} challenge={challenge} />
15851588
{
15861589
showRoundType && (
15871590
<>

src/config/constants.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export const {
1616
DES_TRACK_ID,
1717
DS_TRACK_ID,
1818
QA_TRACK_ID,
19+
CP_TRACK_ID,
1920
CHALLENGE_TYPE_ID,
2021
MARATHON_TYPE_ID,
2122
SEGMENT_API_KEY,
@@ -137,7 +138,8 @@ export const CHALLENGE_TRACKS = {
137138
DESIGN: DES_TRACK_ID,
138139
DEVELOP: DEV_TRACK_ID,
139140
DATA_SCIENCE: DS_TRACK_ID,
140-
QA: QA_TRACK_ID
141+
QA: QA_TRACK_ID,
142+
COMPETITIVE_PROGRAMMING: CP_TRACK_ID
141143
}
142144

143145
// List of challenge phase statuses

src/util/tc.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,27 @@ export function fixedTrack (track, subTrack) {
121121
: track
122122
}
123123

124+
/**
125+
* Given challenge domain (track), returns its corresponding challenge types
126+
* @param {String} trackId challenge trackId
127+
*/
128+
export const getDomainTypes = (trackId) => {
129+
switch (trackId) {
130+
case CHALLENGE_TRACKS.DEVELOP:
131+
return ['CH', 'F2F', 'TSK', 'SKL', 'PC', 'RDM']
132+
case CHALLENGE_TRACKS.DATA_SCIENCE:
133+
return ['CH', 'F2F', 'TSK', 'SKL', 'PC', 'MA']
134+
case CHALLENGE_TRACKS.QA:
135+
return ['CH', 'F2F', 'TSK', 'SKL', 'PC']
136+
case CHALLENGE_TRACKS.DESIGN:
137+
return ['CH', 'F2F', 'TSK', 'SKL', 'PC']
138+
case CHALLENGE_TRACKS.COMPETITIVE_PROGRAMMING:
139+
return ['CH', 'F2F', 'SKL', 'PC', 'MM', 'RDM']
140+
default:
141+
return []
142+
}
143+
}
144+
124145
/**
125146
* Checks if role is present in allowed roles
126147
* @param roles

0 commit comments

Comments
 (0)