예제 #1
0
def edit_meta(isbn):
    set_db()
    autores = Autor.all()
    editoriales = Editorial.all()
    generos = Genero.all()
    book=Book.find_meta_by_isbn(isbn)    
    book['autor'] = Autor.find_by_id(book['autor_id'])['nombre']
    book['editorial'] = Editorial.find_by_id(book['editorial_id'])['nombre']
    book['genero'] = Genero.find_by_id(book['genero_id'])['nombre']
    print(book)
    return render_template('books/edit_meta.html',book=book, isbn=isbn, autores=autores, editoriales=editoriales, generos=generos)
    def all_table(cls):
        preceptores = cls.all()

        for dict_item in preceptores:
            usuario_id = dict_item["usuario_id"]
            if usuario_id:

                user = User.find_by_id(usuario_id)
                dict_item["username"] = user["username"]
            dict_item["fecha_nacimiento"] = dict_item["fecha_nac"].strftime("%d-%m-%Y")
            del dict_item["fecha_nac"]
            loc = localidad(dict_item["localidad_id"])
            dict_item["localidad"] = loc["nombre"]
            del dict_item["localidad_id"]

            dict_item["genero"] = Genero.find_by_id(dict_item["genero_id"])[0]["nombre"]
            del dict_item["genero_id"]
            tipo_doc = tipo_documento(dict_item["tipo_doc_id"])
            dict_item["tipo_documento"] = tipo_doc["nombre"]
            del dict_item["tipo_doc_id"]
            dict_item["created_at"] = dict_item["created_at"].strftime(
                "%d-%m-%Y %H:%M:%S"
            )
            dict_item["updated_at"] = dict_item["updated_at"].strftime(
                "%d-%m-%Y %H:%M:%S"
            )

        return preceptores
예제 #3
0
def listadoDocentes():
    if 'email' not in session or not any(i in ['administrador', 'docente'] for i in session['roles']):
        return redirect(url_for("accesoDenegado"))
    tabla = configuracion.get_config()
    if tabla.sitio_habilitado == 0:
        return redirect(url_for("mantenimiento"))
    lista = Docente.notDeletedAll()
    eliminados = Docente.deletedAll()
    try:
        dnis = requests.get(
            "https://api-referencias.proyecto2019.linti.unlp.edu.ar/tipo-documento"
        )
        localidades = requests.get(
            "https://api-referencias.proyecto2019.linti.unlp.edu.ar/localidad"
        )
        tiposDNI = json.loads(dnis.text)
        listaLoc = json.loads(localidades.text)
    except requests.exceptions.ConnectionError:
        flash('hubo un error al traer datos de los dnis y/o localidades :(')
        return redirect(url_for('index'))
    return render_template(
        "/docente/listadoDocentes.html", lista=lista, cant=tabla.cantListar,
        generos=Genero.get_all(),
        dnis=tiposDNI,
        localidades=listaLoc,
        eliminados=eliminados,
    )
def crud_choices():
    locs = localidades()
    barrios = Barrio.all()
    generos = Genero.all()
    tipos_doc = tipos_documento()
    escuelas = Escuela.all()
    niveles = Nivel.all()
    responsables_tipos = Responsable_tipo.all()

    choices = dict()
    choices["select_localidad"] = [(localidad["id"], localidad["nombre"])
                                   for localidad in locs]
    choices["select_barrio"] = [(barrio["id"], barrio["nombre"])
                                for barrio in barrios]
    choices["select_genero"] = [(genero["id"], genero["nombre"])
                                for genero in generos]
    choices["select_tipo"] = [(tipo["id"], tipo["nombre"])
                              for tipo in tipos_doc]
    choices["select_escuela"] = [(escuela["id"], escuela["nombre"])
                                 for escuela in escuelas]
    choices["select_nivel"] = [(nivel["id"], nivel["nombre"])
                               for nivel in niveles]
    choices["select_responsable_tipo"] = [
        (responsable_tipo["id"], responsable_tipo["nombre"])
        for responsable_tipo in responsables_tipos
    ]

    return choices
예제 #5
0
def validate(name):
    validate = True
    autores = Genero.all()
    for user in autores:
        if user.get('nombre').lower() == name.lower():
            validate = False
            break
    return validate
