示例#1
0
def search_results(searchForm, prev=False):

    search = SearchForm(request.form)
    if request.method == 'POST' and prev == True:
        return search_results(search)

    searchString = searchForm.data['search']

    search = SearchForm(request.form)

    books = db.session.query(Book).filter(
        Book.title.ilike("%" + searchString + "%"))
    authors = db.session.query(Author).filter(
        Author.name.ilike("%" + searchString + "%"))
    publishers = db.session.query(Publisher).filter(
        Publisher.name.ilike("%" + searchString + "%"))
    print(searchString)
    print(books, "books")
    print(authors, "authors")
    print(publishers, "publishers")

    return render_template('search.html',
                           books=books,
                           authors=authors,
                           publishers=publishers,
                           form=search)
示例#2
0
def search():
    """ Handles GET and POST on search form"""
    form = SearchForm()
    if request.method == "POST":
        if form.validate() is False:
            return render_template("/search.html", form=form)
        else:
            query = {InitConfig.studentID: str(form.studentId.data)}
            subject_code = str(form.subjectCode.data)
            form_grade_point = str(form.gradePoint.data)
            if form_grade_point != "":
                grade_point = float(form.gradePoint.data)
            document = DBHelper.findInDB(DBHelper(), query)
            if document is None:
                return "No data for this student exists"
            else:
                keys = document.keys()
                for key in keys:
                    if InitConfig.semester in key:
                        for subject in document[key][InitConfig.subjects]:
                            if subject_code.lower() == subject[
                                    InitConfig.code].lower():
                                if form_grade_point != "":
                                    if subject[InitConfig.
                                               grade_point] >= grade_point:
                                        return "Student has cleared this Prerequisit"
                                    else:
                                        return "Student has failed to clear this Prerequisit"
                                else:
                                    return "Student has earned %.2f grade points in %s" % (
                                        subject[InitConfig.grade_point],
                                        subject_code)
                return "Student has not taken %s" % subject_code
    elif request.method == "GET":
        return render_template("/search.html", form=form)
示例#3
0
def publisherinfo(passedid, page):
    search = SearchForm(request.form)
    if request.method == 'POST':
        return search_results(search)

    books = db.session.query(Book).filter(Book.publisherID == passedid).all()

    authors = db.session.query(Author).join(authorlist, authorlist.authorID == Author.id).\
        join(Book, Book.id == authorlist.bookID).\
        filter(Book.publisherID == passedid).all()

    if (page == 'book'):
        publisher = db.session.query(Publisher).filter(
            Publisher.id == passedid).first()
    elif (page == 'author'):
        authorBook = db.session.query(authorlist).filter(
            authorlist.bookID == passedid).first()
        book = db.session.query(Book).filter(
            Book.id == authorBook.bookID).first()
        publisher = db.session.query(Publisher).filter(
            Publisher.id == book.id).first()
    else:
        publisher = db.session.query(Publisher).filter(
            Publisher.id == passedid).first()

    return render_template('publisher.html',
                           publisher=publisher,
                           books=books,
                           authors=authors,
                           form=search)
示例#4
0
def bookinfo(passedid, page):
    search = SearchForm(request.form)
    if request.method == 'POST':
        return search_results(search)

    authors = db.session.query(Author).join(authorlist, authorlist.authorID == Author.id).\
        join(Book, Book.id == authorlist.bookID).\
        filter(Book.publisherID == passedid).all()

    publishers = db.session.query(Publisher).join(Book, Book.publisherID == Publisher.id).\
        join(authorlist, authorlist.bookID == Book.id).\
        filter(Publisher.id == passedid).all()

    if (page == "book"):
        book = db.session.query(Book).filter(Book.id == passedid).first()
    elif (page == "author"):
        authorBook = db.session.query(authorlist).filter(
            authorlist.bookID == passedid).first()
        book = db.session.query(Book).filter(
            Book.id == authorBook.bookID).first()
    else:
        book = db.session.query(Book).filter(Book.id == passedid).first()
    #authorID = db.session.query(authorlist).filter(authorlist.bookID == bookid).first()
    #author = db.session.query(Author).filter(Author.id == authorID).first()
    return render_template('book.html',
                           book=book,
                           publishers=publishers,
                           authors=authors,
                           form=search)  #, author = author)
示例#5
0
def index():
    books = db.session.query(Book).all()

    search = SearchForm(request.form)
    if request.method == 'POST':
        return search_results(search, False)

    return render_template('hello.html', form=search)
示例#6
0
def about():
    search = SearchForm(request.form)
    if request.method == 'POST':
        return search_results(search)

    p = subprocess.Popen(["python", "test.py"],
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE,
                         stdin=subprocess.PIPE)
    out, err = p.communicate()
    output = err + out
    output = output.decode("utf-8")  #convert from byte type to string type
    return render_template('about.html',
                           output="<br/>".join(output.split("\n")),
                           form=search)
示例#7
0
def publisherhome(pagenum):
    search = SearchForm(request.form)
    if request.method == 'POST':
        return search_results(search)

    publishers = db.session.query(Publisher).all()
    if pagenum < 11:
        pubToPass = publishers[:pagenum]
    else:
        pubToPass = publishers[pagenum - 10:pagenum]

    pubCount = len(publishers) // 10
    return render_template('publisherhome.html',
                           publishers=pubToPass,
                           pubCount=pubCount,
                           form=search)
示例#8
0
def authorhome(pagenum):
    search = SearchForm(request.form)
    if request.method == 'POST':
        return search_results(search)

    authors = db.session.query(Author).all()
    if pagenum < 11:
        authorsToPass = authors[:pagenum]
    else:
        authorsToPass = authors[pagenum - 10:pagenum]

    authorsCount = len(authors) // 10
    return render_template('authorhome.html',
                           authors=authorsToPass,
                           authorsCount=authorsCount,
                           form=search)
示例#9
0
def bookhome(pagenum):
    search = SearchForm(request.form)
    if request.method == 'POST':
        return search_results(search)

    books = db.session.query(Book, authorlist, Author, Publisher).join(
        Publisher, Book.publisherID == Publisher.id).join(
            authorlist, Book.id == authorlist.bookID).join(
                Author, authorlist.authorID == Author.id).all()

    if pagenum < 11:
        booksToPass = books[:pagenum]
    else:
        booksToPass = books[pagenum - 10:pagenum]

    booksCount = books = len(db.session.query(Book).all()) // 10

    return render_template('bookhome.html',
                           books=booksToPass,
                           booksCount=booksCount,
                           form=search)