def get_team_member_solve_stats(eligible=True):
db = api.api.common.get_conn()
teams = api.team.get_all_teams(show_ineligible=(not eligible))
user_breakdowns = {}
for t in teams:
uid_map = defaultdict(lambda: defaultdict(int))
members = api.team.get_team_members(tid=t['tid'], show_disabled=False)
subs = db.submissions.find({'tid': t['tid']})
for sub in subs:
uid = sub['uid']
uid_map[uid]['submits'] += 1
if uid_map[uid]['times'] == 0:
uid_map[uid]['times'] = list()
uid_map[uid]['times'].append(sub['timestamp'])
if sub['correct']:
uid_map[uid]['correct'] += 1
uid_map[uid][sub['category']] += 1
else:
uid_map[uid]['incorrect'] += 1
user_breakdowns[t['tid']] = uid_map
for member in members:
if member['uid'] not in uid_map:
uid_map[uid] = None
return user_breakdowns
评论列表
文章目录