예제 #6
0
 def allMeta(cls):
     sql = 'SELECT * FROM metadato'
     cursor = cls.db.cursor()
     cursor.execute(sql)
     metas = cursor.fetchall()
     for meta in metas:
         meta['autor_id'] = Autor.find_by_id(meta['autor_id'])['nombre']
         meta['editorial_id'] = Editorial.find_by_id(meta['editorial_id'])['nombre']
         meta['genero_id'] = Genero.find_by_id(meta['genero_id'])['nombre']
     return metas
예제 #7
0
def redirectCreateDocente(request=None):
    Genero.db = get_db()
    generos = Genero.all()
    if request:
        return render_template('user/createDocente.html',
                               generos=generos,
                               formRequest=request,
                               titulo="Registrar")
    else:
        return render_template('user/createDocente.html',
                               generos=generos,
                               titulo="Registrar")
예제 #8
0
def getPanelDocentes(page):
    if auth.authenticated():
        #g.user = session['user'] #En la documentación no detallaban el por qué de esta lína, pero sí que era necesaria para las paginas restringidas
        #Obtiene permisos del usuario
        User.db = get_db()
        permisos = User.get_permisos(session['id'])
        #Obtiene docentes
        Docente.db = get_db()

        lastpage = 1
        #Si se envia una pagina inexistente se aborta
        if (page > Docente.total_paginas(
                site_controller.get_pagination())) or (not int(page) > 0):
            abort(404)
        #Chequea si hubo busquedas
        #Se buscó solo nombre
        if forms.searchByFirstName(request.args).validate():
            docentes = Docente.searchByFirstName(
                request.args.get('solo_nombre'))
            #Se buscó solo apellido
        elif forms.searchByLastName(request.args).validate():
            docentes = Docente.searchByLastName(
                request.args.get('solo_apellido'))
        elif forms.searchByBoth(request.args).validate():
            #Se buscó ambos
            docentes = Docente.searchByBoth(request.args.get('ambos_nombre'),
                                            request.args.get('ambos_apellido'))
            #No hubo busqueda
        else:
            docentes = Docente.allPaginated(site_controller.get_pagination(),
                                            int(page))
            #Ultima pagina de paginado
            lastpage = Docente.getLastPage(site_controller.get_pagination(),
                                           int(page))
        #Obtiene generos
        Genero.db = get_db()
        generos = Genero.all()
        #Obtiene la información de las apis
        localidades = getLocalidades()
        tipo_docs = getDocumentos()
        #Retorna el template
        return render_template('auth/panel_components/docentes.html',
                               permisos=permisos,
                               nombre=session['nombre'],
                               apellido=session['apellido'],
                               localidades=localidades,
                               tipo_docs=tipo_docs,
                               generos=generos,
                               docentes=docentes,
                               page=page,
                               lastpage=lastpage)
    return redirect(url_for('auth_login'))
def choices():
    choices_dict = dict()

    generos = Genero.all()
    choices_dict["select_genero"] = [(g["id"], g["nombre"]) for g in generos]

    locs = localidades()
    choices_dict["select_localidad"] = [(l["id"], l["nombre"]) for l in locs]

    tipos = tipos_documento()
    choices_dict["select_tipo"] = [(t["id"], t["nombre"]) for t in tipos]

    return choices_dict
예제 #10
0
def redirectUpdateDocente(request=None, docente=None):
    Genero.db = get_db()
    generos = Genero.all()
    if request:
        return render_template('user/createDocente.html',
                               generos=generos,
                               formRequest=request,
                               titulo="Editar")
    else:
        return render_template('user/createDocente.html',
                               generos=generos,
                               docente=docente,
                               titulo="Editar")
예제 #11
0
def load_meta():
    set_db()
    
    autor = Autor.find_by_name(request.form['autor'])
    if autor == None:
        new_autor =request.form['autor']
        Autor.create({'nombre':new_autor})
        autor_id = Autor.find_by_name(new_autor)['id']
    else:
        autor_id = autor['id']

    editorial = Editorial.find_by_name(request.form['editorial'])

    if editorial == None:
        new_Editorial =request.form['editorial']
        Editorial.create({'nombre':new_Editorial})
        Editorial_id = Editorial.find_by_name(new_Editorial)['id']
    else:
        Editorial_id = editorial['id']

    genero = Genero.find_by_name(request.form['genero'])
    if genero == None:
        new_Genero =request.form['genero']
        Genero.create({'nombre':new_Genero})
        Genero_id = Genero.find_by_name(new_Genero)['id']
    else:
        Genero_id = genero['id']    
    if validate_meta_isbn(request.form['isbn']):
        
        Book.loadMeta(request.form, autor_id, Editorial_id, Genero_id)
        flash("Metadatos cargados")
    else:
        flash("Ya existe un libro con el mismo ISBN")
        return redirect(url_for("book_meta"))
    
    
    return redirect(url_for("book_menu"))
