Fixed BUG-02 (recalc rating on book change), also added route to reset all ratings in Admin menu
This commit is contained in:
13
main.py
13
main.py
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user