Beispiel #1
0
def render_historial():
    set_db()        
    books = history()    
    areChapter = []
    availables = []
    today = dt.datetime.now()
    for book in books:
        if 'cap' in book['archivo']: #Forma de saber si es un cap, o el libro entero
            areChapter.append(True)
            isbn = book['isbn']
            num = int(re.search(r'\d+', book['archivo']).group(0))
            cap = Book.find_chapter_by_isbn(isbn, num)
            book['titulo'] = book['titulo'] + '\nCap ' + str(num)
            canRead = cap['available_from'] < today and ((cap['available_to'] is None) or cap['available_to'] > today)
            availables.append(canRead)
        else:
            areChapter.append(False)
            bok = Book.find_by_isbn(book['isbn'])
            canRead = validate_date(bok['isbn'])
            availables.append(canRead)

    i = int(request.args.get('i',0))
    Configuracion.db = get_db()
    pag=Configuracion.get_page_size()
    if (i == -1):
        i=0
    elif (i*pag >= len(books)):
        i = i - 1
    adm = "configuracion_usarInhabilitado" in session['permisos'] #Permiso que solo tiene un administrador
    return render_template('books/history.html', books=books, i=i, pag=pag, adm=adm, availables=availables, areChapter=areChapter)
Beispiel #2
0
def date_book(isbn):
    set_db()
    if (Book.find_by_isbn(isbn) is None):
        Book.updateDate_allChap(isbn, request.form)
    else: 
        Book.updateDate_book(isbn, request.form)
    return redirect(url_for("book_menu"))
Beispiel #3
0
def validate_date(isbn):
    set_db()
    complete = Book.is_complete(isbn)
    if complete:
        book = Book.find_by_isbn(isbn)
        today = dt.datetime.now()#.strfstrftime("%Y-%m-%d")
        if book is None:
            caps = Book.allChapter(isbn)            
            for cap in caps:
                if cap['available_to'] is not None and today > cap['available_to']:
                    print("Se encontro un capitulo vencido")
                    return False
                if cap['available_from'] is not None and today < cap['available_from']:
                    print("Se encontro un capitulo no disponible")
                    return False
            print("Ningun Capitulo se vencio")
            return True
        else:
            if book['available_to'] is not None and today > book['available_to']:
                print("El libro esta vencido")
                return False
            if book['available_from'] is not None and today < book['available_from']:
                print("El libro aun no esta disponible")
                return False
            else:
                print("El libro no esta vencido")
                return True                                
    else:
        print("Aun no se cargo el libro")
        return False
Beispiel #4
0
def delete(isbn):
    set_db()
    filename = Book.find_by_isbn(isbn)['archivo']
    if filename is not None and filename in os.listdir(static_path+book_name):
        book_name = filename[:-9] #el nombre del archivo es el titulo + _full.pdf
        os.remove(static_path+book_name+'/'+filename)
        Book.mark_incomplete(isbn)
        Book.delete(isbn)
        flash("Archivo eliminado")
    else:
        flash("No hay un libro completo cargado")
    return redirect(url_for("book_menu"))
Beispiel #5
0
def date_render_book(isbn):
    print("cambiar fecha de todo")
    Book.db = get_db()
    book = Book.find_by_isbn(isbn)
    if book is not None:
        available_from = book['available_from'].strftime("%Y-%m-%d")
        available_to = book['available_to'].strftime("%Y-%m-%d") if book['available_to'] is not None else ''
    else:
        available_from = ''
        available_to = ''
    print(available_from)
    print(available_to)
    adm = "configuracion_usarInhabilitado" in session['permisos'] #Permiso que solo tiene un administrador
    return render_template('books/modificar_total.html',adm=adm, isbn=isbn, available_from=available_from, available_to=available_to)
Beispiel #6
0
def validate_book_isbn(isbn):
    book = Book.find_by_isbn(isbn)
    return book == None
Beispiel #7
0
def date_menu(isbn):
    set_db()
    capitulos = Book.allChapter(isbn)
    libro = Book.find_by_isbn(isbn)    
    return render_template('books/modificar_menu.html', isbn=isbn, capitulos=capitulos, libro=libro)
Beispiel #8
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"))