make AddSub so we can call it in search and books, and dont use -1 array index as it breaks AddSubs - remember it is the last element in dict, so it was overwriting data
This commit is contained in:
29
main.py
29
main.py
@@ -192,8 +192,20 @@ def GetBookIdFromBookSubBookLinkByIdAndSubBookNum( book_id, sub_book_num ):
|
|||||||
tmp_bsbl = Book_Sub_Book_Link.query.filter(Book_Sub_Book_Link.book_id==book_id, Book_Sub_Book_Link.sub_book_num==sub_book_num ).all()
|
tmp_bsbl = Book_Sub_Book_Link.query.filter(Book_Sub_Book_Link.book_id==book_id, Book_Sub_Book_Link.sub_book_num==sub_book_num ).all()
|
||||||
return tmp_bsbl[0].sub_book_id
|
return tmp_bsbl[0].sub_book_id
|
||||||
|
|
||||||
|
# ignore ORM, the sub_book_num comes from the link, but does not have any attached data, so can't tell which book it connects to.
|
||||||
|
# Just select sub_book data and hand add it to the books object, and use it in jinja2 to indent/order the books/sub books
|
||||||
|
# This data is used to sort/indent subbooks
|
||||||
|
def AddSubs(books):
|
||||||
|
subs = db.engine.execute ( "select * from book_sub_book_link" )
|
||||||
|
for row in subs:
|
||||||
|
index = next((i for i, item in enumerate(books) if item.id == row.sub_book_id), -1)
|
||||||
|
if index == -1:
|
||||||
|
continue
|
||||||
|
books[index].parent_id = row.book_id
|
||||||
|
books[index].sub_book_num = row.sub_book_num
|
||||||
|
|
||||||
####################################### GLOBALS #######################################
|
####################################### GLOBALS #######################################
|
||||||
# allow jinja2 to call this python function
|
# allow jinja2 to call these python functions directly
|
||||||
app.jinja_env.globals['GetCovertypeById'] = GetCovertypeById
|
app.jinja_env.globals['GetCovertypeById'] = GetCovertypeById
|
||||||
app.jinja_env.globals['GetOwnedById'] = GetOwnedById
|
app.jinja_env.globals['GetOwnedById'] = GetOwnedById
|
||||||
app.jinja_env.globals['GetConditionById'] = GetConditionById
|
app.jinja_env.globals['GetConditionById'] = GetConditionById
|
||||||
@@ -201,30 +213,19 @@ app.jinja_env.globals['GetPublisherById'] = GetPublisherById
|
|||||||
app.jinja_env.globals['SeriesBookNum'] = SeriesBookNum
|
app.jinja_env.globals['SeriesBookNum'] = SeriesBookNum
|
||||||
app.jinja_env.globals['ClearStatus'] = st.ClearMessage
|
app.jinja_env.globals['ClearStatus'] = st.ClearMessage
|
||||||
|
|
||||||
### DDP: do I need many=True on Author as books have many authors? (or in BookSchema declaration above?)
|
|
||||||
book_schema = BookSchema()
|
book_schema = BookSchema()
|
||||||
|
|
||||||
####################################### ROUTES #######################################
|
####################################### ROUTES #######################################
|
||||||
@app.route("/search", methods=["POST"])
|
@app.route("/search", methods=["POST"])
|
||||||
def search():
|
def search():
|
||||||
print( "term={}".format( request.form['term']) )
|
|
||||||
books = Book.query.filter(Book.title.ilike("%{}%".format(request.form['term']))).all()
|
books = Book.query.filter(Book.title.ilike("%{}%".format(request.form['term']))).all()
|
||||||
print( books )
|
AddSubs(books)
|
||||||
return render_template("books.html", books=books)
|
return render_template("books.html", books=books)
|
||||||
|
|
||||||
@app.route("/books", methods=["GET"])
|
@app.route("/books", methods=["GET"])
|
||||||
def books():
|
def books():
|
||||||
books = Book.query.all()
|
books = Book.query.all()
|
||||||
|
AddSubs(books)
|
||||||
# ignore ORM, the sub_book_num comes from the link, but does not have any attached data, so can't tell which book it connects to.
|
|
||||||
# Just select sub_book data and hand add it to the books object, and use it in jinja2 to indent/order the books/sub books
|
|
||||||
# This data is used to sort/indent subbooks
|
|
||||||
subs = db.engine.execute ( "select * from book_sub_book_link" )
|
|
||||||
for row in subs:
|
|
||||||
index = next((i for i, item in enumerate(books) if item.id == row.sub_book_id), -1)
|
|
||||||
books[index].parent_id = row.book_id
|
|
||||||
books[index].sub_book_num = row.sub_book_num
|
|
||||||
|
|
||||||
return render_template("books.html", books=books )
|
return render_template("books.html", books=books )
|
||||||
|
|
||||||
@app.route("/books_for_loan/<id>", methods=["GET"])
|
@app.route("/books_for_loan/<id>", methods=["GET"])
|
||||||
|
|||||||
Reference in New Issue
Block a user