diff --git a/src/shared/utils/challenge-listing/buckets.js b/src/shared/utils/challenge-listing/buckets.js index a1bba25679..0e2445812c 100644 --- a/src/shared/utils/challenge-listing/buckets.js +++ b/src/shared/utils/challenge-listing/buckets.js @@ -58,7 +58,7 @@ export function getBuckets(userHandle) { sorts: [ SORTS.MOST_RECENT, SORTS.TIME_TO_REGISTER, - SORTS.PHASE_END_TIME, + SORTS.TIME_TO_SUBMIT, SORTS.NUM_REGISTRANTS, SORTS.NUM_SUBMISSIONS, SORTS.PRIZE_HIGH_TO_LOW, diff --git a/src/shared/utils/challenge-listing/filter.js b/src/shared/utils/challenge-listing/filter.js index 8e48d395d1..74f2be57f4 100644 --- a/src/shared/utils/challenge-listing/filter.js +++ b/src/shared/utils/challenge-listing/filter.js @@ -73,6 +73,9 @@ function filterByGroupIds(challenge, state) { function filterByRegistrationOpen(challenge, state) { if (_.isUndefined(state.registrationOpen)) return true; const isRegOpen = () => { + if (challenge.registrationOpen) { + return challenge.registrationOpen === 'Yes'; + } if (challenge.subTrack === 'MARATHON_MATCH') { return challenge.status !== 'PAST'; } diff --git a/src/shared/utils/challenge-listing/sort.js b/src/shared/utils/challenge-listing/sort.js index a82dbc0f53..cbfe9fd1be 100644 --- a/src/shared/utils/challenge-listing/sort.js +++ b/src/shared/utils/challenge-listing/sort.js @@ -9,7 +9,6 @@ export const SORTS = { MOST_RECENT: 'most-recent', NUM_REGISTRANTS: 'num-registrants', NUM_SUBMISSIONS: 'num-submissions', - PHASE_END_TIME: 'phase-end-time', PRIZE_HIGH_TO_LOW: 'prize-high-to-low', TIME_TO_REGISTER: 'time-to-register', TIME_TO_SUBMIT: 'time-to-submit', @@ -33,10 +32,6 @@ export default { func: (a, b) => b.numSubmissions - a.numSubmissions, name: '# of submissions', }, - [SORTS.PHASE_END_TIME]: { - func: (a, b) => a.currentPhaseRemainingTime - b.currentPhaseRemainingTime, - name: 'Time to submit', - }, [SORTS.PRIZE_HIGH_TO_LOW]: { func: (a, b) => b.totalPrize - a.totalPrize, name: 'Prize high to low', @@ -47,7 +42,18 @@ export default { name: 'Time to register', }, [SORTS.TIME_TO_SUBMIT]: { - func: (a, b) => a.submissionEndTimestamp - b.submissionEndTimestamp, + func: (a, b) => { + function nextSubEndDate(o) { + if (o.checkpointSubmissionEndDate && moment(o.checkpointSubmissionEndDate).isAfter()) { + return o.checkpointSubmissionEndDate; + } + return o.submissionEndDate; + } + + let aDate = nextSubEndDate(a); + let bDate = nextSubEndDate(b); + return (moment(aDate).isBefore()) ? 1 : (moment(bDate).isBefore()) ? -1 : moment(aDate).diff(bDate); + }, name: 'Time to submit', }, [SORTS.TITLE_A_TO_Z]: {