예제 #1
0
파일: stats.py 프로젝트: AshWilliams/api
    def on_get(self, req, resp, datatype=None):

        if datatype == "0":

            stats = models_stats.Sumario.select().first()

            response = model_to_dict(stats)

            resp.body = json.dumps(response, cls=JSONEncoderPlus, sort_keys=True)

        elif datatype == "1":

            gasto_organismos = models_stats.MinisterioOrganismoMonto.select(
                models_stats.MinisterioOrganismoMonto.nombre_ministerio.concat("-")
                .concat(models_stats.MinisterioOrganismoMonto.nombre_organismo)
                .alias("nombre"),
                cast(models_stats.MinisterioOrganismoMonto.monto, "bigint").alias("monto"),
            ).order_by(peewee.SQL("nombre"))

            output = BytesIO()
            csvwriter = csv.writer(output, encoding="utf-8")

            for go in gasto_organismos.tuples():
                csvwriter.writerow(go if len(go) == 4 else go + ("null", "null"))

            resp.content_type = "text/csv"
            output.seek(0)
            resp.stream = output

        else:
            raise falcon.HTTPNotFound()
예제 #2
0
def list():
    search_param = request.args.get('q')

    if search_param:
        courses = Course.select().join(Department).where(
            Course.name.contains(search_param)
            | cast(Course.number, 'text').contains(search_param)
            | cast(Course.credit_hours, 'text').contains(search_param)
            | Department.name.contains(search_param)
            | Department.code.contains(search_param)).order_by(Course.number)
    else:
        courses = Course.select().join(Department).order_by(Course.number)

    return render_template('course/list.html',
                           title="Courses",
                           courses=courses,
                           search=search_param)
예제 #3
0
def list_for_department(department_code):
    # FIXME: this seems like an unneccesary first query; is there a way to get the same behavior but save a query?
    department = get_object_or_404(Department,
                                   Department.code == department_code)

    search_param = request.args.get('q')

    if search_param:
        courses = Course.select().join(Department).where(
            (Course.name.contains(search_param)
             | cast(Course.number, 'text').contains(search_param)
             | cast(Course.credit_hours, 'text').contains(search_param)
             | Department.name.contains(search_param)),
            Department.code == department_code).order_by(Course.number)
    else:
        courses = Course.select().join(Department).where(
            Department.code == department_code)

    return render_template('course/list.html',
                           title=department.name + " Courses",
                           courses=courses,
                           search=search_param)
예제 #4
0
    def on_get(self, req, resp, datatype=None):
        """Obtiene estadisticas

        :param req: Falcon request object
        :param resp: Falcon response object
        :param datatype: Tipo de estadisticas solicitadas
        :return:
        """

        if datatype == '0':

            stats = models_api.Sumario.select().first()

            response = model_to_dict(stats)

            resp.body = json.dumps(response, cls=JSONEncoderPlus, sort_keys=True)

        elif datatype == '1':

            gasto_organismos = models_api.MinisterioOrganismoMonto.select(
                models_api.MinisterioOrganismoMonto.nombre_ministerio.concat('-').concat(models_api.MinisterioOrganismoMonto.nombre_organismo).alias('nombre'),
                cast(models_api.MinisterioOrganismoMonto.monto, 'bigint').alias('monto')
            ).order_by(
                peewee.SQL('nombre')
            )

            # Presentar los resultados como un archivo CSV
            # Simular archivo con un archivo en memoria
            output = BytesIO()
            csvwriter = csv.writer(output, encoding='utf-8')
            # Escribir  archivo
            for go in gasto_organismos.tuples():
                csvwriter.writerow(go if len(go) == 4 else go+('null', 'null'))
            # Preparar archivo para descarga
            resp.content_type = 'text/csv'
            output.seek(0)
            resp.stream = output

        else:
            raise falcon.HTTPNotFound()
예제 #5
0
파일: bknizer.py 프로젝트: AshWilliams/api
# Migrate

###############################################
### PublicCompanies -> Comprador ###
###############################################

print "\nMIGRATE PublicCompanies -> %s.Comprador" % db_schema_bkn

fields_from = [
    models_old.PublicCompanies.id,

    models_old.Jerarquia.ministerio_nombre,
    models_old.Jerarquia.catalogo_organismo,

    cast(models_old.Jerarquia.organismo_codigo, 'integer'),
    models_old.Jerarquia.organismo_nombre,

    cast(models_old.PublicCompanies.codigo_unidad, 'integer'),
    models_old.PublicCompanies.nombre_unidad,
    models_old.PublicCompanies.rut_unidad,
    models_old.PublicCompanies.direccion_unidad,
    models_old.PublicCompanies.comuna_unidad,
    models_old.PublicCompanies.region_unidad,

    cast(models_old.PublicCompanies.codigo_usuario, 'integer'),
    models_old.PublicCompanies.nombre_usuario,
    models_old.PublicCompanies.rut_usuario,
    models_old.PublicCompanies.cargo_usuario,
]