Ejemplo n.º 1
0
Archivo: views.py Proyecto: tekd/noi2
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)