From 00098a2f21e8d096ba2cb42407ed25aee4c59853 Mon Sep 17 00:00:00 2001 From: Adnan Kattekaden <71538497+adnankattekaden@users.noreply.github.com> Date: Wed, 8 Nov 2023 19:08:40 +0530 Subject: [PATCH] Update top100_view.py --- api/top100_coders/top100_view.py | 54 ++++++++++---------------------- 1 file changed, 17 insertions(+), 37 deletions(-) diff --git a/api/top100_coders/top100_view.py b/api/top100_coders/top100_view.py index 8a9ce07b..c160645c 100644 --- a/api/top100_coders/top100_view.py +++ b/api/top100_coders/top100_view.py @@ -7,43 +7,23 @@ class Leaderboard(APIView): def get(self, request): query =""" -SELECT - u.id, - u.first_name, - u.last_name, - SUM(kal.karma) AS total_karma, - org.title AS org, - COALESCE(org.dis, d.name) AS dis, - org.state, - u.profile_pic, - MAX(kal.created_at) AS time_, - kal.created_at AS created_at -FROM - karma_activity_log AS kal -INNER JOIN user AS u ON kal.user_id = u.id -INNER JOIN task_list AS tl ON tl.id = kal.task_id -LEFT JOIN ( - SELECT - uol.user_id, - org.id, - org.title AS title, - d.name dis, - s.name state - FROM - user_organization_link AS uol - INNER JOIN organization AS org ON org.id = uol.org_id - LEFT JOIN district AS d ON d.id = org.district_id - LEFT JOIN zone AS z ON z.id = d.zone_id - LEFT JOIN state AS s ON s.id = z.state_id - GROUP BY uol.user_id -) AS org ON org.user_id = u.id -LEFT JOIN district AS d ON d.id = u.district_id -WHERE - tl.event = 'TOP100' - AND kal.appraiser_approved = TRUE - AND tl.hashtag = '#thc-realworld-problem-proposal' -GROUP BY u.id -ORDER BY total_karma DESC, time_; + SELECT u.first_name, u.last_name, SUM(kal.karma) AS total_karma, org.title as org, org.dis, org.state, u.profile_pic,MAX(kal.created_at) as time_ + FROM karma_activity_log AS kal + INNER JOIN user AS u ON kal.user_id = u.id + INNER JOIN task_list AS tl ON tl.id = kal.task_id + LEFT JOIN ( + SELECT uol.user_id, org.id, org.title as title, d.name dis, s.name state + FROM user_organization_link AS uol + INNER JOIN organization AS org ON org.id = uol.org_id + LEFT JOIN district AS d ON d.id = org.district_id + LEFT JOIN zone AS z ON z.id = d.zone_id + LEFT JOIN state AS s ON s.id = z.state_id + GROUP BY uol.user_id + ) as org on org.user_id = u.id + WHERE tl.event = 'TOP100' AND kal.appraiser_approved = TRUE + GROUP BY u.id + ORDER BY total_karma DESC, time_ + LIMIT 100; """ query2 = """