completed TODO-12: missing books

This commit is contained in:
2021-01-09 00:45:10 +11:00
parent e1eebffd2b
commit a6211928df
3 changed files with 17 additions and 1 deletions

16
main.py
View File

@@ -654,6 +654,22 @@ def unrated_books():
books = db.engine.execute("select * from book where rating = (select id from rating where name = 'Undefined') and owned = (select id from owned where name = 'Currently Owned')")
return render_template("books.html", books=books )
@app.route("/missing_books", methods=["GET"])
def missing_books():
tmp = db.engine.execute("select s.*, count(bsl.book_num) from book_series_link bsl, series s where bsl.book_num is not null and s.id = bsl.series_id group by s.id order by s.title")
books=[]
for t in tmp:
if t.num_books != t.count:
bsl=Book_Series_Link.query.filter( Book_Series_Link.series_id==t.id ).order_by(Book_Series_Link.book_num).all()
missing=[]
for cnt in range(1,t.num_books+1):
missing.append( cnt )
for b in bsl:
missing.remove( b.book_num )
# turn missing from array into string, and strip 0 and last char (the square brackets)
books.append( { 'id': t.id, 'title': t.title, 'num_books': t.num_books, 'missing': str(missing)[1:-1] } )
return render_template("missing.html", books=books )
@app.route("/", methods=["GET"])
def main_page():
return render_template("base.html", alert=st.GetAlert(), message=st.GetMessage())