diff --git a/src/shared/utils/challenge-listing/buckets.js b/src/shared/utils/challenge-listing/buckets.js index 964e9cc9c6..81bea34bc4 100644 --- a/src/shared/utils/challenge-listing/buckets.js +++ b/src/shared/utils/challenge-listing/buckets.js @@ -36,10 +36,10 @@ export const BUCKET_DATA = { name: 'My Challenges', sorts: [ SORTS.MOST_RECENT_START_DATE, - // SORTS.TIME_TO_SUBMIT, + SORTS.TIME_TO_SUBMIT, // SORTS.NUM_REGISTRANTS, // SORTS.NUM_SUBMISSIONS, - // SORTS.PRIZE_HIGH_TO_LOW, + SORTS.PRIZE_HIGH_TO_LOW, SORTS.TITLE_A_TO_Z, ], }, @@ -53,11 +53,11 @@ export const BUCKET_DATA = { name: 'Open for registration', sorts: [ SORTS.MOST_RECENT_START_DATE, - // SORTS.TIME_TO_REGISTER, - // SORTS.TIME_TO_SUBMIT, + SORTS.TIME_TO_REGISTER, + SORTS.TIME_TO_SUBMIT, // SORTS.NUM_REGISTRANTS, // SORTS.NUM_SUBMISSIONS, - // SORTS.PRIZE_HIGH_TO_LOW, + SORTS.PRIZE_HIGH_TO_LOW, SORTS.TITLE_A_TO_Z, ], }, @@ -72,9 +72,9 @@ export const BUCKET_DATA = { name: 'Ongoing challenges', sorts: [ SORTS.MOST_RECENT_START_DATE, - // SORTS.CURRENT_PHASE, + SORTS.CURRENT_PHASE, SORTS.TITLE_A_TO_Z, - // SORTS.PRIZE_HIGH_TO_LOW, + SORTS.PRIZE_HIGH_TO_LOW, ], }, [BUCKETS.UPCOMING]: { diff --git a/src/shared/utils/challenge-listing/sort.js b/src/shared/utils/challenge-listing/sort.js index 3225595650..fd2aeef89f 100644 --- a/src/shared/utils/challenge-listing/sort.js +++ b/src/shared/utils/challenge-listing/sort.js @@ -6,14 +6,14 @@ import moment from 'moment'; import { sumBy } from 'lodash'; export const SORTS = { - // CURRENT_PHASE: 'current-phase', + CURRENT_PHASE: 'current-phase', MOST_RECENT: 'updated', MOST_RECENT_START_DATE: 'startDate', // NUM_REGISTRANTS: 'num-registrants', // NUM_SUBMISSIONS: 'num-submissions', - // PRIZE_HIGH_TO_LOW: 'prize-high-to-low', - // TIME_TO_REGISTER: 'time-to-register', - // TIME_TO_SUBMIT: 'time-to-submit', + PRIZE_HIGH_TO_LOW: 'overview.totalPrizes', + TIME_TO_REGISTER: 'registrationEndDate', + TIME_TO_SUBMIT: 'submissionEndDate', TITLE_A_TO_Z: 'name', REVIEW_OPPORTUNITIES_TITLE_A_TO_Z: 'review-opportunities-title-a-to-z', REVIEW_OPPORTUNITIES_PAYMENT: 'review-opportunities-payment', @@ -21,12 +21,11 @@ export const SORTS = { }; export default { - // [SORTS.CURRENT_PHASE]: { - // func: (a, b) => a.status.localeCompare(b.status), - // name: 'Current phase', - // }, + [SORTS.CURRENT_PHASE]: { + func: (a, b) => a.status.localeCompare(b.status), + name: 'Current phase', + }, [SORTS.MOST_RECENT]: { - // func: (a, b) => moment(b.registrationStartDate).diff(a.registrationStartDate), name: 'Most recent', order: 'desc', }, @@ -34,51 +33,46 @@ export default { name: 'Most recent', order: 'desc', }, - // [SORTS.NUM_REGISTRANTS]: { - // func: (a, b) => b.numOfRegistrants - a.numOfRegistrants, - // name: '# of registrants', - // }, - // [SORTS.NUM_SUBMISSIONS]: { - // func: (a, b) => b.numOfSubmissions - a.numOfSubmissions, - // name: '# of submissions', - // }, - // [SORTS.PRIZE_HIGH_TO_LOW]: { - // func: (a, b) => b.totalPrize - a.totalPrize, - // name: 'Prize high to low', - // }, - // [SORTS.TIME_TO_REGISTER]: { - // func: (a, b) => { - // const aDate = moment(a.registrationEndDate || a.submissionEndTimestamp); - // const bDate = moment(b.registrationEndDate || b.submissionEndTimestamp); + [SORTS.PRIZE_HIGH_TO_LOW]: { + func: (a, b) => b.totalPrize - a.totalPrize, + name: 'Prize high to low', + order: 'desc', + }, + [SORTS.TIME_TO_REGISTER]: { + func: (a, b) => { + const aDate = moment(a.registrationEndDate || a.submissionEndTimestamp); + const bDate = moment(b.registrationEndDate || b.submissionEndTimestamp); - // if (aDate.isBefore() && bDate.isAfter()) return 1; - // if (aDate.isAfter() && bDate.isBefore()) return -1; - // if (aDate.isBefore() && bDate.isBefore()) return bDate.diff(aDate); + if (aDate.isBefore() && bDate.isAfter()) return 1; + if (aDate.isAfter() && bDate.isBefore()) return -1; + if (aDate.isBefore() && bDate.isBefore()) return bDate.diff(aDate); - // return aDate.diff(bDate); - // }, - // name: 'Time to register', - // }, - // [SORTS.TIME_TO_SUBMIT]: { - // func: (a, b) => { - // function nextSubEndDate(o) { - // if (o.checkpointSubmissionEndDate && moment(o.checkpointSubmissionEndDate).isAfter()) { - // return moment(o.checkpointSubmissionEndDate); - // } - // return moment(o.submissionEndTimestamp); - // } + return aDate.diff(bDate); + }, + name: 'Time to register', + order: 'desc', + }, + [SORTS.TIME_TO_SUBMIT]: { + func: (a, b) => { + function nextSubEndDate(o) { + if (o.checkpointSubmissionEndDate && moment(o.checkpointSubmissionEndDate).isAfter()) { + return moment(o.checkpointSubmissionEndDate); + } + return moment(o.submissionEndTimestamp); + } - // const aDate = nextSubEndDate(a); - // const bDate = nextSubEndDate(b); + const aDate = nextSubEndDate(a); + const bDate = nextSubEndDate(b); - // if (aDate.isBefore() && bDate.isAfter()) return 1; - // if (aDate.isAfter() && bDate.isBefore()) return -1; - // if (aDate.isBefore() && bDate.isBefore()) return bDate.diff(aDate); + if (aDate.isBefore() && bDate.isAfter()) return 1; + if (aDate.isAfter() && bDate.isBefore()) return -1; + if (aDate.isBefore() && bDate.isBefore()) return bDate.diff(aDate); - // return aDate.diff(bDate); - // }, - // name: 'Time to submit', - // }, + return aDate.diff(bDate); + }, + name: 'Time to submit', + order: 'desc', + }, [SORTS.TITLE_A_TO_Z]: { // func: (a, b) => a.name.localeCompare(b.name), name: 'Title A-Z',