Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit eec4ba8

Browse files
author
vikasrohit
committedFeb 10, 2016
Merge pull request #724 from appirio-tech/feature/sup-3058-adapt-fe-for-json-change-challenges-api
SUP-3058, Adapt FE according to new json structure of challenge endpoint
2 parents 5c9bd4b + 04550b6 commit eec4ba8

File tree

6 files changed

+56
-36
lines changed

6 files changed

+56
-36
lines changed
 

‎app/directives/challenge-user-place/challenge-user-place.directive.js

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,6 @@ import _ from 'lodash'
5959
$scope.challenge.thumbnailId = $scope.challenge.userDetails.submissions[0].id
6060
$scope.imageURL = $scope.challenge.userDetails.submissions[0].submissionImage && $scope.challenge.userDetails.submissions[0].submissionImage.full
6161
$scope.selectedImage = $scope.imageURL
62-
63-
$scope.challenge.highestPlacement = _.min($scope.challenge.userDetails.submissions.filter(function(submission) {
64-
return submission.type === CONSTANTS.SUBMISSION_TYPE_CONTEST && submission.placement
65-
}), 'placement').placement
66-
67-
if ($scope.challenge.highestPlacement == 1) {
68-
$scope.challenge.wonFirst = true
69-
}
7062
}
7163
}
7264

‎app/directives/challenge-user-place/design-challenge-user-place.jade

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
p.place(ng-class="{ 'first-place': challenge.wonFirst }", ng-show="challenge.highestPlacement") {{challenge.highestPlacement}}#[span {{challenge.highestPlacement | ordinal:true}}] Place
33
p.place.didnt(ng-show="challenge.userStatus === 'NOT_FINISHED'") Didn't Finish
44
p.place.passed(ng-show="challenge.userStatus === 'PASSED_SCREENING'") Passed Screening
5+
p.place(ng-show="!challenge.highestPlacement && challenge.userStatus === 'PASSED_REVIEW'") Passed Review
56
p.place.completed(ng-show="challenge.userStatus === 'COMPLETED'") COMPLETED
67

78
.thumbnail(ng-click="!challenge.isPrivate && imageURL && openLightbox()", ng-class="{hidden: challenge.userStatus !== 'PASSED_REVIEW'}")
@@ -23,6 +24,7 @@
2324
p.place(ng-class="{ 'first-place': challenge.wonFirst }", ng-show="challenge.highestPlacement") {{challenge.highestPlacement}}#[span {{challenge.highestPlacement | ordinal:true}}] Place
2425
p.place.didnt(ng-show="challenge.userStatus === 'NOT_FINISHED'") Didn't Finish
2526
p.place.passed(ng-show="challenge.userStatus === 'PASSED_SCREENING'") Passed Screening
27+
p.place(ng-show="!challenge.highestPlacement && challenge.userStatus === 'PASSED_REVIEW'") Passed Review
2628
p.place.completed(ng-show="challenge.userStatus === 'COMPLETED'") COMPLETED
2729
p.date-completed {{challenge.submissionEndDate | date : 'MMMM yyyy'}}
2830

‎app/directives/challenge-user-place/dev-challenge-user-place.jade

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
p.place(ng-class="{ 'first-place': challenge.wonFirst }", ng-show="challenge.highestPlacement") {{challenge.highestPlacement}}#[span {{challenge.highestPlacement | ordinal:true}}] Place
33
p.place(ng-show="challenge.userStatus === 'NOT_FINISHED'") Didn't Finish
44
p.place(ng-show="challenge.userStatus === 'PASSED_SCREENING'") Passed Screening
5+
p.place(ng-show="!challenge.highestPlacement && challenge.userStatus === 'PASSED_REVIEW'") Passed Review
56
p.place(ng-show="challenge.userStatus === 'COMPLETED'") COMPLETED
67

78
.challenge-score(ng-hide="challenge.userStatus !== 'PASSED_REVIEW'")
@@ -14,6 +15,7 @@
1415
p.place(ng-class="{ 'first-place': challenge.wonFirst }", ng-show="challenge.highestPlacement") {{challenge.highestPlacement}}#[span {{challenge.highestPlacement | ordinal:true}}] Place
1516
p.place(ng-show="challenge.userStatus === 'NOT_FINISHED'") Didn't Finish
1617
p.place(ng-show="challenge.userStatus === 'PASSED_SCREENING'") Passed Screening
18+
p.place(ng-show="!challenge.highestPlacement && challenge.userStatus === 'PASSED_REVIEW'") Passed Review
1719
p.place(ng-show="challenge.userStatus === 'COMPLETED'") Completed
1820
p.date-completed {{challenge.submissionEndDate | date : 'MMMM yyyy'}}
1921

