1
0
Fork 0

Merge pull request #2636 from 0x29a/redundant-db-queries

Remove redundant DB queries
This commit is contained in:
Mouse Reeve 2023-01-30 09:03:18 -08:00 committed by GitHub
commit 006ff697b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 14 deletions

View file

@ -237,16 +237,24 @@ def feed_page_data(user):
def get_suggested_books(user, max_books=5):
"""helper to get a user's recent books"""
book_count = 0
preset_shelves = [("reading", max_books), ("read", 2), ("to-read", max_books)]
preset_shelves = {"reading": max_books, "read": 2, "to-read": max_books}
suggested_books = []
for (preset, shelf_max) in preset_shelves:
user_shelves = {
shelf.identifier: shelf
for shelf in user.shelf_set.filter(
identifier__in=preset_shelves.keys()
).exclude(books__isnull=True)
}
for preset, shelf_max in preset_shelves.items():
limit = (
shelf_max
if shelf_max < (max_books - book_count)
else max_books - book_count
)
shelf = user.shelf_set.get(identifier=preset)
if not shelf.books.exists():
shelf = user_shelves.get(preset, None)
if not shelf:
continue
shelf_preview = {