def post(self): titulo = self.request.get("edTitulo", "") autor = self.request.get("edAutor", "") str_fecha_pub = self.request.get("edFechaPub", "") try: fecha_pub = datetime.datetime.strptime(str_fecha_pub, "%Y-%m-%d") except ValueError: fecha_pub = -1 if self.request.GET.keys(): usuario = Usuario.recuperar(self.request, "id") else: self.redirect('/') if fecha_pub == -1 or not titulo or not autor: return self.redirect('/') else: libro = Libro(titulo=titulo, autor=autor, fecha_pub=fecha_pub, creador=usuario.key) libro.put() time.sleep(1) return self.redirect('/?id={}'.format(usuario.key.urlsafe()))
def capitulo(self, capitulo_id): capitulo = Capitulo.id(capitulo_id) libro_id = capitulo["libro_id"] if "perfil_id" in session: perfil_id = session["perfil_id"] print("perfil: ", perfil_id, "leyendo: ", capitulo_id) Libro.update_leyendo(libro_id, capitulo_id, perfil_id) else: print("no hay perfil en session") return send_file(capitulo["ruta"][3:])
def Alquilar(self): self.__log.info("Alquilar un libro") estadolibro = EstadoLibro() print(f"\t ID\t Descripcion") for obj in estadolibro.all(): print(f"\t {obj.id}\t {obj.descripcion}") if obj.descripcion == 1: libroporalquilar = Prestamo() cliente = User() print(f"\t ID\t Nombre\t CORREO\t DOCUMENTO\t ESTADO") for obj in cliente.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}\t {obj.documento}\t {obj.estado_user_id}") print("Escriba el id del cliente") cliente = input() libro = Libro() print(f"\t ID\t Nombre\t ISBN\t Autor\t Editorial\t Estado") for obj in libro.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autors_id}\t {obj.editorial_id}\t {obj.estado_libro_id}") print("Escriba el id del libro") libro = input() DatabaseManager.table('libro').where('nombre', f'{obj.nombre}').update({'obj.estado_libro_id': 3}) biblioteca = Biblioteca() print(f"\t ID\t Nombre\t DIRECCION") for obj in biblioteca.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.direccion}") print("Escriba el id de la biblioteca") biblioteca = input() libroporalquilar.users_id = cliente libroporalquilar.libros_id = libro libroporalquilar.bibliotecas_id = biblioteca libroporalquilar.save() objMenus = init.Inicio() objMenus.MenuInicioMenu() elif obj.descripcion == 2: print("Lo sentimos el libro que busca esta reservado") objMenus = init.Inicio() objMenus.MenuInicioMenu() elif obj.descripcion == 2: print("Lo sentimos el libro que busca no se encuentra disponible") objMenus = init.Inicio() objMenus.MenuInicioMenu()
def get(self): jinja = jinja2.get_jinja2(app=self.app) valores_plantilla = {} if self.request.GET.keys(): usuario = Usuario.recuperar(self.request, "id_usuario") libro = Libro.recuperar(self.request, "id_libro") like = Like(libro=libro.key, usuario=usuario.key) tiene_likes = Like.query(Like.libro == libro.key, Like.usuario == usuario.key) if libro.creador == usuario.key: print("NO PUEDES DAR LIKE A TU LIBRO") else: if tiene_likes.count() == 0: print("LE DISTE LIKE") like.put() else: print("YA TIENE TU LIKE") return self.redirect('/?id={}'.format(usuario.key.urlsafe()), body={"mira": "pepe"}) else: self.redirect('/')
def get(self): jinja = jinja2.get_jinja2(app=self.app) if self.request.GET.keys(): usuario = Usuario.recuperar(self.request, "id") libros = Libro.query(Libro.creador == usuario.key) valores_plantilla = {'mis_libros': libros} else: self.response.write(jinja.render_template("/", **valores_plantilla)) libro = Libro.recuperar(self.request) libro.key.delete() time.sleep(1) return self.redirect('/')
def upload(self, libro_id): libro = Libro.id(libro_id) pdate = datetime.strptime(request.form["fechaPublicacion"], "%Y-%m-%d") errores = [] if pdate.date() < libro["fecha_publicacion"]: errores.append( "La fecha de publicación no puede ser anterior a la del libro ", libro["fecha_publicacion"]) if "fechaVencimiento" in request.form and request.form[ "fechaVencimiento"]: vdate = datetime.strptime(request.form["fechaVencimiento"], "%Y-%m-%d") if libro["fecha_vencimiento"][0] != '0': lvdate = datetime.strptime(libro["fecha_vencimiento"], "%Y-%m-%d") else: lvdate = None if lvdate and vdate.date() > lvdate.date(): errores.append( "Fecha de vencimiento ingresada es mayor que la fecha de vencimiento del libro" ) elif vdate.date() < pdate.date(): errores.append( "Fecha de vencimiento ingresada es menor que la fecha de publicación" ) else: vdate = None if (len(errores) == 0): pdfpath = self.gen_path('archivo') Capitulo.crear(libro_id, pdate, pdfpath) return errores #redirect (url_for("libro", libro_id=libro_id))
def index(self): libros = Libro.all() data = [] for libro in libros: autor = Author.id(libro["autor"]) genero = Genero.encontrar_por_id(libro["genero"]) data.append({"libro": libro, "autor": autor, "genero": genero}) return render_template('libros/index.html', libros=data)
def get(self): jinja = jinja2.get_jinja2(app=self.app) libro = Libro.recuperar(self.request, "id") libro.key.delete() time.sleep(1) return self.redirect('/')
def delete(): libros = Libro.query() for l in libros: l.key.delete() usuarios = Usuario.query() for u in usuarios: u.key.delete()
def devolverLibro(): usuario = Usuario() print(f"\t Codigo\t Nombre\t Correo\t Documento") for obj in usuario.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}\t {obj.documento}") idUsuario = int( input("Escriba el id del usuario que realiza la reserva: ")) libro = Libro() print(f"\t Codigo\t Nombre\t ISBN\t Autor\t Editorial\tEstado") for obj in libro.all(): print( f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autor_id}\t {obj.editorial_id}\t {obj.estado_libro_id}" ) idLibro = int(input("Ingrese el id del libro a reservar: ")) libro = Libro.find(idLibro) libro.estado_libro_id = 1 libro.save() biblioteca = Biblioteca() print(f"\t Codigo\t Nombre\t Dirección\t Documento") for obj in biblioteca.all(): print( f"\t {obj.id}\t {obj.nombre}\t {obj.direccion}\t {obj.documento}") idBiblioteca = int( input("Ingrese el id de la biblioteca donde se reservara: ")) prestamo = Prestamo() prestamo.usuario_id = idUsuario prestamo.libros_id = idLibro prestamo.prestado_on = str(date.today()) prestamo.bibliotecas_id = idBiblioteca prestamo.save()
def onSave(self): codigo = self.ui.spin_codigo.value() titulo = self.ui.edit_titulo.text() isbn = self.ui.edit_isbn.text() precio = self.ui.spin_precio.value() idioma = self.ui.edit_idioma.text() fecha = self.ui.date_publicacion.text() editorial = self.ui.combo_editorial.currentText() autor = self.autores[self.ui.combo_autor.currentIndex()]['codigo'] genero = self.ui.combo_genero.currentText() encuadernacion = self.ui.edit_encuadernacion.text() libro = Libro( codigo=codigo, titulo=titulo, isbn=isbn, precio=precio, idioma=idioma, publicacion=fecha, editorial=editorial, autor=autor, encuadernacion=encuadernacion, genero=genero, ) if self.libro is None: libro.save() else: libro._key = self.libro['codigo'] libro.update() self.done(0)
def new_book(self): isbn = request.form.get('isbn', '') pdate = datetime.strptime(request.form["fechaPublicacion"], "%Y-%m-%d") if "fechaVencimiento" in request.form and request.form[ "fechaVencimiento"]: vdate = datetime.strptime(request.form["fechaVencimiento"], "%Y-%m-%d") else: vdate = None errores = [] if Libro.existe_isbn(isbn): errores.append("ISBN Repetido") if vdate and vdate <= pdate: errores.append("Fecha de vencimiento incorrecta") if (len(errores) != 0): return self.new(errores, request.form) imgpath = self.gen_path('portada') Libro.crear(request.form, imgpath) return redirect(url_for("libro_index"))
def onLibroEliminar(self): for item in self.ui.table_libro.selectedIndexes(): try: codigo = self.libros[item.row()]['codigo'] Libro(codigo=codigo).delete() except ForeignKeyViolation: QMessageBox.warning( self, "Atención", f'El libro con codigo "{codigo}" no puede eliminarse') self.onAutorMostrar()
def edit_book(self, libro_id): libro = Libro.id(libro_id) isbn = request.form.get('isbn', '') pdate = datetime.strptime(request.form["fechaPublicacion"], "%Y-%m-%d") if "fechaVencimiento" in request.form and request.form[ "fechaVencimiento"]: vdate = datetime.strptime(request.form["fechaVencimiento"], "%Y-%m-%d") else: vdate = None errores = [] if isbn != libro["isbn"] and Libro.existe_isbn(isbn): errores.append("ISBN Repetido") if vdate and vdate <= pdate: errores.append("Fecha de vencimiento incorrecta") if (len(errores) != 0): return self.edit(libro_id, errores) imgpath = self.check_path(libro, 'portada', 'ruta_img') Libro.edit(request.form, imgpath, libro_id) return redirect(url_for("libro_index"))
def edit(self, libro_id, errores=[]): libro = Libro.id(libro_id) editoriales = Editorial.all() generos = Genero.all() autores = Author.all_active() return render_template('libros/editar.html', libro=libro, editoriales=editoriales, generos=generos, autores=autores, errores=errores)
def get(self): jinja = jinja2.get_jinja2(app=self.app) libros = Libro.query() likes = Like.query() usuarios = Usuario.query() valores_plantilla = { 'usuarios': usuarios, 'libros': libros, 'likes': {libro.key: Like.numero_likes_libro(libro) for libro in libros}, 'likes_usuarios': {libro.key: Like.usuarios_likes_libro(libro) for libro in libros} } Like.usuarios_likes_libro(Libro.query(Libro.titulo=="Titulo1").get()) # Todos los usuarios que le dieron like al libro. if self.request.GET.keys(): valores_plantilla['usuario'] = Usuario.recuperar(self.request, "id") valores_plantilla['mis_libros'] = Libro.query(Libro.creador == valores_plantilla['usuario'].key) self.response.write(jinja.render_template("index.html", **valores_plantilla))
def insertarLibro(): libro = Libro() print(f"\t Codigo\t Nombre\t ISBN\t Autor\t Editorial\tEstado") for obj in libro.all(): print( f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autor_id}\t {obj.editorial_id}\t {obj.estado_libro_id}" ) libro.nombre = input("Escriba el nombre del libro: ") libro.isbn = input("Ingrese el codigón ISBN del libro: ") autores = Autor() print(f"\t Codigo\t Nombre\t Tipo") for obj in autores.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}") libro.autor_id = int(input("Ingrese el id del autor del libro: ")) editorial = Editorial() print(f"\t Codigo\t Nombre\t Correo\t Dirección") for obj in editorial.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}\t {obj.dirección}") libro.editorial_id = int( input("Ingrese el id de la editorial del libro: ")) libro.estado_libro_id = 1 libro.save()
def eliminarLibro(): libro = Libro() print(f"\t Codigo\t Nombre\t ISBN\t Autor\t Editorial\tEstado") for obj in libro.all(): print( f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autor_id}\t {obj.editorial_id}\t {obj.estado_libro_id}" ) idToUpdate = int(input("Ingrese el id del libro a editar: ")) libro = libro.find(idToUpdate) libro.delete()
def registroLibros(self): self.__log.info("Ingresando al Registro de Libros") opcionesRegistroLibros = { "\t- Registrar Libros": 1, "\t- Listar Libros": 2 } menuRegistroLibros = Menu("Registro de Libros", opcionesRegistroLibros) resmenuRegistroLibros = menuRegistroLibros.mostrarMenu() stopMenu = True while stopMenu: if resmenuRegistroLibros == 1: self.__log.info("Entrando al registro de libros") nuevoLibro = Libro() nombreLibro = input("escriba el nombre del Libro \n") isbnLibro = input("escriba en ISBN del libro \n") autores = Autor() print(f"\t Codigo\t Nombre\t Tipo") for obj in autores.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}") print("Escriba el id del Autor de la siguiente lista") autor_idLibro = input() estados = EstadoLibro() print(f"\t Codigo\t Estado") for obj in estados.all(): print(f"\t {obj.id}\t {obj.descripcion}") print( "Escriba el id del Estado del Libro de la siguiente lista") estadoLibro = input() nuevoLibro.nombre = nombreLibro nuevoLibro.isbn = isbnLibro nuevoLibro.autor_id = autor_idLibro nuevoLibro.estado_libro_id = estadoLibro nuevoLibro.save() stopMenu = False elif resmenuRegistroLibros == 9: self._log.info("Saliendo")
def libro(self, libro_id): try: int(libro_id) except: abort(404) libro = Libro.id(libro_id) autor = Author.id(libro["autor"]) genero = Genero.encontrar_por_id(libro["genero"]) editorial = Editorial.id(libro["editorial"]) reseñas = Reseña.reseñas_de_un_libro_con_id(libro_id) capitulos = Capitulo.libro(libro_id) perfil_tiene_reseña = False perfil_leyo_el_libro = False cantidad = Libro.obtenerCantidadDeReseñasDeUnLibro( libro_id)[0]['cantidad'] total = Libro.obtenerCalificacionTotalDeUnLibro(libro_id)[0]['total'] promedio = 0 if (cantidad != 0): promedio = round((total / cantidad), 2) if "perfil_id" in session and not session["admin"]: perfil_id = session["perfil_id"] leido = Libro.leido(libro_id, perfil_id) leyendo = Libro.leyendo(libro_id, perfil_id) favorito = Libro.favorito(libro_id, perfil_id) if Libro.el_perfil_dio_una_reseña_al_libro(session['perfil_id'], libro_id): perfil_tiene_reseña = True if Libro.el_perfil_leyo_el_libro(session['perfil_id'], libro_id): perfil_leyo_el_libro = True else: leido = None favorito = None leyendo = None return render_template('libros/show.html', libro=libro, autor=autor, genero=genero, editorial=editorial, capitulos=capitulos, leido=leido, favorito=favorito, leyendo=leyendo, reseñas=reseñas, perfil_tiene_reseña=perfil_tiene_reseña, perfil_leyo_el_libro=perfil_leyo_el_libro, promedio=promedio)
def Devolver(self): self.__log.info("Devolver un libro") libro = Libro() print(f"\t ID\t Nombre\t ISBN\t Autor\t Editorial\t Estado") for obj in libro.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autors_id}\t {obj.editorial_id}\t {obj.estado_libro_id}") print("Escriba el id del libro") idlibro = input() DatabaseManager.table('libro').where('nombre', f'{obj.nombre}').update({'obj.estado_libro_id': 1}) libro.libros_id = idlibro libro.save() objMenus = init.Inicio() objMenus.MenuInicioMenu()
def index(self, perfil_id=None): if perfil_id != None: try: int(perfil_id) session["perfil_id"] = perfil_id except: pass libros = Libro.all() editoriales = Editorial.all() generos = Genero.all() autores = Author.all() cant = 0 mostrar = [] for libro in libros: if cant < 6: mostrar.append(libro) cant = cant + 1 return render_template('index.html', libros=mostrar, editoriales=editoriales, generos=generos, autores=autores)
def __init__(self, existencia = None): super(ExistenciaWindow, self).__init__() self.ui = Ui_Dialog() self.ui.setupUi(self) self.existencia = existencia self.ui.push_cancelar.clicked.connect(self.onClose) self.ui.push_guardar.clicked.connect(self.onSave) self.sucursales = Sucursal().getAll() self.libros = Libro().getAll() for sucursal in self.sucursales: self.ui.combo_sucursal.addItem(sucursal['nombre']) for libro in self.libros: self.ui.combo_libro.addItem(libro['titulo'], libro['codigo']) if existencia is not None: index = self.ui.combo_sucursal.findText(self.existencia['sucursal']) self.ui.combo_sucursal.setCurrentIndex(index) index = self.ui.combo_libro.findData(self.existencia['libro_id']) self.ui.combo_libro.setCurrentIndex(index) self.ui.spin_cantidad.setValue(existencia['existencia'])
def registroLibros(self): self.__log.info("Ingresando al Registro de Libros") opcionesRegistro = { "\t- Registrar Libros": 1, "\t- Listar Libros": 2, "\t- Registrar Lector": 3, "\t- Listar Lectores": 4 } menuRegistro = Menu("Registro de Libros", opcionesRegistro) resmenuRegistro = menuRegistro.mostrarMenu() stopMenu = True while stopMenu: if resmenuRegistro == 1: self.__log.info("Entrando al registro de libros") print("Registrar Libros") nuevoLibro = Libro() nombreLibro = input("escriba el nombre del Libro \n") isbnLibro = input("escriba en ISBN del libro \n") autores = Autor() print(f"\t Codigo\t Nombre\t Tipo") for obj in autores.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}") print("Escriba el id del Autor de la siguiente lista") autor_idLibro = input() estados = EstadoLibro() print(f"\t Codigo\t Estado") for obj in estados.all(): print(f"\t {obj.id}\t {obj.descripcion}") print( "Escriba el id del Estado del Libro de la siguiente lista") estadoLibro = input() nuevoLibro.nombre = nombreLibro nuevoLibro.isbn = isbnLibro nuevoLibro.autor_id = autor_idLibro nuevoLibro.estado_libro_id = estadoLibro nuevoLibro.save() stopMenu = False if resmenuRegistro == 2: self.__log.info("Entrando a listar libros") print("Listar libros") libros = Libro() print(f"\t Codigo\t Nombre\t ISBN") for obj in libros.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}") stopMenu = False if resmenuRegistro == 3: self.__log.info("Entrando al registro de lectores") print("Registrar Lectores") nuevoUser = User() nombreUser = input("escriba el nombre del nuevo Usuario \n") correoUser = input("escriba el correo \n") tipodocumento = TipoDocumento() print(f"\t id\t Descripcion") for obj in tipodocumento.all(): print(f"\t {obj.id}\t {obj.descripcion}") print( "Escriba el id del tipo de documento de la anterior lista") documento_idTipodocumento = input() documentoUser = input("escriba el numero del documento \n") estadoUser = EstadoUser() print(f"\t id\t descripcion") for obj in estadoUser.all(): print(f"\t {obj.id}\t {obj.descripcion}") print( "Escriba el id del Estado del Usuario de la anterior lista" ) estado_User = input() nuevoUser.nombre = nombreUser nuevoUser.correo = correoUser nuevoUser.tipo_documento_id = documento_idTipodocumento nuevoUser.documento = documentoUser nuevoUser.estado_user_id = estado_User nuevoUser.save() stopMenu = False if resmenuRegistro == 4: self.__log.info("Entrando a listar lector") print("Listar lectores") Usuarios = User() print(f"\t Codigo\t Nombre\t correo") for obj in Usuarios.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}") stopMenu = False elif resmenuRegistro == 9: self._log.info("Saliendo")
def registroPrestamos(self): self.__log.info("Ingresando al Módulo de Prestamos") stopMenu = True while stopMenu: opcionesPrestamoLibros = { "\t- Lista de Prestamos": 1, "\t- Registrar Prestamos": 2, "\t- Devolucion de Libros": 3 } menuPrestamoLibros = Menu("Módulo de Prestamos", opcionesPrestamoLibros) resmenuPrestamoLibros = menuPrestamoLibros.mostrarMenu() if resmenuPrestamoLibros == 1: self.__log.info("Entrando a la Lista de Prestamos") PrestamoN = Prestamo() print( str("Codigo").ljust(5) + "\t " + str("Fecha Prestamo").ljust(10) + "\t " + str("Usuario").ljust(10) + "\t" + str("Biblioteca").ljust(25) + "\t " + str("Libro").ljust(7) + "\t " + str("Estado").ljust(7)) contador = 0 for obj in PrestamoN.all(): ObjUserTemp = User.find(obj.user_id) ObjLibrTemp = Libro.find(obj.libros_id) ObjBiblioTemp = Biblioteca.find(obj.bibliotecas_id) ObjEstaLibTempp = EstadoLibro.find( ObjLibrTemp.estado_libro_id) contador += 1 print( str(obj.id).ljust(5) + "\t " + str(obj.prestamo_on).ljust(10) + "\t " + str(ObjUserTemp.nombre).ljust(10) + "\t" + str(ObjBiblioTemp.nombre).ljust(25) + "\t " + str(ObjLibrTemp.nombre).ljust(7) + "\t " + str(ObjEstaLibTempp.descripcion).ljust(7)) if contador > 0: print("Lista Completa") else: print("No hay registros") stopMenu = False elif resmenuRegistroLibros == 2: self.__log.info("Registrar Prestamos") nuevo = Prestamo() UserN = User() print(f"\t Codigo\t\t\t Nombre\t\t\t Estado") for obj in UserN.all(): print( f"\t {obj.id}\t\t\t {obj.nombre}\t\t\t {obj.estado_user_id}" ) print("Escriba el id del usuario: ") usuario_id = input() LibroN = Libro() print(f"\t Codigo\t Libro") for obj in LibroN.all(): print(f"\t {obj.id}\t {obj.nombre}") print("Escriba el id del libro: ") libroId = input() BibliotecaN = Biblioteca() print(f"\t Codigo\t Biblioteca") for obj in BibliotecaN.all(): print(f"\t {obj.id}\t {obj.nombre}") print("Escriba el id de la Biblioteca: ") bibliotecaId = input() nuevo.user_id = usuario_id nuevo.libros_Id = libroId nuevo.prestamo_on = datetime.now() nuevo.bibliotecas_id = bibliotecaId nuevo.save() nuevoD = Libro.find(nuevo.libros_Id) nuevoD.estado_libro_id = 3 nuevoD.save() print("Registro completo") stopMenu = False elif resmenuRegistroLibros == 3: self.__log.info("Devolución de Libros") librosTemporal = [] libroNN = Libro.where('estado_libro_id', '=', '3').get() for libt in libroNN.all(): idlibTemp = libt.id PrestamoN = Prestamo.where('libros_id', '=', f"{idlibTemp}").get() for presIn in PrestamoN.all(): temporalDato = { "id": str(presIn.id), "user_id": str(presIn.user_id), "libros_id": str(presIn.libros_id), "prestamo_on": str(presIn.prestamo_on), "bibliotecas_id": str(presIn.bibliotecas_id) } librosTemporal.append(temporalDato) contaDD = 0 print(f"\t Codigo\t\t " + str("Libros").ljust(15) + "\t\t Fecha\t\t Bibliotecas") for obj in librosTemporal: contaDD += 1 LibTempN = Libro.find(obj["libros_id"]) BibliTempN = Biblioteca.find(obj["bibliotecas_id"]) ididD = str(obj["id"]) prest = str(obj["prestamo_on"]) print(f"\t{ididD}\t\t " + str(LibTempN.nombre).ljust(15) + "\t\t" + prest + "\t\t" + BibliTempN.nombre) if contaDD > 0: print("Escriba el id del Préstamo") Prestamo_NID = input() nuevoPresD = Prestamo.find(Prestamo_NID) nuevoD = Libro.find(nuevoPresD.libros_id) nuevoD.estado_libro_id = 1 nuevoD.save() print(f"Devolucion correcta") else: print("No hay registros") stopMenu = False elif resmenuRegistroLibros == 9: stopMenu = False self.__log.info("Saliendo")
def new_completo_capitulo(self, libro_id): libro = Libro.id(libro_id) pdfpath = self.gen_path('archivo') Capitulo.crear(libro_id, libro["fecha_publicacion"], pdfpath) Libro.completo(libro_id) return redirect(url_for("libro", libro_id=libro_id))
def registroPrestamos(self): self.__log.info("Ingresando al Registro de los ") opcionesRegistrolos = { "\t- Registrar Prestamos ": 1, "\t- Registrar devolucion de prestamo ": 2 } menuRegistrolos = Menu("Registro de Prestamos ", opcionesRegistrolos) resmenuRegistrolos = menuRegistrolos.mostrarMenu() stopMenu = True while stopMenu: if resmenuRegistrolos == 1: self.__log.info("Entrando al registro de Prestamos ") nuevoPrestamo = Prestamo() codigoLibro = input("escriba el codigo del Libro \n") codigoUsuario = input("escriba el codigo del usuario \n") fechaPrestamo = datetime.today().strftime('%Y-%m-%d') bibliotecaId = 1 flagUpdate = False nuevoPrestamo.user_id = codigoUsuario nuevoPrestamo.libros_id = codigoLibro nuevoPrestamo.prestado_on = fechaPrestamo nuevoPrestamo.bibliotecas_id = bibliotecaId listaLibros = Libro.where('id', '=', f'{codigoLibro}').get() for row in listaLibros: libro = row if libro.estado_libro_id == 1: listaAutor = Autor.where('id', '=', f'{libro.autor_id}').get() for row in listaAutor: autor = row print( "\tCodigo Usuario\t\tLibro\t\tISBN\t\tAutor\t\tBiblioteca" ) print( f"\t{str(codigoUsuario)}\t\t{str(libro.nombre)}\t\t{str(libro.isbn)}\t\t{str(autor.nombre)}\t\t{str(bibliotecaId)}" ) registro = input( "Desea registrar el prestamo Si(1)/No(0)?: ") if str(registro) == '1': if nuevoPrestamo.save(): print("Registro de prestamo satisfactorio") sleep(5) flagUpdate = Libro.where( 'id', '=', f'{codigoLibro}').update(estado_libro_id=3) if flagUpdate: print("Actualización de libro satisfactorio") sleep(5) else: print("No se pudo actualizar el libro") else: print( "No se puede prestar el libro.\nLibro ha sido prestado." ) sleep(5) stopMenu = False elif resmenuRegistrolos == 2: self.__log.info("Entrando a la devolución de libro Prestado ") codigoUsuario = input("escriba el codigo del usuario \n") fechaDevolucion = '9999-12-31' #Constante para identificar devolucion flagUpdate = False listaDev = Prestamo.where('user_id', '=', f'{codigoUsuario}').get() if listaDev: print( "\tID Prestamo\tLibro\t\tISBN\t\tAutor\t\tBiblioteca") for rowDev in listaDev: if str(rowDev.prestado_on ) != fechaDevolucion: #No mostrar devoluciones listaLibros = Libro.where( 'id', '=', f'{rowDev.libros_id}').get() for rowLibro in listaLibros: libro = rowLibro listaAutor = Autor.where( 'id', '=', f'{libro.autor_id}').get() for rowAutor in listaAutor: autor = rowAutor print( f"\t{str(rowDev.id)}\t\t{str(libro.nombre)}\t\t{str(libro.isbn)}\t\t{str(autor.nombre)}\t\t{str(rowDev.bibliotecas_id)}" ) idDev = input("Escriba el Id de Prestamo: ") if idDev: flagUpdate = Prestamo.where( 'id', '=', f'{idDev}').update(prestado_on=fechaDevolucion) if flagUpdate: print("Actualización de Devolución satisfactoria") sleep(5) flagUpdate = Libro.where( 'id', '=', f'{rowDev.libros_id}').update( estado_libro_id=1) if flagUpdate: print("Actualización de libro satisfactorio") sleep(5) else: print("No se pudo actualizar el libro") else: print("No se pudo actualizar Devolución") stopMenu = False elif resmenuRegistrolos == 9: self._log.info("Saliendo") stopMenu = False
def registroLibros(self): self.__log.info("Ingresando al Registro de Libros") while True: opcionesRegistroLibros = { "\t- Registrar Libros": 1, "\t- Listar Libros": 2 } menuRegistroLibros = Menu("Registro de Libros", opcionesRegistroLibros) resmenuRegistroLibros = menuRegistroLibros.mostrarMenu() if resmenuRegistroLibros == 1: self.__log.info("Entrando al registro de libros") nuevoLibro = Libro() nombreLibro = input("escriba el nombre del Libro \n") isbnLibro = input("escriba en ISBN del libro \n") autores = Autor() print(f"\t Codigo\t Nombre\t Tipo") for obj in autores.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}") print("Escriba el id del Autor de la siguiente lista") autor_idLibro = input() estados = EstadoLibro() print(f"\t Codigo\t Estado") for obj in estados.all(): print(f"\t {obj.id}\t {obj.descripcion}") print( "Escriba el id del Estado del Libro de la siguiente lista") estadoLibro = input() nuevoLibro.nombre = nombreLibro nuevoLibro.isbn = isbnLibro nuevoLibro.autor_id = autor_idLibro nuevoLibro.estado_libro_id = estadoLibro nuevoLibro.save() input("Continuar?") elif resmenuRegistroLibros == 2: self.__log.info("Ingresando a listar libros") libros = Libro() print(f"\t Codigo\t Nombre\t\t ISBN\t Autor\t Estado") for obj in libros.all(): y = obj.estado_libro_id if (y == 1): estado = "Disponible" elif (y == 2): estado = "Reservado" elif (y == 3): estado = "Prestado" print( f"\t {obj.id}\t {obj.nombre}\t\t {obj.isbn}\t {obj.autor_id}\t {estado}" ) input("Continuar?") elif resmenuRegistroLibros == 9: self.__log.info("Saliendo") break
def RegistroLibros(self): self.__log.info("Ingresando al Registro de Libros") opcionesRegisLibros = { "\t- Registrar Libro": 1, "\t- Listar Libros": 2, "\t- Eliminar Libros": 3 } MenuRegisLibros = Menu("Menu Modulo Libros", opcionesRegisLibros) regisLibros = MenuRegisLibros.mostrarMenu() menuRegisLib = True while menuRegisLib: if (regisLibros == 1): nuevoLibro = Libro() nombreLibro = input("escriba el nombre del Libro \n") isbnLibro = input("escriba el ISBN del libro \n") autores = Autor() print(f"\t ID\t Nombre\t Correo") for obj in autores.all(): print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}") print("Escriba el id del Autor") autor_idLibro = input() editoriales = Editorial() print(f"\t ID\t Nombre") for obj in editoriales.all(): print(f"\t {obj.id}\t {obj.nombre}") print("Escriba el id de la editorial") editorialLibro = input() nuevoLibro.nombre = nombreLibro nuevoLibro.isbn = isbnLibro nuevoLibro.autor_id = autor_idLibro nuevoLibro.estado_libro_id = editorialLibro nuevoLibro.save() menuRegisLib = False elif (regisLibros == 2): libros = Libro() print(f"ID\t NOMBRE\t ISBN\t AUTOR\t EDITORIAL\t ESTADO") for obj in libros.all(): print( f"\t {obj.id}\t {obj.nombre}\t {obj.ISBN}\t {obj.autors_id}\t {obj.editorial_id}\t {obj.estado_libro_id}" ) print("Escriba el id de la editorial") editorialLibro = input() input("Regresar???") menuRegisLib = False program.utils.Menu("Menu Modulo Libros", regisLibros) elif (regisLibros == 3): libros = Libro() print(f"ID\t NOMBRE\t ISBN\t AUTOR\t EDITORIAL\t ESTADO") for obj in libros.all(): print( f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autors_id}\t {obj.editorial_id}\t {obj.estado_libro_id}" ) print("Escriba el id del libro que se desea eliminar: \n") id = input() DatabaseManager.table('libros').get() DatabaseManager.table('libros').where('id', '=', f'{id}').delete() menuRegisLib = False elif (regisLibros == 9): __log = log("Saliendo") break
def create(): fecha_pub = datetime.datetime.strptime("2012-10-3", "%Y-%m-%d") for i in range(3): usuario = Usuario(nombre="Nuevo{}".format(i), email="nuevo{}@nuevo.com".format(i)) usuario.put() time.sleep(2) usuario0 = Usuario.query(Usuario.nombre=="Nuevo0").get() usuario1 = Usuario.query(Usuario.nombre=="Nuevo1").get() usuario2 = Usuario.query(Usuario.nombre=="Nuevo2").get() for i in range(3): libro = Libro(titulo="Titulo{}".format(i), autor="Autor{}".format(i), fecha_pub=fecha_pub, creador=usuario0.key) libro.put() for i in range(3): libro = Libro(titulo="Titulo{}".format(i+3), autor="Autor{}".format(i+3), fecha_pub=fecha_pub, creador=usuario1.key) libro.put() for i in range(3): libro = Libro(titulo="Titulo{}".format(i+6), autor="Autor{}".format(i+6), fecha_pub=fecha_pub, creador=usuario2.key) libro.put()