From 518de5ac7dfeedcdf37152bea874c07aa13e05c1 Mon Sep 17 00:00:00 2001 From: Thabo Date: Mon, 15 Jun 2015 10:33:29 -0700 Subject: [PATCH 1/2] add copilot status to user profile --- actions/memberStatistics.js | 3 ++- queries/get_user_basic_profile_basic | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/actions/memberStatistics.js b/actions/memberStatistics.js index 003b92c66..528a7c09d 100644 --- a/actions/memberStatistics.js +++ b/actions/memberStatistics.js @@ -223,7 +223,8 @@ function getBasicUserProfile(api, handle, privateInfoEligibility, dbConnectionMa country: basic.country, memberSince: basic.member_since, quote: basic.quote, - photoLink: basic.photo_link || '' + photoLink: basic.photo_link || '', + copilot: basic.copilot || false }; if (loadData.earnings && _.isDefined(basic.show_earnings) && basic.show_earnings !== 'hide') { diff --git a/queries/get_user_basic_profile_basic b/queries/get_user_basic_profile_basic index 5b55d609a..941e5e0c5 100644 --- a/queries/get_user_basic_profile_basic +++ b/queries/get_user_basic_profile_basic @@ -5,8 +5,10 @@ SELECT , co.quote , p.path || i.file_name AS photo_link , up.value AS show_earnings +, (copilot_profile_id IS NOT NULL) as copilot FROM user u , coder co +, OUTER copilot_profile cp , OUTER country c , OUTER(coder_image_xref cix , image i @@ -23,3 +25,5 @@ AND i.image_type_id = 1 AND i.path_id = p.path_id AND u.user_id = up.user_id AND up.preference_id = 100 +AND u.user_id = cp.user_id +AND cp.copilot_profile_status_id = 1 \ No newline at end of file From e2417cb34411984918bf0b9a09f9aef8ef41ce30 Mon Sep 17 00:00:00 2001 From: Thabo Date: Thu, 18 Jun 2015 14:26:03 -0700 Subject: [PATCH 2/2] filter based on event id --- actions/challenges.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/actions/challenges.js b/actions/challenges.js index c7703307f..6c9ec79f6 100755 --- a/actions/challenges.js +++ b/actions/challenges.js @@ -138,6 +138,9 @@ var PLATFORM_FILTER = ' AND EXISTS (SELECT 1 FROM project_platform pp WHERE pp.p /* 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)'; + +/* Filter based on event */ +var EVENT_FILTER = ' AND 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) IN (@filter@)'; /** * The challenge type filter for challenges api. @@ -182,7 +185,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", 'review']; + "submissionEndFrom", "submissionEndTo", "technologies", "platforms", 'review', 'event']; /** * Represents a list of valid query parameter for split challenges api. @@ -191,7 +194,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', 'review']; + "submissionEndFrom", "submissionEndTo", 'type', 'platforms', 'technologies', 'review', 'event']; /** * Represents a predefined list of valid sort column for active challenge. @@ -799,6 +802,11 @@ var addFilter = function (sql, filter, isMyChallenges, helper, caller) { sql.count = editSql(sql.count, REVIEW_FILTER, review); sql.data = editSql(sql.data, REVIEW_FILTER, review); } + + if (_.isDefined(filter.event)) { + sql.count = editSql(sql.count, EVENT_FILTER, filter.event); + sql.data = editSql(sql.data, EVENT_FILTER, filter.event); + } if (isMyChallenges) { sql.count = editSql(sql.count, MY_CHALLENGES_FILTER, null); @@ -894,7 +902,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", "review"], + "prizeUpperBound", "cmcTaskId", 'communityId', "submissionEndFrom", "submissionEndTo", "technologies", "platforms", "review", "event"], sqlParams = {}, filter = {}, pageIndex, @@ -3654,7 +3662,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', 'review'], + "prizeUpperBound", 'communityId', "submissionEndFrom", "submissionEndTo", 'type', 'technologies', 'platforms', 'review', 'event'], dbConnectionMap = connection.dbConnectionMap, sqlParams = {}, filter = {},