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

Commit 2345520

Browse files
committed
add studio checkpoint submissions and submitter count
1 parent 0028a45 commit 2345520

17 files changed

+149
-37
lines changed

actions/challenges.js

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Copyright (C) 2013 - 2014 TopCoder Inc., All Rights Reserved.
33
*
4-
* @version 1.15
4+
* @version 1.16
55
* @author Sky_, mekanizumu, TCSASSEMBLER, freegod, Ghost_141, kurtrips, xjtufreeman, ecnu_haozi, hesibo, LazyChild
66
* @changes from 1.0
77
* merged with Member Registration API
@@ -38,6 +38,8 @@
3838
* changes in 1.15:
3939
* Change the open and active status filter behaviour. OPEN for only reg phase is open, ACTIVE for reg is closed and
4040
* the challenge status is active.
41+
* changes in 1.16:
42+
* add studio checkpoint submissions and submitter count
4143
*/
4244
"use strict";
4345

@@ -1164,19 +1166,20 @@ var getCheckpoint = function (api, connection, dbConnectionMap, isStudio, next)
11641166
challengeId: challengeId,
11651167
user_id: connection.caller.userId || 0,
11661168
projectCategory: isStudio ? helper.studio.category : helper.software.category
1169+
},
1170+
execQuery = function (name) {
1171+
return function (cbx) {
1172+
api.dataAccess.executeQuery(name, sqlParams, dbConnectionMap, cbx);
1173+
};
11671174
};
11681175
async.waterfall([
11691176
function (cb) {
11701177
//whole validation is here
11711178
validateChallenge(api, connection, dbConnectionMap, challengeId, isStudio, cb);
11721179
}, function (cb) {
11731180
async.parallel({
1174-
detail: function (cbx) {
1175-
api.dataAccess.executeQuery('get_checkpoint_detail', sqlParams, dbConnectionMap, cbx);
1176-
},
1177-
feedback: function (cbx) {
1178-
api.dataAccess.executeQuery(feedbackQueryName, sqlParams, dbConnectionMap, cbx);
1179-
}
1181+
detail: execQuery('get_checkpoint_detail'),
1182+
feedback: execQuery(feedbackQueryName)
11801183
}, cb);
11811184
}, function (res, cb) {
11821185
var generalFeedback = "", hasGeneralFeedback = true;
@@ -1198,6 +1201,24 @@ var getCheckpoint = function (api, connection, dbConnectionMap, isStudio, next)
11981201
};
11991202
});
12001203
result.generalFeedback = generalFeedback;
1204+
1205+
if (isStudio) {
1206+
async.parallel({
1207+
numberOfSubmissions: execQuery("get_studio_challenge_checkpoints_submissions_count"),
1208+
numberOfPassedScreeningSubmissions: execQuery("get_studio_challenge_checkpoints_passed_screening_submissions_count"),
1209+
numberOfPassedScreeningUniqueSubmitters: execQuery('get_studio_challenge_checkpoints_passed_screening_submitters_count'),
1210+
numberOfUniqueSubmitters: execQuery('get_studio_challenge_checkpoints_submitters_count')
1211+
}, cb);
1212+
} else {
1213+
cb(null, cb);
1214+
}
1215+
}, function (res, cb) {
1216+
if (isStudio) {
1217+
result.numberOfSubmissions = res.numberOfSubmissions[0].total;
1218+
result.numberOfPassedScreeningSubmissions = res.numberOfPassedScreeningSubmissions[0].total;
1219+
result.numberOfPassedScreeningUniqueSubmitters = res.numberOfPassedScreeningUniqueSubmitters[0].total;
1220+
result.numberOfUniqueSubmitters = res.numberOfUniqueSubmitters[0].total;
1221+
}
12011222
cb();
12021223
}
12031224
], function (err) {
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
select
2+
COUNT(*) AS total
3+
from upload u,
4+
submission s
5+
where u.project_id = @challengeId@
6+
and s.upload_id = u.upload_id
7+
and s.submission_type_id = 3
8+
and s.submission_status_id in (1,4)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name" : "get_studio_challenge_checkpoints_passed_screening_submissions_count",
3+
"db" : "tcs_catalog",
4+
"sqlfile" : "get_studio_challenge_checkpoints_passed_screening_submissions_count"
5+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
select
2+
COUNT (DISTINCT ri.value) AS total
3+
from upload u,
4+
submission s,
5+
resource_info ri
6+
where u.project_id = @challengeId@
7+
and s.upload_id = u.upload_id
8+
and s.submission_type_id = 3
9+
and s.submission_status_id in (1,4)
10+
and ri.resource_id = u.resource_id
11+
and ri.resource_info_type_id = 2
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name" : "get_studio_challenge_checkpoints_passed_screening_submitters_count",
3+
"db" : "tcs_catalog",
4+
"sqlfile" : "get_studio_challenge_checkpoints_passed_screening_submitters_count"
5+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
select
2+
COUNT(*) AS total
3+
from upload u,
4+
submission s
5+
where u.project_id = @challengeId@
6+
and s.upload_id = u.upload_id
7+
and s.submission_type_id = 3
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name" : "get_studio_challenge_checkpoints_submissions_count",
3+
"db" : "tcs_catalog",
4+
"sqlfile" : "get_studio_challenge_checkpoints_submissions_count"
5+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
select
2+
COUNT (DISTINCT ri.value) AS total
3+
from upload u,
4+
submission s,
5+
resource_info ri
6+
where u.project_id = @challengeId@
7+
and s.upload_id = u.upload_id
8+
and s.submission_type_id = 3
9+
and ri.resource_id = u.resource_id
10+
and ri.resource_info_type_id = 2
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name" : "get_studio_challenge_checkpoints_submitters_count",
3+
"db" : "tcs_catalog",
4+
"sqlfile" : "get_studio_challenge_checkpoints_submitters_count"
5+
}

