Skip to content

Commit

Permalink
Merge pull request #2025 from gtech-mulearn/dev
Browse files Browse the repository at this point in the history
Merge dev to dev-server
  • Loading branch information
jelanmathewjames authored Jun 7, 2024
2 parents 065c876 + 4dadd97 commit 369baa6
Showing 1 changed file with 64 additions and 64 deletions.
128 changes: 64 additions & 64 deletions api/launchpad/launchpad_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,68 +104,68 @@ def get(self, request):
# return CustomResponse().paginated_response(
# data=serializer.data, pagination=paginated_queryset.get("pagination")
# )
class Leaderboard(APIView):
def get(self, request):
query = """
SELECT
u.full_name,
SUM(kal.karma) AS karma,
COALESCE(org.title, comm.title) AS org,
COALESCE(org.dis, d.name) AS district,
COALESCE(org.state, s.name) AS state,
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 AND org.org_type IN
("College", "School", "Company")
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 (
SELECT
uol.user_id,
org.id,
org.title AS title
FROM organization AS org
INNER JOIN user_organization_link AS uol ON org.id = uol.org_id AND org.org_type IN ("Community")
GROUP BY uol.user_id
) AS comm ON comm.user_id = u.id
LEFT JOIN district AS d ON d.id = u.district_id
LEFT JOIN zone AS z ON d.zone_id = z.id
LEFT JOIN state AS s ON z.state_id = s.id
WHERE
tl.event = "launchpad" AND
kal.appraiser_approved = TRUE AND
u.id IN (
SELECT karma_activity_log.user_id FROM karma_activity_log
INNER JOIN task_list ON karma_activity_log.task_id = task_list.id
WHERE
task_list.hashtag = "#lp24-introduction" AND
karma_activity_log.appraiser_approved = TRUE
)
GROUP BY u.id
ORDER BY karma DESC, time_
"""
with connection.cursor() as cursor:
cursor.execute(query)
results = cursor.fetchall()
column_names = [desc[0] for desc in cursor.description]
user_ids = set()
list_of_dicts = []
for row in results:
if row[0] not in user_ids:
user_ids.add(row[0])
list_of_dicts.append(dict(zip(column_names, row)))
return CustomResponse(response=list_of_dicts).get_success_response()
# class Leaderboard(APIView):
# def get(self, request):
# query = """
# SELECT
# u.full_name,
# SUM(kal.karma) AS karma,
# COALESCE(org.title, comm.title) AS org,
# COALESCE(org.dis, d.name) AS district,
# COALESCE(org.state, s.name) AS state,
# 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 AND org.org_type IN
# ("College", "School", "Company")
# 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 (
# SELECT
# uol.user_id,
# org.id,
# org.title AS title
# FROM organization AS org
# INNER JOIN user_organization_link AS uol ON org.id = uol.org_id AND org.org_type IN ("Community")
# GROUP BY uol.user_id
# ) AS comm ON comm.user_id = u.id
# LEFT JOIN district AS d ON d.id = u.district_id
# LEFT JOIN zone AS z ON d.zone_id = z.id
# LEFT JOIN state AS s ON z.state_id = s.id
# WHERE
# tl.event = "launchpad" AND
# kal.appraiser_approved = TRUE AND
# u.id IN (
# SELECT karma_activity_log.user_id FROM karma_activity_log
# INNER JOIN task_list ON karma_activity_log.task_id = task_list.id
# WHERE
# task_list.hashtag = "#lp24-introduction" AND
# karma_activity_log.appraiser_approved = TRUE
# )
# GROUP BY u.id
# ORDER BY karma DESC, time_
# """
# with connection.cursor() as cursor:
# cursor.execute(query)
# results = cursor.fetchall()
# column_names = [desc[0] for desc in cursor.description]
# user_ids = set()
# list_of_dicts = []
# for row in results:
# if row[0] not in user_ids:
# user_ids.add(row[0])
# list_of_dicts.append(dict(zip(column_names, row)))
# return CustomResponse(response=list_of_dicts).get_success_response()

0 comments on commit 369baa6

Please sign in to comment.