예제 #12
0
def docente_table():
    s_config = siteconfig.get_config()
    if not has_permission("docente_index", session) or (
            s_config["modo_mantenimiento"] == 1
            and not has_role("administrador", session)):
        abort(401)

    generos = Genero.all()

    return render_template(
        "tables/docentes.html",
        localidades=localidades(),
        tipodoc=tipos_documento(),
        generos=generos,
    )
예제 #13
0
def redirectCreateAlumno(request = None):
    Barrio.db = get_db()
    Genero.db = get_db()
    Responsable.db = get_db()
    Escuela.db = get_db()
    Nivel.db = get_db()

    barrios = Barrio.all()
    generos = Genero.all()
    responsables = Responsable.all()
    escuelas = Escuela.all()
    niveles = Nivel.all()

    if request:
        return render_template('user/createAlumno.html', barrios = barrios, generos = generos, responsables = responsables, escuelas = escuelas, niveles = niveles, formRequest = request, titulo = "Registrar")
    else:
        return render_template('user/createAlumno.html', barrios = barrios, generos = generos, responsables = responsables, escuelas = escuelas, niveles = niveles, titulo = "Registrar")
def listadoEstudiantes():
    if 'email' not in session or not any(
            i in ['administrador', 'docente', 'preceptor']
            for i in session['roles']):
        return redirect(url_for("accesoDenegado"))
    tabla = configuracion.get_config()
    if tabla.sitio_habilitado == 0:
        return redirect(url_for("mantenimiento"))
    lista = Estudiante.notDeletedAll()
    eliminados = Estudiante.deletedAll()
    try:
        dnis = requests.get(
            "https://api-referencias.proyecto2019.linti.unlp.edu.ar/tipo-documento"
        )
        localidades = requests.get(
            "https://api-referencias.proyecto2019.linti.unlp.edu.ar/localidad")
        tiposDNI = json.loads(dnis.text)
        listaLoc = json.loads(localidades.text)
    except requests.exceptions.ConnectionError:
        flash('hubo un error al traer datos de los dnis y/o localidades :(')
        return redirect(url_for('index'))
    user = User.get_by_email(session['email'])
    roles = Rol.all()
    aux = []
    for r in roles:
        if User_tiene_rol.tiene_rol(user.id, r.id):
            aux.append(r.nombre)
    return render_template("estudiante/listadoEstudiantes.html",
                           lista=lista,
                           cant=tabla.cantListar,
                           escuelas=Escuela.get_all(),
                           niveles=Nivel.get_all(),
                           barrios=Barrio.get_all(),
                           generos=Genero.get_all(),
                           dnis=tiposDNI,
                           localidades=listaLoc,
                           responsables=Responsable.all(),
                           eliminados=eliminados)
예제 #15
0
def create():
    set_db()
    if validate(request.form.get('nombre')):
        Genero.create(request.form)
        flash("Genero cargado")
    return redirect(url_for("book_menu"))
