diff --git a/pybossa/cache/users.py b/pybossa/cache/users.py index 2bef81e..78f087f 100644 --- a/pybossa/cache/users.py +++ b/pybossa/cache/users.py @@ -106,15 +106,18 @@ def get_leaderboard(n, user_id=None): def get_user_summary(name): """Return user summary.""" sql = text(''' - SELECT "user".id, "user".name, "user".fullname, "user".created, + WITH user_summary AS (SELECT "user".id, "user".name, "user".fullname, "user".created, "user".api_key, "user".twitter_user_id, "user".facebook_user_id, "user".google_user_id, "user".info, "user".email_addr, COUNT(task_run.user_id) AS n_answers, - "user".valid_email, "user".confirmation_email_sent + "user".valid_email, "user".confirmation_email_sent, "user".profile_id FROM "user" LEFT OUTER JOIN task_run ON "user".id=task_run.user_id WHERE "user".name=:name - GROUP BY "user".id; + GROUP BY "user".id), + profile_summary AS (SELECT profile.name AS profile_name + FROM user_summary, profile WHERE user_summary.profile_id=profile.id) + SELECT * FROM user_summary, profile_summary; ''') results = session.execute(sql, dict(name=name)) user = dict() @@ -128,7 +131,8 @@ def get_user_summary(name): email_addr=row.email_addr, n_answers=row.n_answers, valid_email=row.valid_email, confirmation_email_sent=row.confirmation_email_sent, - registered_ago=pretty_date(row.created)) + registered_ago=pretty_date(row.created), + profile=dict(name=row.profile_name)) if user: rank_score = rank_and_score(user['id']) user['rank'] = rank_score['rank'] diff --git a/pybossa/themes/default/templates/account/_helpers.html b/pybossa/themes/default/templates/account/_helpers.html index 59d0501..6ffed8f 100644 --- a/pybossa/themes/default/templates/account/_helpers.html +++ b/pybossa/themes/default/templates/account/_helpers.html @@ -42,6 +42,7 @@