test/sqls/checkpoint/tcs_catalog__clean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ DELETE FROM review WHERE submission_id >= 2001 AND submission_id <= 5000;
55
DELETE FROM submission WHERE submission_id >= 2001 AND submission_id <= 5000;
66
DELETE FROM prize WHERE prize_id >= 2001 AND prize_id <= 5000;
77
DELETE FROM upload WHERE project_id >= 2001 AND project_id <= 5000;
8+
DELETE FROM resource_info WHERE resource_id >= 2001 AND resource_id <= 5000;
89
DELETE FROM resource WHERE project_id >= 2001 AND project_id <= 5000;
910
DELETE FROM project_phase WHERE project_id >= 2001 AND project_id <= 5000;
1011
DELETE FROM project WHERE project_id >= 2001 AND project_id <= 5000;
1112
DELETE FROM project_studio_specification WHERE project_studio_spec_id >= 2001 AND project_studio_spec_id <= 5000;
1213
DELETE user_group_xref WHERE user_group_id IN (2001, 2002);
1314
DELETE group_contest_eligibility WHERE contest_eligibility_id IN (1000, 1001);
1415
DELETE contest_eligibility WHERE contest_eligibility_id IN (1000, 1001);
15-
DELETE security_groups WHERE group_id IN (2001, 2002);
16+
DELETE security_groups WHERE group_id IN (2001, 2002);

test/sqls/checkpoint/tcs_catalog__insert_test_data.part1

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ VALUES(2002, 2002, 17, 3, current, current + 2 units day, current + 2 units day,
1010

1111
INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, create_date, modify_user, modify_date) VALUES(2001, 20, 2001, 132456, current, 132456, current);
1212
INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, create_date, modify_user, modify_date) VALUES(2002, 20, 2002, 132456, current, 132456, current);
13+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (2001, 2, '132457', 132457, CURRENT, 132457, CURRENT);
14+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (2002, 2, '132456', 132456, CURRENT, 132456, CURRENT);
1315