‎app/services/challenge.service.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -181,22 +181,19 @@ import moment from 'moment'
181181
// TODO placement logic for challenges can be moved to their corresponding user place directive
182182
// process placement for challenges having winningPlacements array in response
183183
if (Array.isArray(challenge.userDetails.winningPlacements)) {
184-
challenge.highestPlacement = _.min(challenge.userDetails.winningPlacements)
184+
challenge.highestPlacement = _.min(challenge.userDetails.winningPlacements, 'placed').placed
185185
}
186186
// process placement for design challenges
187187
if (challenge.track == 'DESIGN' && challenge.userDetails.submissions && challenge.userDetails.submissions.length > 0) {
188188
challenge.thumbnailId = challenge.userDetails.submissions[0].id
189-
190-
challenge.highestPlacement = _.min(challenge.userDetails.submissions.filter(function(submission) {
191-
return submission.type === CONSTANTS.SUBMISSION_TYPE_CONTEST && submission.placement
192-
}), 'placement').placement
193189
}
194-
if (challenge.track === 'DEVELOP' && challenge.subTrack === 'FIRST_2_FINISH'
195-
&& challenge.userDetails.submissions && challenge.userDetails.submissions.length > 0) {
196-
challenge.highestPlacement = _.min(challenge.userDetails.submissions.filter(function(submission) {
190+
// determines the user status for passing the review for one of the submissions
191+
if (challenge.userDetails.submissions && challenge.userDetails.submissions.length > 0) {
192+
challenge.passedReview = challenge.userDetails.submissions.filter(function(submission) {
197193
return submission.type === CONSTANTS.SUBMISSION_TYPE_CONTEST
198-
&& submission.status === CONSTANTS.STATUS_ACTIVE && submission.placement
199-
}), 'placement').placement
194+
&& (submission.status === CONSTANTS.STATUS_ACTIVE
195+
|| submission.status === CONSTANTS.STATUS_COMPLETED_WITHOUT_WIN)
196+
}).length > 0
200197
}
201198
if (challenge.highestPlacement === 0) {
202199
challenge.highestPlacement = null
@@ -218,7 +215,7 @@ import moment from 'moment'
218215
}
219216

220217
if (challenge.userDetails.hasUserSubmittedForReview) {
221-
if (!challenge.highestPlacement) {
218+
if (!challenge.passedReview) {
222219
challenge.userStatus = 'PASSED_SCREENING'
223220
} else {
224221
challenge.userStatus = 'PASSED_REVIEW'

‎app/services/challenge.service.spec.js

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,16 @@ describe('Challenge Service', function() {
432432
userDetails: {
433433
hasUserSubmittedForReview: true,
434434
roles: ['Submitter'],
435+
winningPlacements: [
436+
{
437+
'submissionId': 12345,
438+
'submitterId': 123456,
439+
'amount': 500.0,
440+
'placed': 1,
441+
'finalScore': 98.0,
442+
'challengeId': 30041345
443+
}
444+
],
435445
submissions: [
436446
{
437447
challengeId: 30041345,
@@ -479,6 +489,16 @@ describe('Challenge Service', function() {
479489
userDetails: {
480490
hasUserSubmittedForReview: true,
481491
roles: ['Submitter'],
492+
winningPlacements: [
493+
{
494+
'submissionId': 12345,
495+
'submitterId': 123456,
496+
'amount': 500.0,
497+
'placed': 1,
498+
'finalScore': 98.0,
499+
'challengeId': 30041345
500+
}
501+
],
482502
submissions: [
483503
{
484504
challengeId: 30041345,
@@ -504,8 +524,7 @@ describe('Challenge Service', function() {
504524
status: 'Completed Without Win',
505525
type: 'Checkpoint Submission'
506526
}
507-
],
508-
winningPlacements: [2, 11, 1]
527+
]
509528
}
510529

511530
}
@@ -528,11 +547,12 @@ describe('Challenge Service', function() {
528547
userDetails: {
529548
hasUserSubmittedForReview: true,
530549
roles: ['Submitter'],
550+
winningPlacements: null,
531551
submissions: [
532552
{
533553
challengeId: 30041345,
534554
id: 12345,
535-
placement: 1,
555+
placement: 5,
536556
score: 98.0,
537557
status: 'Active',
538558
type: 'Contest Submission'
@@ -553,8 +573,7 @@ describe('Challenge Service', function() {
553573
status: 'Completed Without Win',
554574
type: 'Checkpoint Submission'
555575
}
556-
],
557-
winningPlacements: [0]
576+
]
558577
}
559578

560579
}
@@ -563,7 +582,7 @@ describe('Challenge Service', function() {
563582
var challenge = challenges[0]
564583
expect(challenge.highestPlacement).not.to.exist
565584
expect(challenge.wonFirst).to.exist.to.false
566-
expect(challenge.userStatus).to.exist.to.equal('PASSED_SCREENING')
585+
expect(challenge.userStatus).to.exist.to.equal('PASSED_REVIEW')
567586
expect(challenge.userHasSubmitterRole).to.exist.to.true
568587
})
569588

@@ -577,6 +596,16 @@ describe('Challenge Service', function() {
577596
userDetails: {
578597
hasUserSubmittedForReview: true,
579598
roles: ['Submitter'],
599+
winningPlacements: [
600+
{
601+
'submissionId': 12345,
602+
'submitterId': 123456,
603+
'amount': 500.0,
604+
'placed': 1,
605+
'finalScore': 98.0,
606+
'challengeId': 30041345
607+
}
608+
],
580609
submissions: [
581610
{
582611
challengeId: 30041345,
@@ -624,15 +653,8 @@ describe('Challenge Service', function() {
624653
userDetails: {
625654
hasUserSubmittedForReview: true,
626655
roles: ['Submitter'],
656+
winningPlacements: null,
627657
submissions: [
628-
{
629-
challengeId: 30041345,
630-
id: 12345,
631-
placement: null,
632-
score: 34.0,
633-
status: 'Active',
634-
type: 'Contest Submission'
635-
},
636658
{
637659
challengeId: 30041345,
638660
id: 12346,
@@ -671,6 +693,7 @@ describe('Challenge Service', function() {
671693
userDetails: {
672694
hasUserSubmittedForReview: true,
673695
roles: ['Submitter'],
696+
winningPlacements: null,
674697
submissions: [
675698
{
676699
challengeId: 30041345,
@@ -702,7 +725,7 @@ describe('Challenge Service', function() {
702725
]
703726
ChallengeService.processPastChallenges(challenges)
704727
var challenge = challenges[0]
705-
expect(challenge.highestPlacement).to.exist.to.equal(5)
728+
expect(challenge.highestPlacement).not.to.exist
706729
expect(challenge.wonFirst).to.exist.to.false
707730
expect(challenge.userStatus).to.exist.to.equal('PASSED_REVIEW')
708731
expect(challenge.userHasSubmitterRole).to.exist.to.true
@@ -718,6 +741,7 @@ describe('Challenge Service', function() {
718741
userDetails: {
719742
hasUserSubmittedForReview: false,
720743
roles: ['Submitter'],
744+
winningPlacements: null,
721745
submissions: []
722746
}
723747
}
@@ -740,6 +764,7 @@ describe('Challenge Service', function() {
740764
userDetails: {
741765
hasUserSubmittedForReview: false,
742766
roles: ['Submitter'],
767+
winningPlacements: null,
743768
submissions: null
744769
}
745770
}
@@ -762,6 +787,7 @@ describe('Challenge Service', function() {
762787
userDetails: {
763788
hasUserSubmittedForReview: false,
764789
roles: ['Observer'],
790+
winningPlacements: null,
765791
submissions: []
766792
}
767793
}
@@ -785,7 +811,7 @@ describe('Challenge Service', function() {
785811
hasUserSubmittedForReview: false,
786812
roles: [],
787813
submissions: [],
788-
winningPlacements: [0]
814+
winningPlacements: null
789815
}
790816
}
791817
]

‎app/topcoder.constants.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@ angular.module('CONSTANTS', []).constant('CONSTANTS', {
3434
'CODING' : 'CODING',
3535
'REGISTERED' : 'REGISTERED',
3636
'SUBMISSION_TYPE_CONTEST': 'Contest Submission',
37-
'STATUS_ACTIVE' : 'Active'
37+
'STATUS_ACTIVE' : 'Active',
38+
'STATUS_COMPLETED_WITHOUT_WIN' : 'Completed Without Win'
3839
})

0 commit comments

Comments
 (0)
This repository has been archived.