Ejemplo n.º 1
0
    filler2 = filter2
    if filler2 != "all":
        if dataset == "rais":
            filler2 = "cbo"
        elif dataset == "secex":
            filler2 = "wld"
        elif dataset == "hedu":
            filler2 = "course_hedu"
        elif dataset == "sc":
            filler2 = "course_sc"

    return filler1, filler2

@mod.route('/')
@view_cache.cached(key_prefix=api_cache_key("apps:guide"))
def guide():
    apps = []
    default_bra = Bra.query.get("4mg")
    compare_bra = Bra.query.get("4sp")
    default_cnae = Cnae.query.get("i56112")
    default_cbo = Cbo.query.get("2235")
    default_hs = Hs.query.get("052601")
    build_list = Build.query.all()

    # Bar Chart
    builds = [b for b in build_list if b.id in (176,177,178)]
    builds[0].set_bra(default_bra)
    builds[1].set_filter1(default_cnae)
    builds[2].set_filter2(default_cbo)
    apps.append({
Ejemplo n.º 2
0
@babel.timezoneselector
def get_timezone():
    user = getattr(g, 'user', None)
    if user is not None:
        return user.timezone

###############################
# General views
# ---------------------------
@app.after_request
def after_request(response):
    return response


@mod.route('/', methods=['GET'])
@view_cache.cached(key_prefix=api_cache_key("homepage"))
def home():
    return render_template("general/index.html")


@mod.route('/inicie-uma-pesquisa/', methods=['GET'])
@view_cache.cached(key_prefix=api_cache_key("browsecat"))
def browse_categories():
    return render_template("general/browse_categories.html")


@mod.route('close/')
def close():
    return render_template("general/close.html")

@mod.route('upgrade/')
Ejemplo n.º 3
0
@babel.timezoneselector
def get_timezone():
    user = getattr(g, 'user', None)
    if user is not None:
        return user.timezone

###############################
# General views
# ---------------------------
@app.after_request
def after_request(response):
    return response

@mod.route('/', methods=['GET', 'POST'])
@view_cache.cached(key_prefix=api_cache_key("homepage"))
@gzipped
def home():

    # return render_template("test.html")

    g.page_type = "home"

    carousels = []

    limit = 20
    carousel_base = "/stats/carousel/?metric={}&show={}&profile={}&limit={}"

    metric, show, profile = "export_val", "bra_id", "bra"
    data = stats_list(metric, show, limit=limit)
    items = make_items(data, Bra)
Ejemplo n.º 4
0
import StringIO, csv
from flask import Blueprint, request, jsonify, Response
from dataviva import db
from dataviva.api.attrs.models import Bra
from dataviva.api.rais.models import Yb_rais, Yi, Yo, Ybi, Ybi_reqs, Ybo, Yio, Ybio
from dataviva.utils import table_helper, query_helper
from dataviva.utils.gzip_data import gzip_response
from dataviva import view_cache
from dataviva.utils.cached_query import api_cache_key
from dataviva.utils.csv_helper import gen_csv, is_download

mod = Blueprint('rais', __name__, url_prefix='/rais')


@mod.route('/<year>/<bra_id>/<cnae_id>/<cbo_id>/')
@view_cache.cached(key_prefix=api_cache_key("rais"), unless=is_download)
def rais_api(**kwargs):
    limit = int(kwargs.pop('limit', 0)) or int(request.args.get('limit', 0))
    order = request.args.get('order', None) or kwargs.pop('order', None)
    sort = request.args.get('sort', None) or kwargs.pop('sort', 'desc')
    offset = request.args.get('offset', None) or kwargs.pop('offset', None)
    if order and "." in order:
        order, sort = order.split(".")
    # ignore_zeros = request.args.get('zeros', True) or kwargs.pop('zeros', True)
    serialize = request.args.get('serialize', None) or kwargs.pop(
        'serialize', True)
    exclude = request.args.get('exclude', None) or kwargs.pop('exclude', None)
    download = request.args.get('download', None) or kwargs.pop(
        'download', None)
    required_bras = request.args.get('required_bras', False) or kwargs.pop(
        'required_bras', False)
Ejemplo n.º 5
0
def before_request():
    g.page_type = mod.name


@mod.url_value_preprocessor
def pull_lang_code(endpoint, values):
    g.locale = values.pop('lang_code')


@mod.url_defaults
def add_language_code(endpoint, values):
    values.setdefault('lang_code', get_locale())


@mod.route('/', methods=['GET'])
@view_cache.cached(key_prefix=api_cache_key("apps:ranking_index"))
def index():
    return render_template('rankings/location-international-trade.html', tab='location-international-trade')


@mod.route('/location/international-trade', methods=['GET'])
@view_cache.cached(key_prefix=api_cache_key("apps:ranking_location_international_trade"))
def location_international_trade():
    return render_template('rankings/location-international-trade.html', tab='location-international-trade')


@mod.route('/location/wages-and-employment', methods=['GET'])
@view_cache.cached(key_prefix=api_cache_key("apps:ranking_location_wages"))
def location_wages():
    return render_template('rankings/location-wages.html', tab='location-wages')
Ejemplo n.º 6
0
def before_request():
    g.page_type = mod.name
    g.path = request.path

    g.color = "#e0902d"

@mod.url_value_preprocessor
def pull_lang_code(endpoint, values):
    g.locale = values.pop('lang_code')

@mod.url_defaults
def add_language_code(endpoint, values):
    values.setdefault('lang_code', get_locale())

@mod.route('/')
@view_cache.cached(key_prefix=api_cache_key("profile"))
def index():

    profile_types = []

    # Bra
    most_recent_year = parse_year(__year_range__["secex"][-1])
    top = Ymb.query.filter_by(year=most_recent_year, month=0, bra_id_len=9).order_by(Ymb.export_val.desc()).limit(5).all()
    top = [t.bra for t in top]
    profile_types.append({
        "summary": gettext("Showing exports, employment and education data, statistics and visualizations about the chosen Brazilian location."),
        "top": top,
        "title": gettext(u"Brazilian Locations"),
        "type": "bra"
    })
Ejemplo n.º 7
0
############################################################
# ----------------------------------------------------------
# All attribute views
#
############################################################


def get_planning_region_map():
    prs = db.session.query(bra_pr).all()
    pr_map = {k: v for k, v in prs}
    return pr_map


@mod.route("/school/")
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def voc_schools():
    attrs = School.query.filter(School.is_vocational == 1).all()
    lang = request.args.get('lang', None) or g.locale
    data = [fix_name(a.serialize(), lang) for a in attrs]
    return jsonify(data=data)


@mod.route("/school/in/<bra_id>/")
@gzipped
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def school_attrs(bra_id):
    results = db.engine.execute('''
        SELECT id, school_type_id, name_pt, color
        FROM attrs_school
        LEFT JOIN sc_ybs
Ejemplo n.º 8
0
############################################################
# ----------------------------------------------------------
# All attribute views
#
############################################################


def get_planning_region_map():
    prs = db.session.query(bra_pr).all()
    pr_map = {k: v for k, v in prs}
    return pr_map


@mod.route("/school/")
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def voc_schools():
    attrs = School.query.filter(School.is_vocational == 1).all()
    lang = request.args.get('lang', None) or g.locale
    data = [fix_name(a.serialize(), lang) for a in attrs]
    return jsonify(data=data)


@mod.route("/school/in/<bra_id>/")
@gzipped
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def school_attrs(bra_id):
    results = db.engine.execute('''
        SELECT id, school_type_id, name_pt, color
        FROM attrs_school
        LEFT JOIN sc_ybs
Ejemplo n.º 9
0
    filler2 = filter2
    if filler2 != "all":
        if dataset == "rais":
            filler2 = "cbo"
        elif dataset == "secex":
            filler2 = "wld"
        elif dataset == "hedu":
            filler2 = "course_hedu"
        elif dataset == "sc":
            filler2 = "course_sc"

    return filler1, filler2


@mod.route('/')
@view_cache.cached(key_prefix=api_cache_key("apps:guide"))
def guide():
    apps = []
    default_bra = Bra.query.get("4mg")
    compare_bra = Bra.query.get("4sp")
    default_cnae = Cnae.query.get("i56112")
    default_cbo = Cbo.query.get("2235")
    default_hs = Hs.query.get("052601")
    build_list = Build.query.all()

    # Bar Chart
    builds = [b for b in build_list if b.id in (176, 177, 178)]
    builds[0].set_bra(default_bra)
    builds[1].set_filter1(default_cnae)
    builds[2].set_filter2(default_cbo)
    apps.append({
Ejemplo n.º 10
0
    return attr


############################################################
# ----------------------------------------------------------
# All attribute views
#
############################################################
def get_planning_region_map():
    prs = db.session.query(bra_pr).all()
    pr_map = {k: v for k, v in prs}
    return pr_map


@mod.route("/school/")
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def voc_schools():
    attrs = School.query.filter(School.is_vocational == 1).all()
    lang = request.args.get("lang", None) or g.locale
    data = [fix_name(a.serialize(), lang) for a in attrs]
    return jsonify(data=data)


@mod.route("/school/in/<bra_id>/")
@gzipped
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def school_attrs(bra_id):
    results = db.engine.execute(
        """
        SELECT id, school_type_id, name_pt, color
        FROM attrs_school
Ejemplo n.º 11
0
    if "is_vocational" in attr: del attr["is_vocational"]
    return attr

############################################################
# ----------------------------------------------------------
# All attribute views
#
############################################################
def get_planning_region_map():
    prs = db.session.query(bra_pr).all()
    pr_map = {k:v for k,v in prs}
    return pr_map

@mod.route("/school/")
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def voc_schools():
    attrs = School.query.filter(School.is_vocational == 1).all()
    lang = request.args.get('lang', None) or g.locale
    data = [fix_name(a.serialize(), lang) for a in attrs]
    return jsonify(data=data)

@mod.route("/school/in/<bra_id>/")
@gzipped
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def school_attrs(bra_id):
    results = db.engine.execute('''
        SELECT id, school_type_id, name_pt, color
        FROM attrs_school
        LEFT JOIN sc_ybs
        ON attrs_school.id=sc_ybs.school_id
Ejemplo n.º 12
0
@babel.timezoneselector
def get_timezone():
    user = getattr(g, 'user', None)
    if user is not None:
        return user.timezone

###############################
# General views
# ---------------------------
@app.after_request
def after_request(response):
    return response

@mod.route('/', methods=['GET', 'POST'])
@view_cache.cached(key_prefix=api_cache_key("homepage"))
@gzipped
def home():

    # return render_template("test.html")

    g.page_type = "home"

    carousels = []

    limit = 20
    carousel_base = "/stats/carousel/?metric={}&show={}&profile={}&limit={}"

    metric, show, profile = "export_val", "bra_id", "bra"
    data = stats_list(metric, show, limit=limit)
    items = make_items(data, Bra)
Ejemplo n.º 13
0
    return attr


############################################################
# ----------------------------------------------------------
# All attribute views
#
############################################################
def get_planning_region_map():
    prs = db.session.query(bra_pr).all()
    pr_map = {k: v for k, v in prs}
    return pr_map


@mod.route("/school/")
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def voc_schools():
    attrs = School.query.filter(School.is_vocational == 1).all()
    lang = request.args.get('lang', None) or g.locale
    data = [fix_name(a.serialize(), lang) for a in attrs]
    return jsonify(data=data)


@mod.route("/school/in/<bra_id>/")
@gzipped
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def school_attrs(bra_id):
    results = db.engine.execute(
        '''
        SELECT id, school_type_id, name_pt, color
        FROM attrs_school
Ejemplo n.º 14
0
from flask import Blueprint, request, jsonify
from dataviva import db
from dataviva.ei.models import Ymr, Yms, Ymsr
from dataviva.utils.gzip_data import gzipped
from dataviva.utils import make_query
from dataviva.utils import table_helper, query_helper
from dataviva import view_cache
from dataviva.utils.cached_query import api_cache_key

mod = Blueprint('ei', __name__, url_prefix='/ei')

@mod.route('/<year>-<month>/<bra_id_s>/<bra_id_r>/')
@mod.route('/<year>/<bra_id_s>/<bra_id_r>/')
@gzipped
@view_cache.cached(key_prefix=api_cache_key("ei"))
def ei_api(**kwargs):
    tables = [Ymr, Yms, Ymsr]

    limit = int(request.args.get('limit', 0) or kwargs.pop('limit', 0))
    order = request.args.get('order', None) or kwargs.pop('order', None)
    if order and "." in order:
        order, sort = order.split(".")
    sort = request.args.get('sort', None) or kwargs.pop('sort', 'desc')
    offset = request.args.get('offset', None) or kwargs.pop('offset', None)
    serialize = request.args.get('serialize', None) or kwargs.pop('serialize', True)
    exclude = request.args.get('exclude', None) or kwargs.pop('exclude', None)
    download = request.args.get('download', None) or kwargs.pop('download', None)

    if not "month" in kwargs:
        kwargs["month"] = query_helper.ALL
Ejemplo n.º 15
0
            return bra_cities.filter(Bra.id.like(bra_state.id+'%')).first()
        return None
    return None

@mod.route('/table/')
@mod.route('/table/<data_type>/<year>/<bra_id>/<filter_1>/')
@mod.route('/table/<data_type>/<year>/<bra_id>/<filter_1>/<filter_2>/')
def table(data_type="rais", year="all", bra_id="4mg", filter_1="show.1", filter_2="all"):
    g.page_type = "table"
    data_url = "/{}/{}/{}/{}/{}/".format(data_type,year,bra_id,filter_1,filter_2)
    return render_template("general/table.html",data_url = data_url)

@mod.route('/')
@mod.route('/<data_type>/<year>/<bra_id>/<filter_1>/')
@mod.route('/<data_type>/<year>/<bra_id>/<filter_1>/<filter_2>/')
@view_cache.cached(key_prefix=api_cache_key("dataviewer"))
def index(data_type="rais", year="all", bra_id=None, filter_1=None, filter_2=None):
    # /hedu/all/show.3/01298.show.5/all/

    def get_filter_by_id(f):
        match = [v for v in filters if v["id"] == f]
        if match:
            return match[0]
        return None

    datasets = [["rais", _('Wages and Employment')],
                ["secex", _('International Trade')],
                ["hedu", _('Higher Education')],
                ["sc", _('School Census')]]
    for d in datasets:
        start_year, end_year = __year_range__[d[0]]
Ejemplo n.º 16
0
from dataviva.stats.util import parse_year
from dataviva.stats.profile_helper import compute_stats

mod = Blueprint('profiles', __name__, url_prefix='/profiles')


@mod.before_request
def before_request():
    g.page_type = mod.name
    g.path = request.path

    g.color = "#e0902d"


@mod.route('/')
@view_cache.cached(key_prefix=api_cache_key("profile"))
def index():

    profile_types = []

    # Bra
    most_recent_year = parse_year(__year_range__["secex"][-1])
    top = Ymb.query.filter_by(year=most_recent_year, month=0,
                              bra_id_len=9).order_by(
                                  Ymb.export_val.desc()).limit(5).all()
    top = [t.bra for t in top]
    profile_types.append({
        "summary":
        gettext(
            "Showing exports, employment and education data, statistics and visualizations about the chosen Brazilian location."
        ),
Ejemplo n.º 17
0
from flask import Blueprint, request, jsonify
from dataviva import db
from dataviva.general.views import get_locale
from dataviva.secex.models import Ymb, Ymp, Ymbp, Ymbpw, Ymbw, Ympw, Ymw
from dataviva.utils import table_helper, query_helper
from dataviva.utils.gzip_data import gzip_response
from dataviva import view_cache
from dataviva.utils.cached_query import api_cache_key
from dataviva.utils.csv_helper import gen_csv, is_download

mod = Blueprint("secex", __name__, url_prefix="/secex")


@mod.route("/<year>/<bra_id>/<hs_id>/<wld_id>/")
@mod.route("/<year>-<month>/<bra_id>/<hs_id>/<wld_id>/")
@view_cache.cached(key_prefix=api_cache_key("secex"), unless=is_download)
def secex_api(**kwargs):
    limit = int(kwargs.pop("limit", 0)) or int(request.args.get("limit", 0))
    order = request.args.get("order", None) or kwargs.pop("order", None)
    sort = request.args.get("sort", None) or kwargs.pop("sort", "desc")
    offset = request.args.get("offset", None) or kwargs.pop("offset", None)
    if order and "." in order:
        order, sort = order.split(".")
    ignore_zeros = request.args.get("zeros", False) or kwargs.pop("zeros", False)
    serialize = request.args.get("serialize", None) or kwargs.pop("serialize", True)
    exclude = request.args.get("exclude", None) or kwargs.pop("exclude", None)
    download = request.args.get("download", None) or kwargs.pop("download", None)

    if not "month" in kwargs:
        kwargs["month"] = query_helper.ALL
Ejemplo n.º 18
0
############################################################
# ----------------------------------------------------------
# All attribute views
#
############################################################


def get_planning_region_map():
    prs = db.session.query(bra_pr).all()
    pr_map = {k: v for k, v in prs}
    return pr_map


@mod.route("/school/")
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def voc_schools():
    attrs = School.query.filter(School.is_vocational == 1).all()
    lang = request.args.get('lang', None) or g.locale
    data = [fix_name(a.serialize(), lang) for a in attrs]
    return jsonify(data=data)


@mod.route("/school/in/<bra_id>/")
@gzipped
@view_cache.cached(key_prefix=api_cache_key("attrs"))
def school_attrs(bra_id):
    results = db.engine.execute('''
        SELECT id, school_type_id, name_pt, color
        FROM attrs_school
        LEFT JOIN sc_ybs