1416
INSERT INTO comp_milestone_feedback(comp_milestone_feedback_id, project_id, feedback) VALUES(2001, 2001, 'General feedback for challenge 2001');
1517
INSERT INTO comp_milestone_feedback(comp_milestone_feedback_id, project_id, feedback) VALUES(2002, 2002, 'General feedback for challenge 2002');
@@ -86,3 +88,9 @@ INSERT INTO review_item(review_item_id, review_id, scorecard_question_id, answer
8688
INSERT INTO review_item_comment(review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) VALUES(2010, 2002, 2010, 11, 'Checkpoint review for submission 2010', 1, 132456, current, 132456, current);
8789

8890

91+
INSERT INTO upload(upload_id, project_id, resource_id, upload_type_id, upload_status_id, parameter, create_user, create_date, modify_user, modify_date) VALUES(2011, 2002, 2001, 1, 1, 'test', 132456, CURRENT, 132456, CURRENT);
92+
INSERT INTO prize(prize_id, project_id, place, prize_amount, prize_type_id, number_of_submissions, create_user, create_date, modify_user, modify_date) VALUES(2011, 2002, 6, 200, 14, 1, 'heffan', CURRENT, 'heffan', CURRENT);
93+
INSERT INTO submission(submission_id, upload_id, submission_status_id, placement, submission_type_id, prize_id, create_user, create_date, modify_user, modify_date) VALUES(2011, 2011, 6, 2, 3, 2010, 132456, CURRENT, 132456, CURRENT);
94+
INSERT INTO review(review_id, resource_id, submission_id, project_phase_id, scorecard_id, committed, create_user, create_date, modify_user, modify_date) VALUES(2011, 2002, 2011, 2002, 30000417, 1, 132456, current, 132456, current);
95+
INSERT INTO review_item(review_item_id, review_id, scorecard_question_id, answer, sort, create_user, create_date, modify_user, modify_date) VALUES(2011, 2010, 30003113, 'test', 1, 132456, current, 132456, current);
96+
INSERT INTO review_item_comment(review_item_comment_id, resource_id, review_item_id, comment_type_id, content, sort, create_user, create_date, modify_user, modify_date) VALUES(2011, 2002, 2011, 11, 'Checkpoint review for submission 2010', 1, 132456, current, 132456, current);

test/sqls/checkpoint/tcs_catalog__insert_test_data.part2

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ VALUES(3002, 3002, 17, 3, current, current + 2 units day, current + 2 units day,
1111

1212
INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, create_date, modify_user, modify_date) VALUES(3001, 20, 3001, 132456, current, 132456, current);
1313
INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, create_date, modify_user, modify_date) VALUES(3002, 20, 3002, 132456, current, 132456, current);
14+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (3001, 2, '132457', 132457, CURRENT, 132457, CURRENT);
15+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (3002, 2, '132456', 132456, CURRENT, 132456, CURRENT);
1416

1517
INSERT INTO comp_milestone_feedback(comp_milestone_feedback_id, project_id, feedback) VALUES(3001, 3001, 'General feedback for challenge 3001');
1618
INSERT INTO comp_milestone_feedback(comp_milestone_feedback_id, project_id, feedback) VALUES(3002, 3002, 'General feedback for challenge 3002');

test/sqls/checkpoint/tcs_catalog__insert_test_data.part3

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, cre
1919
INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, create_date, modify_user, modify_date) VALUES(4002, 20, 4002, 132456, current, 132456, current);
2020
INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, create_date, modify_user, modify_date) VALUES(4003, 20, 4003, 132456, current, 132456, current);
2121
INSERT INTO resource(resource_id, resource_role_id, project_id, create_user, create_date, modify_user, modify_date) VALUES(4004, 20, 4004, 132456, current, 132456, current);
22+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (4001, 2, '132457', 132457, CURRENT, 132457, CURRENT);
23+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (4002, 2, '132456', 132456, CURRENT, 132456, CURRENT);
24+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (4003, 2, '132457', 132457, CURRENT, 132457, CURRENT);
25+
INSERT INTO resource_info (resource_id, resource_info_type_id, value, create_user, create_date, modify_user, modify_date) VALUES (4004, 2, '132456', 132456, CURRENT, 132456, CURRENT);
2226

