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

Release qa to prod #424

Merged
merged 15 commits into from
May 14, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ test/tmp/design_submissions/*.zip
test/tmp/design_tmp_submissions/*.zip
test/tmp/memberPhoto/*
.idea
.settings
35 changes: 29 additions & 6 deletions actions/challenges.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,10 @@ var TECHNOLOGY_FILTER = ' AND EXISTS (SELECT DISTINCT 1 FROM comp_technology ct
var PLATFORM_FILTER = ' AND EXISTS (SELECT 1 FROM project_platform pp WHERE pp.project_platform_id IN (@filter@) ' +
'AND p.project_id = pp.project_id)';

/* Filter based on review type */
var REVIEW_FILTER = ' AND EXISTS (SELECT 1 FROM project_info pi WHERE project_info_type_id = 79 AND value IN (@filter@) ' +
'AND p.project_id = pi.project_id)';

/**
* The challenge type filter for challenges api.
* @since 1.30
Expand Down Expand Up @@ -176,7 +180,7 @@ var MY_CHALLENGES_FILTER = 'AND EXISTS ' +
var ALLOWABLE_QUERY_PARAMETER = [
"listType", "challengeType", "challengeName", "projectId", SORT_COLUMN,
"sortOrder", "pageIndex", "pageSize", "prizeLowerBound", "prizeUpperBound", "cmcTaskId", 'communityId',
"submissionEndFrom", "submissionEndTo", "technologies", "platforms"];
"submissionEndFrom", "submissionEndTo", "technologies", "platforms", 'review'];

/**
* Represents a list of valid query parameter for split challenges api.
Expand All @@ -185,7 +189,7 @@ var ALLOWABLE_QUERY_PARAMETER = [
var SPLIT_API_ALLOWABLE_QUERY_PARAMETER = [
"challengeType", "challengeName", "projectId", SORT_COLUMN,
"sortOrder", "pageIndex", "pageSize", "prizeLowerBound", "prizeUpperBound", 'communityId',
"submissionEndFrom", "submissionEndTo", 'type', 'platforms', 'technologies'];
"submissionEndFrom", "submissionEndTo", 'type', 'platforms', 'technologies', 'review'];

/**
* Represents a predefined list of valid sort column for active challenge.
Expand Down Expand Up @@ -763,7 +767,7 @@ var editSql = function (sql, template, content) {
* @since 1.23
*/
var addFilter = function (sql, filter, isMyChallenges, helper, caller) {
var platform, technology, challengeFilter, challengeType;
var platform, technology, review, challengeFilter, challengeType;
if (_.isDefined(filter.platforms)) {
platform = filter.platforms.join(', ');
sql.count = editSql(sql.count, PLATFORM_FILTER, platform);
Expand All @@ -781,6 +785,16 @@ var addFilter = function (sql, filter, isMyChallenges, helper, caller) {
sql.count = editSql(sql.count, CHALLENGE_TYPE_FILTER, challengeType);
sql.data = editSql(sql.data, CHALLENGE_TYPE_FILTER, challengeType);
}

if (_.isDefined(filter.review)) {
review = "'" + filter.review.toUpperCase().replace(/,/g, "','") + "'";
}
else {
review = "'COMMUNITY','INTERNAL'";
}

sql.count = editSql(sql.count, REVIEW_FILTER, review);
sql.data = editSql(sql.data, REVIEW_FILTER, review);

if (isMyChallenges) {
sql.count = editSql(sql.count, MY_CHALLENGES_FILTER, null);
Expand Down Expand Up @@ -876,7 +890,7 @@ var searchChallenges = function (api, connection, dbConnectionMap, community, ne
query = connection.rawConnection.parsedURL.query,
caller = connection.caller,
copyToFilter = ["challengeType", "challengeName", "projectId", "prizeLowerBound",
"prizeUpperBound", "cmcTaskId", 'communityId', "submissionEndFrom", "submissionEndTo", "technologies", "platforms"],
"prizeUpperBound", "cmcTaskId", 'communityId', "submissionEndFrom", "submissionEndTo", "technologies", "platforms", "review"],
sqlParams = {},
filter = {},
pageIndex,
Expand Down Expand Up @@ -2443,6 +2457,7 @@ exports.getSoftwareChallenge = {
outputExample: {},
version: 'v2',
transaction : 'read', // this action is read-only
cacheLifetime: 1000 * 60 * 10,
databases : ["tcs_catalog"],
run: function (api, connection, next) {
if (connection.dbConnectionMap) {
Expand All @@ -2468,6 +2483,7 @@ exports.getStudioChallenge = {
outputExample: {},
version: 'v2',
transaction: 'read', // this action is read-only
cacheLifetime: 1000 * 60 * 10,
databases: ["tcs_catalog", "tcs_dw"],
run: function (api, connection, next) {
if (connection.dbConnectionMap) {
Expand Down Expand Up @@ -2495,6 +2511,7 @@ exports.getChallenge = {
outputExample: {},
version: 'v2',
transaction: 'read', // this action is read-only
cacheLifetime: 1000 * 60 * 10,
databases: ["tcs_catalog", "tcs_dw"],
run: function (api, connection, next) {
var challengeId = Number(connection.params.challengeId),
Expand Down Expand Up @@ -2537,6 +2554,7 @@ exports.searchSoftwareChallenges = {
outputExample: {},
version: 'v2',
transaction : 'read', // this action is read-only
cacheLifetime: 1000 * 60 * 10,
databases : ["tcs_catalog"],
run: function (api, connection, next) {
if (connection.dbConnectionMap) {
Expand All @@ -2562,6 +2580,7 @@ exports.searchStudioChallenges = {
outputExample: {},
version: 'v2',
transaction : 'read', // this action is read-only
cacheLifetime: 1000 * 60 * 10,
databases : ["tcs_catalog"],
run: function (api, connection, next) {
if (connection.dbConnectionMap) {
Expand All @@ -2587,6 +2606,7 @@ exports.searchSoftwareAndStudioChallenges = {
outputExample: {},
version: 'v2',
transaction : 'read', // this action is read-only
cacheLifetime: 1000 * 60 * 10,
databases : ["tcs_catalog"],
run: function (api, connection, next) {
if (connection.dbConnectionMap) {
Expand Down Expand Up @@ -3630,7 +3650,7 @@ var getChallenges = function (api, connection, listType, isMyChallenges, next) {
query = connection.rawConnection.parsedURL.query,
caller = connection.caller,
copyToFilter = ["challengeType", "challengeName", "projectId", "prizeLowerBound",
"prizeUpperBound", 'communityId', "submissionEndFrom", "submissionEndTo", 'type', 'technologies', 'platforms'],
"prizeUpperBound", 'communityId', "submissionEndFrom", "submissionEndTo", 'type', 'technologies', 'platforms', 'review'],
dbConnectionMap = connection.dbConnectionMap,
sqlParams = {},
filter = {},
Expand All @@ -3650,7 +3670,8 @@ var getChallenges = function (api, connection, listType, isMyChallenges, next) {
}
}

sortOrder = query.sortorder || "desc";
sortOrder = query.sortorder ||
(!query.sortcolumn && (listType == api.helper.ListType.ACTIVE || listType == api.helper.ListType.UPCOMING) ? "asc" : "desc");
sortColumn = query.sortcolumn || DEFAULT_SORT_COLUMN;
pageIndex = Number(query.pageindex || 1);
pageSize = Number(query.pagesize || 150);
Expand Down Expand Up @@ -3841,6 +3862,7 @@ exports.getOpenChallenges = {
outputExample: {},
version: 'v2',
transaction: 'read',
cacheLifetime: 1000 * 60 * 10,
databases: ['tcs_catalog'],
run: function (api, connection, next) {
if (connection.dbConnectionMap) {
Expand Down Expand Up @@ -4027,6 +4049,7 @@ exports.getMyChallenges = {
outputExample: {},
version: 'v2',
transaction: 'read',
cacheLifetime: 1000 * 60 * 10,
databases: ['tcs_catalog'],
run: function (api, connection, next) {
if (connection.dbConnectionMap) {
Expand Down
5 changes: 3 additions & 2 deletions initializers/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ var apiName2dbNameMap = {
currentphaseremainingtime: 'current_phase_remaining_time',
currentphasename: 'current_phase_name',
registrationopen: 'registration_open',
totalPrize: 'total_prize',
totalprize: 'total_prize',
registrationstartdate: 'registration_start_date',
challengecommunity: 'challenge_community',
problemid: 'problem_id',
Expand All @@ -280,7 +280,8 @@ var apiName2dbNameMap = {
challengestarttime: "challenge_start_time",
challengeendtime: "challenge_end_time",
systeststarttime: "systest_start_time",
systestendtime: "systest_end_time"
systestendtime: "systest_end_time",
firstplaceprize: "first_place_prize"
};

/**
Expand Down
8 changes: 7 additions & 1 deletion queries/get_active_challenges
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
SELECT
SKIP @first_row_index@
FIRST @page_size@
CASE WHEN (p.project_studio_spec_id IS NOT NULL) THEN 1 ELSE 0 END AS is_studio
, pcl.description AS challenge_type
, pn.value AS challenge_name
, p.project_id AS challenge_id
, pi4.value AS forum_id
, pi79.value AS review_type
, (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id
WHERE u1.project_id = p.project_id
AND s1.submission_type_id = 1
Expand Down Expand Up @@ -41,6 +44,7 @@ FROM project p
, outer project_phase nd_phase
, project_category_lu pcl
, outer project_info pi4 --forum id
, outer project_info pi79
, project_info pi1 -- external id
WHERE p.project_status_id = pstatus.project_status_id
AND p.project_id = pn.project_id
Expand All @@ -56,6 +60,8 @@ AND pidr.project_info_type_id = 26 --digital run
AND pi4.project_id = p.project_id
AND pi4.project_info_type_id = 4 --forum id
AND p.project_Id = nd_phase.project_id
AND pi79.project_info_type_id = 79 -- review type (COMMUNITY, INTERNAL, PEER)
AND pi79.project_id = p.project_id
AND nd_phase.project_phase_id = (SELECT MIN(project_phase_id) FROM project_phase WHERE project_id = p.project_id AND phase_status_id = 2 AND phase_type_id IN (1,2,3,4,5,6,7,8,9,10,11,12))
AND p.project_category_id = pcl.project_category_id
AND p.project_status_id = 1
Expand All @@ -67,4 +73,4 @@ AND pp1.phase_status_id IN (2, 3)
AND pi1.project_info_type_id = 1 -- external reference id
AND pi1.project_id = p.project_id

ORDER BY NVL(pp2.actual_end_time, pp2.scheduled_end_time) ASC
ORDER BY @sort_column@ @sort_order@
40 changes: 35 additions & 5 deletions queries/get_open_challenges
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
SELECT is_studio
, challenge_type
, challenge_name
, challenge_id
, forum_id
, review_type
, num_submissions
, num_registrants
, number_of_checkpoints_prizes
, first_place_prize
, total_prize
, total_checkpoint_prize
, registration_end_date
, registration_start_date
, checkpoint_submission_end_date
, submission_end_date
, current_phase_end_date
, current_phase_remaining_time
, status
, current_phase_name
, digital_run_points
, nvl((SELECT max(event_id) from contest_project_xref x, contest c where project_id = challenge_id and c.contest_id = x.contest_id), 0) as event_id
, (SELECT event_short_desc from event e where e.event_id = nvl((SELECT max(event_id) from contest_project_xref x, contest c where project_id = challenge_id and c.contest_id = x.contest_id), 0)) as event_name
, technology_list(value_for_technology) AS technologies
, platform_list(id_for_platform) as platforms
, registration_open
, NVL((SELECT CAST('t' AS boolean) FROM contest_eligibility WHERE contest_id =challenge_id), CAST('f' AS boolean)) AS is_private
FROM (
SELECT
SKIP @first_row_index@
FIRST @page_size@
Expand All @@ -6,6 +34,7 @@ FIRST @page_size@
, pn.value AS challenge_name
, p.project_id AS challenge_id
, pi4.value AS forum_id
, pi79.value as review_type
, (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id
WHERE u1.project_id = p.project_id
AND s1.submission_type_id = 1
Expand All @@ -26,12 +55,9 @@ FIRST @page_size@
, CASE WHEN pidr.value = 'On' THEN
NVL((SELECT value::decimal FROM project_info pi_dr WHERE pi_dr.project_info_type_id = 30 AND pi_dr.project_id = p.project_id), (SELECT round(NVL(pi16.value::decimal, 0)) FROM project_info pi16 WHERE pi16.project_info_type_id = 16 AND pi16.project_id = p.project_id))
ELSE NULL END AS digital_run_points
, nvl((SELECT max(event_id) from contest_project_xref x, contest c where project_id = p.project_id and c.contest_id = x.contest_id), 0) as event_id
, (SELECT event_short_desc from event e where e.event_id = nvl((SELECT max(event_id) from contest_project_xref x, contest c where project_id = p.project_id and c.contest_id = x.contest_id), 0)) as event_name
, technology_list(pi1.value) AS technologies
, platform_list(p.project_id) as platforms
, pi1.value AS value_for_technology
, p.project_id as id_for_platform
, CASE WHEN (pp1.phase_status_id = 2) THEN 'Yes' ELSE 'No' END AS registration_open
, NVL((SELECT CAST('t' AS boolean) FROM contest_eligibility WHERE contest_id = p.project_id), CAST('f' AS boolean)) AS is_private
FROM project p
, project_status_lu pstatus
, project_phase pp1 --registration phase
Expand All @@ -42,6 +68,7 @@ FROM project p
, outer project_phase nd_phase
, project_category_lu pcl
, outer project_info pi4 --forum id
, outer project_info pi79
, project_info pi1 -- external id
WHERE p.project_status_id = pstatus.project_status_id
AND p.project_id = pn.project_id
Expand All @@ -56,6 +83,8 @@ AND pidr.project_id = p.project_id
AND pidr.project_info_type_id = 26 --digital run
AND pi4.project_id = p.project_id
AND pi4.project_info_type_id = 4 --forum id
AND pi79.project_info_type_id = 79 -- review type (COMMUNITY, INTERNAL, PEER)
AND pi79.project_id = p.project_id
AND p.project_Id = nd_phase.project_id
AND nd_phase.project_phase_id = (SELECT MAX(project_phase_id) FROM project_phase WHERE project_id = p.project_id AND phase_status_id = 2 AND phase_type_id IN (1,2,3,4,5,6,7,8,9,10,11,12))
AND p.project_category_id = pcl.project_category_id
Expand All @@ -74,3 +103,4 @@ AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id
AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1), 0) <= @prize_upper_bound@
AND p.tc_direct_project_id = DECODE(@project_id@, 0, p.tc_direct_project_id, @project_id@)
ORDER BY @sort_column@ @sort_order@
)
35 changes: 28 additions & 7 deletions queries/get_past_challenges
Original file line number Diff line number Diff line change
@@ -1,11 +1,35 @@
SELECT is_studio
, challenge_type
, challenge_name
, challenge_id
, (SELECT value FROM project_info WHERE project_id = challenge_id AND project_info_type_id = 4) AS forum_id
, num_submissions
, num_registrants
, number_of_checkpoints_prizes
, first_place_prize
, total_prize
, checkpoint_total_prizes
, registration_start_date
, registration_end_date
, checkpoint_submission_end_date
, submission_end_date
, status
, digital_run_points
, nvl((SELECT MAX(event_id) FROM contest_project_xref x, contest c WHERE project_id = challenge_id AND c.contest_id = x.contest_id), 0) AS event_id
, (SELECT event_short_desc FROM event e WHERE e.event_id = nvl((SELECT MAX(event_id) FROM contest_project_xref x, contest c WHERE project_id = challenge_id AND c.contest_id = x.contest_id), 0)) AS event_name
, technology_list(value_for_technology) AS technologies
, platform_list(id_for_platform) AS platforms
, registration_open
, NVL((SELECT CAST('t' AS boolean) FROM contest_eligibility WHERE contest_id = challenge_id), CAST('f' AS boolean)) AS is_private
, (SELECT value FROM project_info pi53 WHERE project_id = challenge_id AND project_info_type_id = 53) AS submissions_viewable
FROM (
SELECT
SKIP @first_row_index@
FIRST @page_size@
CASE WHEN (p.project_studio_spec_id IS NOT NULL) THEN 1 ELSE 0 END AS is_studio
, pcl.description AS challenge_type
, pn.value AS challenge_name
, p.project_id AS challenge_id
, (SELECT value FROM project_info WHERE project_id = p.project_id AND project_info_type_id = 4) AS forum_id
, (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id
WHERE u1.project_id = p.project_id
AND s1.submission_type_id = 1
Expand All @@ -23,13 +47,9 @@ FIRST @page_size@
, CASE WHEN pidr.value = 'On' THEN
NVL((SELECT value::decimal FROM project_info pi_dr WHERE pi_dr.project_info_type_id = 30 AND pi_dr.project_id = p.project_id), (SELECT round(NVL(pi16.value::decimal, 0)) FROM project_info pi16 WHERE pi16.project_info_type_id = 16 AND pi16.project_id = p.project_id))
ELSE NULL END AS digital_run_points
, nvl((SELECT MAX(event_id) FROM contest_project_xref x, contest c WHERE project_id = p.project_id AND c.contest_id = x.contest_id), 0) AS event_id
, (SELECT event_short_desc FROM event e WHERE e.event_id = nvl((SELECT MAX(event_id) FROM contest_project_xref x, contest c WHERE project_id = p.project_id AND c.contest_id = x.contest_id), 0)) AS event_name
, technology_list(pi1.value) AS technologies
, platform_list(p.project_id) AS platforms
, pi1.value AS value_for_technology
, p.project_id AS id_for_platform
, CASE WHEN (pp1.phase_status_id = 2) THEN 'Yes' ELSE 'No' END AS registration_open
, NVL((SELECT CAST('t' AS boolean) FROM contest_eligibility WHERE contest_id = p.project_id), CAST('f' AS boolean)) AS is_private
, (SELECT value FROM project_info pi53 WHERE project_id = p.project_id AND project_info_type_id = 53) AS submissions_viewable
FROM project p
INNER JOIN project_status_lu pstatus ON pstatus.project_status_id = p.project_status_id
INNER JOIN project_category_lu pcl ON pcl.project_category_id = p.project_category_id
Expand All @@ -52,3 +72,4 @@ AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id
AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1), 0) <= @prize_upper_bound@
AND p.tc_direct_project_id = DECODE(@project_id@, 0, p.tc_direct_project_id, @project_id@)
ORDER BY @sort_column@ @sort_order@
)
6 changes: 5 additions & 1 deletion queries/get_upcoming_challenges
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ SELECT
, pn.value AS challenge_name
, p.project_id AS challenge_id
, pi4.value AS forum_id
, pi79.value as review_type
, NVL((SELECT SUM(pr.number_of_submissions) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14), 0) AS number_of_checkpoints_prizes
, (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1) AS first_place_prize
, (SELECT SUM(prize_amount) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15) AS total_prize
Expand Down Expand Up @@ -33,6 +34,7 @@ FROM project p
, outer project_info pidr
, project_category_lu pcl
, outer project_info pi4 --forum id
, outer project_info pi79
, project_info pi1 -- external id
WHERE p.project_status_id = pstatus.project_status_id
AND p.project_id = pn.project_id
Expand All @@ -47,6 +49,8 @@ AND pidr.project_id = p.project_id
AND pidr.project_info_type_id = 26 --digital run
AND pi4.project_id = p.project_id
AND pi4.project_info_type_id = 4 --forum id
AND pi79.project_id = p.project_id
AND pi79.project_info_type_id = 79 -- review type (COMMUNITY, INTERNAL, PEER)
AND pi32.project_id = p.project_id
AND pi32.project_info_type_id = 32
AND pcl.project_type_id IN (@track@)
Expand All @@ -64,4 +68,4 @@ AND pp1.scheduled_start_time < CURRENT + 90 UNITS DAY
AND pi1.project_info_type_id = 1 -- external reference id
AND pi1.project_id = p.project_id

ORDER BY pp2.scheduled_end_time ASC
ORDER BY @sort_column@ @sort_order@
Loading