Example #1
0
def export_policy():
    policy_slugs = [p['slug'] for p in dal.get_policy_list()]

    cols = ['nume']
    for policy_slug in policy_slugs:
        cols.extend([
            policy_slug + '-procent',
            policy_slug + '-propuneri',
            policy_slug + '-intrebari',
        ])

    ZERO = {'proposal_count': 0, 'question_count': 0, 'interest': 0}

    def policy_row(mandate_info):
        rv = {'nume': mandate_info['name']}
        person = dal.get_person(mandate_info['person_slug'])
        policy_map = {p['slug']: p for p in person.get_top_policies()}
        for policy_slug in policy_slugs:
            p = policy_map.get(policy_slug, ZERO)
            rv.update({
                policy_slug + '-procent': p['interest'],
                policy_slug + '-propuneri': p['proposal_count'],
                policy_slug + '-intrebari': p['question_count'],
            })
        return rv

    def mandates():
        mandates_by_county = dal.get_2016_mandates_by_county()
        for county_list in mandates_by_county.values():
            for mandate_info in county_list:
                yield mandate_info

    rows = (policy_row(m) for m in mandates())
    data = buffer_on_disk(csv_lines(cols, rows))
    return csv_response(data)
Example #2
0
def question_dump():
    cols = ['name', 'legislature', 'date', 'title', 'score']
    ask_query = (
        models.Ask.query
        .join(models.Ask.question)
        .options(
            joinedload('question'),
            joinedload('mandate'),
            joinedload('mandate.person'),
            joinedload('match_row'),
        )
        .order_by(models.Question.date.desc())
    )
    def make_row(ask):
        score = ask.match.score
        return {
            'name': ask.mandate.person.name,
            'legislature': str(ask.mandate.year),
            'date': str(ask.question.date),
            'title': str(ask.question.title),
            'score': '' if score is None else str(score),
        }
    rows = (make_row(ask) for ask in ask_query.yield_per(10))
    data = buffer_on_disk(csv_lines(cols, rows))
    return flask.Response(data, mimetype='text/csv')
Example #3
0
def export_activity(year):
    if not perm.admin.can():
        flask.abort(403)

    cols = [
        'nume',
        'propuneri-total',
        'propuneri-inlucru',
        'propuneri-acceptate',
        'propuneri-respinse',
        'luari-de-cuvant',
        'intrebari',
        'intrebari-locale',
    ]
    rows = (
        {
            'nume': row['name'],
            'propuneri-total': row['proposals_total'],
            'propuneri-inlucru': row['proposals_inprogress'],
            'propuneri-acceptate': row['proposals_approved'],
            'propuneri-respinse': row['proposals_rejected'],
            'luari-de-cuvant': row['transcripts'],
            'intrebari': row['questions'],
            'intrebari-locale': row['questions-local'],
        }
        for row in dal.get_mandate_activity(year=year)
    )
    data = buffer_on_disk(csv_lines(cols, rows))
    return csv_response(data)
Example #4
0
def export_proposals(year):
    if not perm.admin.can():
        flask.abort(403)

    cols = [
        'nr-cdep',
        'nr-senat',
        'nr-bpi',
        'data-propunere',
        'data-actualizare',
        'status',
        'titlu',
        'url-cdep',
        'url-senat',
        'initiatori-cdep',
        'initiatori-senat',
    ]
    rows = (
        {
            'nr-cdep': row['number_cdep'],
            'nr-senat': row['number_senate'],
            'nr-bpi': row['number_bpi'],
            'data-propunere': row['date'].isoformat(),
            'data-actualizare': row['modification_date'].isoformat(),
            'status': PROPOSAL_STATUS_LABEL[row['status']],
            'titlu': row['title'],
            'url-cdep': row['url_cdep'],
            'url-senat': row['url_senate'],
            'initiatori-cdep': row['namelist_cdep'],
            'initiatori-senat': row['namelist_senate'],
        }
        for row in dal.get_all_proposals(year=year)
    )
    data = buffer_on_disk(csv_lines(cols, rows))
    return csv_response(data)
Example #5
0
def export_votes(year):
    cols = ['data', 'cod cdep', 'nume', 'vot', 'vot grup']
    rows = (
        {
            'data': row['date'].isoformat(),
            'cod cdep': row['cdeppk'],
            'nume': row['name'],
            'vot': VOTE_LABEL.get(row['choice'], ''),
            'vot grup': VOTE_LABEL.get(row['group_choice'], ''),
        }
        for row in dal.get_all_votes(year=year)
    )
    data = buffer_on_disk(csv_lines(cols, rows))
    return csv_response(data)
Example #6
0
def export_questions(year):
    cols = ['data', 'numar', 'tip', 'titlu', 'nume', 'destinatar', 'scor']
    rows = (
        {
            'data': row['date'].isoformat(),
            'numar': row['number'],
            'tip': QUESTION_TYPE_LABEL[row['type']],
            'titlu': row['title'],
            'nume': row['name'],
            'destinatar': row['addressee'],
            'scor': int(row['local_score']),
        }
        for row in dal.get_all_questions(year=year)
    )
    data = buffer_on_disk(csv_lines(cols, rows))
    return csv_response(data)
Example #7
0
def question_dump():
    cols = ['name', 'legislature', 'date', 'title', 'score']
    ask_query = (
        models.Ask.query
        .options(
            joinedload('question'),
            joinedload('mandate'),
            joinedload('mandate.person'),
            joinedload('match_row'),
        )
    )
    def make_row(ask):
        score = ask.match.score
        return {
            'name': ask.mandate.person.name,
            'legislature': str(ask.mandate.year),
            'date': str(ask.question.date),
            'title': str(ask.question.title),
            'score': '' if score is None else str(score),
        }
    rows = (make_row(ask) for ask in ask_query.yield_per(10))
    data = buffer_on_disk(csv_lines(cols, rows))
    return flask.Response(data, mimetype='text/csv')