2327
INSERT INTO comp_milestone_feedback(comp_milestone_feedback_id, project_id, feedback) VALUES(4003, 4003, 'General feedback for challenge 4003');
2428
INSERT INTO comp_milestone_feedback(comp_milestone_feedback_id, project_id, feedback) VALUES(4004, 4004, 'General feedback for challenge 4004');
@@ -40,4 +44,4 @@ INSERT INTO review_item_comment(review_item_comment_id, resource_id, review_item
4044
INSERT INTO project_studio_specification(project_studio_spec_id, general_feedback, create_user, create_date, modify_user, modify_date) VALUES(4011, null, 132456, current, 132456, current);
4145

4246
INSERT INTO project(project_id, project_status_id, project_category_id, tc_direct_project_id, create_user, create_date, modify_user, modify_date) VALUES(4010, 2, 14, 132456, 4010, current, 132456, current);
43-
INSERT INTO project(project_id, project_status_id, project_category_id, tc_direct_project_id, project_studio_spec_id, create_user, create_date, modify_user, modify_date) VALUES(4011, 2, 17, 132456, 4011, 4011, current, 132456, current);
47+
INSERT INTO project(project_id, project_status_id, project_category_id, tc_direct_project_id, project_studio_spec_id, create_user, create_date, modify_user, modify_date) VALUES(4011, 2, 17, 132456, 4011, 4011, current, 132456, current);
Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,33 @@
11
{
22
"checkpointResults": [
33
{
4-
"feedback": "Checkpoint review for submission 2006",
5-
"submissionId": 2006
4+
"submissionId": 2006,
5+
"feedback": "Checkpoint review for submission 2006"
66
},
77
{
8-
"feedback": "Checkpoint review for submission 2007",
9-
"submissionId": 2007
8+
"submissionId": 2007,
9+
"feedback": "Checkpoint review for submission 2007"
1010
},
1111
{
12-
"feedback": "Checkpoint review for submission 2008",
13-
"submissionId": 2008
12+
"submissionId": 2008,
13+
"feedback": "Checkpoint review for submission 2008"
1414
},
1515
{
16-
"feedback": "Checkpoint review for submission 2009",
17-
"submissionId": 2009
16+
"submissionId": 2009,
17+
"feedback": "Checkpoint review for submission 2009"
1818
},
1919
{
20-
"feedback": "Checkpoint review for submission 2010",
21-
"submissionId": 2010
20+
"submissionId": 2010,
21+
"feedback": "Checkpoint review for submission 2010"
22+
},
23+
{
24+
"submissionId": 2010,
25+
"feedback": "Checkpoint review for submission 2010"
2226
}
2327
],
24-
"generalFeedback": "general feedback for challenge 2002"
25-
}
28+
"generalFeedback": "general feedback for challenge 2002",
29+
"numberOfSubmissions": 6,
30+
"numberOfPassedScreeningSubmissions": 5,
31+
"numberOfPassedScreeningUniqueSubmitters": 1,
32+
"numberOfUniqueSubmitters": 2
33+
}

test/test_files/expected_checkpoint_studio_2.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,9 @@
55
"submissionId": 4006
66
}
77
],
8-
"generalFeedback": ""
9-
}
8+
"generalFeedback": "",
9+
"numberOfSubmissions": 1,
10+
"numberOfPassedScreeningSubmissions": 1,
11+
"numberOfPassedScreeningUniqueSubmitters": 1,
12+
"numberOfUniqueSubmitters": 1
13+
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
{
22
"checkpointResults": [],
3-
"generalFeedback": "general feedback for challenge 4004"
4-
}
3+
"generalFeedback": "general feedback for challenge 4004",
4+
"numberOfSubmissions": 0,
5+
"numberOfPassedScreeningSubmissions": 0,
6+
"numberOfPassedScreeningUniqueSubmitters": 0,
7+
"numberOfUniqueSubmitters": 0
8+
}
Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
{
22
"checkpointResults": [
33
{
4-
"feedback": "Checkpoint review for submission 3006",
5-
"submissionId": 3006
4+
"submissionId": 3006,
5+
"feedback": "Checkpoint review for submission 3006"
66
},
77
{
8-
"feedback": "Checkpoint review for submission 3007",
9-
"submissionId": 3007
8+
"submissionId": 3007,
9+
"feedback": "Checkpoint review for submission 3007"
1010
},
1111
{
12-
"feedback": "Checkpoint review for submission 3008",
13-
"submissionId": 3008
12+
"submissionId": 3008,
13+
"feedback": "Checkpoint review for submission 3008"
1414
},
1515
{
16-
"feedback": "Checkpoint review for submission 3009",
17-
"submissionId": 3009
16+
"submissionId": 3009,
17+
"feedback": "Checkpoint review for submission 3009"
1818
},
1919
{
20-
"feedback": "Checkpoint review for submission 3010",
21-
"submissionId": 3010
20+
"submissionId": 3010,
21+
"feedback": "Checkpoint review for submission 3010"
2222
}
2323
],
24-
"generalFeedback": "general feedback for challenge 3002"
25-
}
24+
"generalFeedback": "general feedback for challenge 3002",
25+
"numberOfSubmissions": 5,
26+
"numberOfPassedScreeningSubmissions": 5,
27+
"numberOfPassedScreeningUniqueSubmitters": 1,
28+
"numberOfUniqueSubmitters": 1
29+
}

0 commit comments

Comments
 (0)