예제 #16
0
def getPanelEstudiantes(page):
    if not authenticated(session):
        abort(401)
    #Obtiene permisos del usuario
    User.db = get_db()
    permisos = User.get_permisos(
        session['id'])  #Session user es el email unico del usuario
    #Obtiene estudiantes
    Student.db = get_db()
    lastpage = 1
    #Si se envia una pagina inexistente se aborta
    if (page > Student.total_paginas(
            site_controller.get_pagination())) or (not int(page) > 0):
        abort(404)
    #Chequea si hubo busquedas
    #Se buscó solo nombre
    if forms.searchByFirstName(request.args).validate():
        students = Student.searchByFirstName(request.args.get('solo_nombre'))
        #Se buscó solo apellido
    elif forms.searchByLastName(request.args).validate():
        students = Student.searchByLastName(request.args.get('solo_apellido'))
    elif forms.searchByBoth(request.args).validate():
        #Se buscó ambos
        students = Student.searchByBoth(request.args.get('ambos_nombre'),
                                        request.args.get('ambos_apellido'))
        #No hubo busqueda
    else:
        students = Student.allPaginated(site_controller.get_pagination(),
                                        int(page))
        #Ultima pagina de paginado
        lastpage = Student.getLastPage(site_controller.get_pagination(),
                                       int(page))
    #Obtiene niveles
    Nivel.db = get_db()
    niveles = Nivel.all()
    #Obtiene generos
    Genero.db = get_db()
    generos = Genero.all()
    #Obtiene escuelas
    Escuela.db = get_db()
    escuelas = Escuela.all()
    #Obtiene barrios
    Barrio.db = get_db()
    barrios = Barrio.all()
    #Obtiene responsables
    Responsable.db = get_db()
    responsables = Responsable.all()
    #Obtiene la información de las apis
    localidades = getLocalidades()
    tipo_docs = getDocumentos()
    #Retorna el template
    return render_template('auth/panel_components/alumnos.html',
                           permisos=permisos,
                           nombre=session['nombre'],
                           apellido=session['apellido'],
                           students=students,
                           localidades=localidades,
                           tipo_docs=tipo_docs,
                           niveles=niveles,
                           generos=generos,
                           escuelas=escuelas,
                           barrios=barrios,
                           responsables=responsables,
                           page=page,
                           lastpage=lastpage)
예제 #17
0
def load_edit_meta(isbn):
    set_db()
    
    book = Book.find_meta_by_isbn(isbn)
    
    book_data = {}
    
    book_data['titulo'] = request.form.get('titulo') if (request.form.get('titulo') != '') else book['titulo']
    book_data['sinopsis'] = request.form.get('sinopsis') if (request.form.get('sinopsis') != '') else book['sinopsis']
    if request.form.get('autor') != '':
        print("se carga lo ingresado")
        autor = Autor.find_by_name(request.form['autor'])
        if autor == None:
            new_autor =request.form['autor']
            Autor.create({'nombre':new_autor})
            autor_id = Autor.find_by_name(new_autor)['id']
        else:
            autor_id = autor['id']
    else:
        print("Se carga lo previo")
        autor_id = book['autor_id']

    if request.form.get('editorial') != '':
        print("se carga lo ingresado")
        editorial = Editorial.find_by_name(request.form['editorial'])
        if editorial == None:
            new_Editorial =request.form['editorial']
            Editorial.create({'nombre':new_Editorial})
            Editorial_id = Editorial.find_by_name(new_Editorial)['id']
        else:
            Editorial_id = editorial['id']
    else:
        print("Se carga lo previo")
        Editorial_id = book['editorial_id']

    if request.form.get('genero') != '':
        print("se carga lo previo")
        genero = Genero.find_by_name(request.form['genero'])
        if genero == None:
            new_Genero =request.form['genero']
            Genero.create({'nombre':new_Genero})
            Genero_id = Genero.find_by_name(new_Genero)['id']
        else:            
            Genero_id = genero['id']
    else:
        print("Se carga lo previo")
        Genero_id = book['genero_id']    
    modified = False
    for key in request.form.keys():
        if (request.form.get(key) != ''):
            modified = True
            break    
    if request.form['completo']=="True":    
            if Book.find_by_isbn(isbn) is None:
                Book.mark_complete(isbn)
                merger(book_data['titulo'])
    Book.updateMeta(book_data, isbn, autor_id, Editorial_id, Genero_id)
    if modified:
        flash("Datos modificados correctamente")
    else: 
        flash("No se Ingresó ningún dato, no se modifcó el metadato")
    
    return redirect(url_for("book_menu"))
예제 #18
0
def render_meta():
    set_db()
    autores = list(map(lambda autor: autor['nombre'],Autor.all()))
    editoriales = list(map(lambda editorial: editorial['nombre'],Editorial.all()))
    generos = list(map(lambda genero: genero['nombre'],Genero.all()))
    return render_template('books/new_meta.html', autores=autores, editoriales=editoriales, generos=generos)