예제 #1
0
 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))
예제 #2
0
 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)
예제 #3
0
    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)
예제 #4
0
 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"))
예제 #5
0
 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))