Fixed BUG-02 (recalc rating on book change), also added route to reset all ratings in Admin menu

This commit is contained in:
2021-01-10 11:10:49 +11:00
parent 35d92e0ab6
commit 6f5b65788d
4 changed files with 32 additions and 5 deletions

13
main.py
View File

@@ -38,7 +38,7 @@ from covertype import Covertype, CovertypeForm, CovertypeSchema, GetCovertypeByI
from owned import Owned, OwnedForm, OwnedSchema, GetOwnedById
from rating import Rating, RatingForm, RatingSchema, GetRatingById
from loan import Loan, LoanForm, LoanSchema
from series import Series, SeriesForm, SeriesSchema, ListOfSeriesWithMissingBooks
from series import Series, SeriesForm, SeriesSchema, ListOfSeriesWithMissingBooks, CalcAvgRating
####################################### CLASSES / DB model #######################################
class QuickParentBook:
@@ -515,6 +515,7 @@ def book(id):
return redirect( '/book/{}'.format(pid) )
else:
return redirect( '/' )
# save/update of book
elif book_form.validate():
book = Book.query.get(id)
book.title = request.form['title']
@@ -580,8 +581,14 @@ def book(id):
else:
sql="insert into book_series_link (book_id, series_id, book_num) values ( {}, {}, {} )".format( request.form['bsl-book_id-{}'.format(cnt)], request.form['bsl-series_id-{}'.format(cnt)], request.form['bsl-book_num-{}'.format(cnt)])
db.engine.execute( sql )
cnt=cnt+1
db.session.commit()
# reset rating on this series as the book has changed (and maybe the rating has changed)
for field in request.form:
if 'bsl-book_id-' in field and field != 'bsl-book_id-NUM':
cnt=int(re.findall( '\d+', field )[0])
s=Series.query.get(request.form['bsl-series_id-{}'.format(cnt)])
s.calcd_rating = CalcAvgRating(s.id)
cnt=cnt+1
db.session.commit()
st.SetMessage( "Successfully Updated Book (id={})".format(id) )
else: