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

Commit 1d3c364

Browse files
committed
fixed bug in task exclusion
1 parent c3b6aad commit 1d3c364

File tree

1 file changed

+29
-70
lines changed

1 file changed

+29
-70
lines changed

queries/get_past_challenges_count

Lines changed: 29 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,35 @@
1-
SELECT is_studio
2-
, challenge_type
3-
, challenge_name
4-
, challenge_id
5-
, (SELECT value FROM project_info WHERE project_id = challenge_id AND project_info_type_id = 4) AS forum_id
6-
, num_submissions
7-
, num_registrants
8-
, number_of_checkpoints_prizes
9-
, first_place_prize
10-
, total_prize
11-
, checkpoint_total_prizes
12-
, registration_start_date
13-
, registration_end_date
14-
, checkpoint_submission_end_date
15-
, submission_end_date
16-
, status
17-
, digital_run_points
18-
, 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
19-
, (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
20-
, technology_list(value_for_technology) AS technologies
21-
, platform_list(id_for_platform) AS platforms
22-
, registration_open
23-
, NVL((SELECT CAST('t' AS boolean) FROM contest_eligibility WHERE contest_id = challenge_id), CAST('f' AS boolean)) AS is_private
24-
, (SELECT value FROM project_info pi53 WHERE project_id = challenge_id AND project_info_type_id = 53) AS submissions_viewable
25-
FROM (
26-
SELECT
27-
SKIP @first_row_index@
28-
FIRST @page_size@
29-
CASE WHEN (p.project_studio_spec_id IS NOT NULL) THEN 1 ELSE 0 END AS is_studio
30-
, pcl.description AS challenge_type
31-
, pn.value AS challenge_name
32-
, p.project_id AS challenge_id
33-
, (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id
34-
WHERE u1.project_id = p.project_id
35-
AND s1.submission_type_id = 1
36-
AND s1.submission_status_id <> 5) AS num_submissions
37-
, (SELECT COUNT(*) FROM resource r WHERE r.project_id = p.project_id AND r.resource_role_id = 1) AS num_registrants
38-
, 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
39-
, (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
40-
, (SELECT SUM(prize_amount) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15) AS total_prize
41-
, (SELECT SUM(prize_amount * number_of_submissions) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14) AS checkpoint_total_prizes
42-
, NVL(pp1.actual_start_time, pp1.scheduled_start_time) AS registration_start_date
43-
, NVL(pp1.actual_end_time, pp1.scheduled_end_time) AS registration_end_date
44-
, NVL(pp15.actual_end_time, pp15.scheduled_end_time) AS checkpoint_submission_end_date
45-
, NVL(pp2.actual_end_time, pp2.scheduled_end_time) AS submission_end_date
46-
, pstatus.name AS status
47-
, CASE WHEN pidr.value = 'On' THEN
48-
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))
49-
ELSE NULL END AS digital_run_points
50-
, pi1.value AS value_for_technology
51-
, p.project_id AS id_for_platform
52-
, CASE WHEN (pp1.phase_status_id = 2) THEN 'Yes' ELSE 'No' END AS registration_open
1+
SELECT COUNT(*) AS total
532
FROM project p
54-
INNER JOIN project_status_lu pstatus ON pstatus.project_status_id = p.project_status_id
55-
INNER JOIN project_category_lu pcl ON pcl.project_category_id = p.project_category_id
56-
INNER JOIN project_phase pp1 ON pp1.project_id = p.project_id AND pp1.phase_type_id = 1
57-
INNER JOIN project_phase pp2 ON pp2.project_id = p.project_id AND pp2.phase_type_id = 2
58-
INNER JOIN project_info pn ON pn.project_id = p.project_id AND pn.project_info_type_id = 6
59-
INNER JOIN project_info pi1 ON pi1.project_id = p.project_id AND pi1.project_info_type_id = 1
60-
LEFT JOIN project_phase pp15 ON pp15.project_id = p.project_id AND pp15.phase_type_id = 15
61-
LEFT JOIN project_info pidr ON pidr.project_id = p.project_id AND pidr.project_info_type_id = 26
62-
WHERE
63-
p.project_status_id IN (4, 5, 6, 7, 8, 9, 10, 11)
64-
AND pcl.project_category_id NOT IN (27, 37) AND pcl.project_type_id IN (@track@)
65-
and NVL(pp2.actual_end_time, pp2.scheduled_end_time) > '2012-01-01 00:00:00'
66-
AND NVL(pp2.actual_end_time, pp2.scheduled_end_time) BETWEEN TO_DATE('@submission_end_from@ 00:00:00', '%Y-%m-%d %H:%M:%S') AND TO_DATE('@submission_end_to@ 23:59:59', '%Y-%m-%d %H:%M:%S')
67-
-- Filter out the challenge that user is not belong to.
3+
, project_phase pp1 --registration phase
4+
, project_phase pp2 --submission phase
5+
, project_info pn
6+
, project_info pi1
7+
, project_category_lu pcl
8+
WHERE p.project_id = pn.project_id
9+
AND pn.project_info_type_id = 6
10+
AND pp1.project_id = p.project_id
11+
AND pp1.phase_type_id = 1 --registration phase
12+
AND pp2.project_id = p.project_id
13+
AND pp2.phase_type_id = 2 --submission phase
14+
AND p.project_category_id = pcl.project_category_id
15+
AND p.project_status_id IN (4, 5, 6, 7, 8, 9, 10, 11)
16+
AND pcl.project_type_id IN (@track@)
6817
AND pp1.phase_status_id in (2,3)
69-
AND LOWER(pn.value) LIKE('@challenge_name@')
18+
AND pi1.project_id = p.project_id
19+
AND pi1.project_info_type_id = 1
20+
and NVL(pp2.actual_end_time, pp2.scheduled_end_time) > '2012-01-01 00:00:00'
21+
AND pcl.project_category_id NOT IN (27, 37) --exclude when spec review was a 'contest.' Also exclude MM, which is in there as a 'software' contest.
7022
-- start of parameters
23+
24+
AND NVL(pp2.actual_end_time, pp2.scheduled_end_time) BETWEEN TO_DATE('@submission_end_from@ 00:00:00', '%Y-%m-%d %H:%M:%S') AND TO_DATE('@submission_end_to@ 23:59:59', '%Y-%m-%d %H:%M:%S')
25+
26+
AND LOWER(pn.value) LIKE ('@challenge_name@')
7127
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_lower_bound@
7228
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@
7329
AND p.tc_direct_project_id = DECODE(@project_id@, 0, p.tc_direct_project_id, @project_id@)
74-
AND not exists (select 1 from resource r, project_info pi82 where r.project_id = p.project_id and r.resource_role_id = 1 and p.project_id = pi82.project_id and project_info_type_id = 82) -- exclude assigned tasks
75-
ORDER BY @sort_column@ @sort_order@
76-
)
30+
-- Filter out the challenge that user is not belong to.
31+
AND (not exists (select contest_id from contest_eligibility where contest_id = p.project_id)
32+
or exists(select contest_id from contest_eligibility ce, group_contest_eligibility gce, user_group_xref x
33+
where x.login_id = @user_id@ AND x.group_id = gce.group_id AND gce.contest_eligibility_id = ce.contest_eligibility_id
34+
AND ce.contest_id = p.project_id))
35+
AND not exists (select 1 from resource r, project_info pi82 where r.project_id = p.project_id and r.resource_role_id = 1 and p.project_id = pi82.project_id and project_info_type_id = 82 and pi82.value = 1) -- exclude assigned tasks

0 commit comments

Comments
 (0)