Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit 79263ce

Browse files
author
Nick Litwin
committed
Implement past develop challenges
1 parent b83bb7c commit 79263ce

File tree

7 files changed

+360
-197
lines changed

7 files changed

+360
-197
lines changed

app/directives/challenge-tile/challenge-tile.directive.jade

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,65 @@
11
.challenge.tile-view(ng-show="view === 'tile'", ng-class="challenge.track")
2-
.challenge-track
2+
.active-challenge(ng-show="challenge.status === 'ACTIVE'")
3+
.challenge-track
34

4-
header
5-
a(ng-href="https://www.{{DOMAIN}}/challenge-details/{{challenge.id}}/?type={{challenge.track}}") {{challenge.name}}
5+
header
6+
a(ng-href="https://www.{{DOMAIN}}/challenge-details/{{challenge.id}}/?type={{challenge.track}}") {{challenge.name}}
67

7-
p {{challenge.subTrack | underscoreStrip}}
8+
p.subtrack-color {{challenge.subTrack | underscoreStrip}}
89

9-
.challenge-details
10-
p.currentPhase {{challenge.userCurrentPhase}}
10+
.challenge-details
11+
p.currentPhase {{challenge.userCurrentPhase}}
1112

12-
.challenge-calendar(ng-show="challenge.userCurrentPhaseEndTime")
13-
p.ends-in Ends In
14-
p.time-remaining {{challenge.userCurrentPhaseEndTime[0]}}
15-
p.unit-of-time {{challenge.userCurrentPhaseEndTime[1]}}
13+
.challenge-calendar(ng-show="challenge.userCurrentPhaseEndTime")
14+
p.ends-in Ends In
15+
p.time-remaining {{challenge.userCurrentPhaseEndTime[0]}}
16+
p.unit-of-time {{challenge.userCurrentPhaseEndTime[1]}}
1617

17-
.stalled-challenge(ng-hide="challenge.userCurrentPhaseEndTime") This challenge is currently paused.
18+
.stalled-challenge(ng-hide="challenge.userCurrentPhaseEndTime") This challenge is currently paused.
1819

19-
.phase-action(ng-switch="challenge.userAction")
20-
.submit(ng-switch-when="Submit") Submit
20+
.phase-action(ng-switch="challenge.userAction")
21+
.submit(ng-switch-when="Submit") Submit
2122

22-
.submitted(ng-switch-when="Submitted") Submitted
23+
.submitted(ng-switch-when="Submitted") Submitted
2324

24-
// Need styling and JS logic for this one
25-
.registered(ng-switch-when="Registered") Registered
25+
// Need styling and JS logic for this one
26+
.registered(ng-switch-when="Registered") Registered
27+
28+
// Only show if not data science track
29+
p.roles {{challenge.userDetails.roles | listRoles}}
30+
31+
.challenge-links
32+
.stats
33+
a.registrants(ng-href="https://www.{{DOMAIN}}/challenge-details/{{challenge.id}}/?type={{challenge.track}}#viewRegistrant")
34+
.registrants-icon
35+
36+
p {{challenge.numRegistrants}}
37+
38+
a.submissions(ng-hide="challenge.track === 'DATA SCIENCE'", ng-href="https://www.{{DOMAIN}}/challenge-details/{{challenge.id}}/?type={{challenge.track}}#viewRegistrant")
39+
.submissions-icon
40+
41+
p {{challenge.numSubmissions}}
42+
43+
a.forum(ng-href="http://apps.{{DOMAIN}}/forums//?module=Category&categoryID={{challenge.forumId}}")
44+
.forum-icon
2645

27-
// Only show if not data science track
28-
p.roles {{challenge.userDetails.roles | listRoles}}
46+
p Forum
2947

30-
.challenge-links
31-
.stats
32-
a.registrants(ng-href="https://www.{{DOMAIN}}/challenge-details/{{challenge.id}}/?type={{challenge.track}}#viewRegistrant")
33-
.registrants-icon
48+
.completed-challenge(ng-show="challenge.status === 'COMPLETED'")
49+
header
50+
a(ng-href="https://www.{{DOMAIN}}/challenge-details/{{challenge.id}}/?type={{challenge.track}}") {{challenge.name}}
3451

35-
p {{challenge.numRegistrants}}
52+
p.date-completed {{challenge.submissionEndDate | date : 'MMMM yyyy'}}
3653

37-
a.submissions(ng-hide="challenge.track === 'DATA SCIENCE'", ng-href="https://www.{{DOMAIN}}/challenge-details/{{challenge.id}}/?type={{challenge.track}}#viewRegistrant")
38-
.submissions-icon
54+
.winner-ribbon(ng-show="challenge.wonFirst")
3955

40-
p {{challenge.numSubmissions}}
56+
.challenge-details
57+
p.place(ng-class="{ 'first-place': challenge.wonFirst }") {{challenge.userDetails.winningPlacements[0]}}#[span {{challenge.userDetails.winningPlacements[0] | ordinal:true}}] Place
4158

42-
a.forum(ng-href="http://apps.{{DOMAIN}}/forums//?module=Category&categoryID={{challenge.forumId}}")
43-
.forum-icon
59+
.challenge-score
60+
p.score {{challenge.userDetails.submissionReviewScore/100 | percentage}}
4461

45-
p Forum
62+
p Review Score
4663

4764
.challenge.list-view(ng-show="view=='list'", ng-class="challenge.track")
4865
.challenge-track
@@ -52,7 +69,6 @@
5269

5370
p.subtrack {{challenge.subTrack | underscoreStrip}}
5471

55-
// Only show if not data science track
5672
p.roles(ng-hide="challenge.track === 'DATA SCIENCE'") #[span Role:] {{challenge.userDetails.roles | listRoles}}
5773

5874
.challenge-details

app/filters/ordinal.filter.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
angular.module('topcoder').filter('ordinal', ordinal);
55

66
function ordinal() {
7-
return function(x) {
7+
return function(x, onlySuffix) {
88
x += '';
99
var y = x.charAt(x.length - 1);
1010
var suffix;
@@ -21,6 +21,11 @@
2121
default:
2222
suffix = 'th';
2323
}
24+
25+
if (onlySuffix) {
26+
return suffix;
27+
}
28+
2429
return x + suffix;
2530
};
2631
}

app/profile/subtrack/subtrack.controller.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,10 @@
120120
}
121121
)
122122
.then(function(data) {
123-
vm.challenges = data;
123+
ChallengeService.processPastChallenges(data);
124+
vm.challenges = data.filter(function(challenge) {
125+
return challenge.userDetails.hasUserSubmittedForReview;
126+
});
124127
vm.status.challenges = CONSTANTS.STATE_READY;
125128
return data;
126129
}).catch(function(err) {

app/services/challenge.service.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
getReviewEndDate: getReviewEndDate,
1616
getChallengeDetails: getChallengeDetails,
1717
processActiveDevDesignChallenges: processActiveDevDesignChallenges,
18-
processActiveMarathonMatches: processActiveMarathonMatches
18+
processActiveMarathonMatches: processActiveMarathonMatches,
19+
processPastChallenges: processPastChallenges
1920
};
2021

2122
return service;
@@ -138,5 +139,13 @@
138139
}
139140
});
140141
}
142+
143+
function processPastChallenges(challenges) {
144+
angular.forEach(challenges, function(challenge) {
145+
if (challenge.userDetails && Array.isArray(challenge.userDetails.winningPlacements)) {
146+
challenge.wonFirst = challenge.userDetails.winningPlacements[0] == 1;
147+
}
148+
});
149+
}
141150
};
142151
})();

0 commit comments

Comments
 (0)