Example #1
0
def index():
    sys = Sistema.get_sistema()
    try:
        page = int(request.args['page'])
    except (BadRequestKeyError, ValueError):
        page = 1
    try:
        res = Page(User.query, page, sys.cant_por_pagina)  # check User.query
    except AttributeError:  # AttributeError raise when page<1
        return redirect(url_for('user_index'))
    return render_template("user/index.html", pagination=res)
Example #2
0
def authenticate():
    """authenticate() realiza los chequeos necesarios para autorizar el ingreso del usuario al sistema.
    La funcion thwart del paquete pymsql se encarga de sanitizar el parametro para evitar posibles sql injections"""

    sis_config = Sistema.get_sistema()
    form = LoginForm(request.form)
    if form.validate():
        username = thwart(form.username.data.lower())
        password = thwart(form.password.data.lower())

        app.logger.info("username {}".format(username))

        user = User.query.filter(User.email == username).first(
        )  # primero compruebo el que exista el correo, sino voy por el nombre de usuario
        if user is not None:
            if user.check_password(
                    password
            ) is False:  # pregunto si la pw conincide con el hash almacenado
                flash("Usuario/Email o Clave incorrecto.", "danger")
                return redirect(url_for('auth_login'))
        else:
            # si llegué aca es porque no encontro el mail, pruebo buscando el username
            user = User.query.filter(User.username == username).first()
            if user is None:
                flash("Usuario/Email o Clave incorrecto.", "danger")
                return redirect(url_for('auth_login'))
            else:
                if user.check_password(password) is False:
                    flash("Usuario/Email o Clave incorrecto.", "danger")
                    return redirect(url_for('auth_login'))

        if not user.active:
            flash("La cuenta que has ingresado se encuentra inactiva.",
                  "danger")
            return redirect(url_for('auth_login'))

        if not sis_config.habilitado and not user_has_permission(
                'system_modify_config'):
            flash(
                "No puedes loguearte porque el sitio no esta disponible momentaneamente.",
                "danger")
            return redirect(url_for('home'))

        app.logger.info("user: %s", user)
        set_session(user)
        flash("La sesión se inició correctamente.", "success")
        return redirect(url_for("home"))

    if form.errors:
        display_errors(form.errors)
        return redirect(url_for("auth_login"))
Example #3
0
def update():
    form = SistemaForm(formdata=request.form)
    if form.validate_on_submit() and request.method == "POST":
        sistema = Sistema.get_sistema()
        sistema.titulo = thwart(form.titulo.data)
        sistema.descripcion = thwart(form.descripcion.data)
        sistema.bienvenida = thwart(form.bienvenida.data)
        sistema.email = thwart(form.email.data)
        sistema.cant_por_pagina = form.cant_por_pagina.data
        sistema.habilitado = form.habilitado.data
        sistema.__update__()
        dbSession.commit()
        flash("Configuración actualizada correctamente!", "success")
        # return redirect(url_for(''))
    else:
        display_errors(form.errors)
        # return redirect(url_for())
    return redirect(url_for('system_configure'))
Example #4
0
def index(date_start=date.today(),
          date_end=(datetime.now() + timedelta(2)).date()):
    shifts = Shifts.get_shifts_between()
    sys = Sistema.get_sistema()
    try:
        page = int(request.args['page'])
        if page < 0:
            flash("El número de página debe ser mayor o igual a 1.", "danger")
            return redirect(url_for('turnos_index'))
    except (BadRequestKeyError, ValueError):
        page = 1
    res = Page(Shifts.query_shifts_between(date_start, date_end), page,
               sys.cant_por_pagina)
    search_donor_form = SearchDonorEmailForm()
    return render_template("shifts/index.html",
                           pagination=res,
                           date_start=date_start,
                           date_end=date_end,
                           shifts=shifts,
                           search_donor_form=search_donor_form)
Example #5
0
 def search_by_center_name_paginated(cls, center_name, page=1):
     """Retorna una paginación con los turnos pertenecientes al centro 'center_name'"""
     sys = Sistema.get_sistema()
     query = Shifts.query_center_name(center_name)
     return Page(query, page, sys.cant_por_pagina)
Example #6
0
 def search_by_donor_email_paginated(cls, donor_email, page=1):
     """Retorna una paginación con los turnos que contengan donor_email"""
     sys = Sistema.get_sistema()
     query = Shifts.query_donor_email(donor_email)
     return Page(query, page, sys.cant_por_pagina)
Example #7
0
def find_by_status_paginated(status, page=1):
    """Retornauna paginación con los usuarios con el estado recibido"""
    query = User.query_by_status(status)
    sys = Sistema.get_sistema()
    return Page(query, page, sys.cant_por_pagina)
Example #8
0
def find_by_username_paginated(username, page=1):
    """Retorna una paginación con los usuarios que contengan username en su nombre de usuario"""
    sys = Sistema.get_sistema()
    query = User.query_by_username(username)
    return Page(query, page, sys.cant_por_pagina)
Example #9
0
import io
from flask import redirect, render_template, request, url_for, flash, send_file, current_app as app
from flask_sqlalchemy import Pagination
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm.exc import NoResultFound
from werkzeug.exceptions import BadRequestKeyError
from pymysql import escape_string as thwart
from app import dbSession
from app.helpers.auth import restricted
from app.helpers.handler import display_errors
from app.helpers.pagination import Page
from app.models.center import Center
from app.models.sistema import Sistema
from app.resources.forms import CreateCenterForm

SYS_PAGE_COUNT = Sistema.page_count()


@restricted(perm='centro_index')
def index():
    try:
        page = int(request.args['page'])
    except (BadRequestKeyError, ValueError):
        page = 1
    try:
        res = Page(Center.get_for_index(), page, SYS_PAGE_COUNT)
    except AttributeError:
        return redirect(url_for('center_index'))
    return render_template("center/index.html", pagination=res)

Example #10
0
def show():
    sistema = Sistema.get_sistema()
    form = SistemaForm(obj=sistema)
    return render_template("sistema/config-sistema.html", form=form)