def get_network_viz_data(): counts = stats.get_questionnaire_counts() viz_data = [] for qid, s in counts.items(): area_info = { 'name': QUESTIONNAIRES_BY_ID[qid]['name'], 'total': s['learn'] + s['explain'] + s['connect'] + s['do'] } area_info.update(skills_to_percentages(s)) viz_data.append(area_info) viz_data = sorted(viz_data, key=lambda area_info: area_info['total'], reverse=True) return viz_data
def get_network_viz_data(): counts = stats.get_questionnaire_counts() viz_data = [] for qid, s in counts.items(): area_info = { 'name': QUESTIONNAIRES_BY_ID[qid]['name'], 'total': s['learn'] + s['explain'] + s['connect'] + s['do'] } area_info.update(skills_to_percentages(s)) viz_data.append(area_info) viz_data = sorted(viz_data, key=lambda area_info: area_info['total'], reverse=True) return viz_data
def render_user_profile(userid=None, **kwargs): if userid is None: user = current_user else: user = User.query_in_deployment().filter_by(id=userid).first_or_404() area_scores = user.get_area_scores() kwargs['user'] = user overview_data = {} viz_data = [] kwargs['overview_data'] = overview_data for qid, score_info in area_scores.items(): score = score_info['max_score'] if score is not None: # Update overview data. if score not in overview_data: overview_data[score] = [] overview_data[score].append(QUESTIONNAIRES_BY_ID[qid]) # Update visualization data. # TODO: This is very similar to the treemap code in # views.network, consider refactoring. s = score_info['skills'] area_info = { 'name': QUESTIONNAIRES_BY_ID[qid]['name'], 'questionnaire_id': qid, 'total': s['learn'] + s['explain'] + s['connect'] + s['do'] } area_info.update(skills_to_percentages(s)) viz_data.append(area_info) kwargs['viz_data'] = sorted( viz_data, key=lambda area_info: area_info['total'], reverse=True ) if user.program is not None: kwargs['program'] = PROGRAM_TYPES[user.program] return render_template('user-profile.html', **kwargs)
def render_user_profile(userid=None, **kwargs): if userid is None: user = current_user else: user = User.query_in_deployment().filter_by(id=userid).first_or_404() area_scores = user.get_area_scores() kwargs['user'] = user overview_data = {} viz_data = [] kwargs['overview_data'] = overview_data for qid, score_info in area_scores.items(): score = score_info['max_score'] if score is not None: # Update overview data. if score not in overview_data: overview_data[score] = [] overview_data[score].append(QUESTIONNAIRES_BY_ID[qid]) # Update visualization data. # TODO: This is very similar to the treemap code in # views.network, consider refactoring. s = score_info['skills'] area_info = { 'name': QUESTIONNAIRES_BY_ID[qid]['name'], 'questionnaire_id': qid, 'total': s['learn'] + s['explain'] + s['connect'] + s['do'] } area_info.update(skills_to_percentages(s)) viz_data.append(area_info) kwargs['viz_data'] = sorted(viz_data, key=lambda area_info: area_info['total'], reverse=True) return render_template('user-profile.html', **kwargs)