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
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
def validate(name): validate = True autores = Genero.all() for user in autores: if user.get('nombre').lower() == name.lower(): validate = False break return validate
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
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")
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
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")
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"))
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, )
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)
def create(): set_db() if validate(request.form.get('nombre')): Genero.create(request.form) flash("Genero cargado") return redirect(url_for("book_menu"))
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)
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"))
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)