fix for recent where annotations weren't being accounted for.

this is now working correctly.
This commit is contained in:
ajurna
2020-05-25 18:29:47 +01:00
parent 1f32d518bf
commit b420f074d6
2 changed files with 15 additions and 3 deletions

View File

@@ -182,6 +182,15 @@ def generate_directory(user, directory=False):
def generate_label(book):
"""
book need to be annotated with the following from ComicStatus
* unread
* finished
* last_read_page
* total_pages
:param book: ComicBook
:return: str
"""
unread_text = '<center><span class="label label-default">Unread</span></center>'
if not hasattr(book, 'unread'):
label_text = unread_text

View File

@@ -8,7 +8,7 @@ from os import path
from django.contrib.auth import authenticate, login
from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib.auth.models import User
from django.db.models import Max
from django.db.models import Max, Count
from django.db.transaction import atomic
from django.http import HttpResponse, FileResponse
from django.shortcuts import get_object_or_404, redirect, render
@@ -110,7 +110,7 @@ def recent_comics_json(request):
start = int(request.POST["start"])
end = start + int(request.POST["length"])
icon = '<span class="fa fa-book"></span>'
comics = ComicBook.objects.all()
comics = ComicBook.objects.all().annotate(total_pages=Count('comicpage'))
response_data = dict()
response_data["recordsTotal"] = comics.count()
if request.POST["search[value]"]:
@@ -132,6 +132,9 @@ def recent_comics_json(request):
status, created = ComicStatus.objects.get_or_create(comic=book, user=request.user)
if created:
status.save()
book.unread = status.unread
book.finished = status.finished
book.last_read_page = status.last_read_page
response_data["data"].append(
{
"selector": urlsafe_base64_encode(book.selector.bytes),
@@ -139,7 +142,7 @@ def recent_comics_json(request):
"type": "book",
"name": book.file_name,
"date": book.date_added.strftime("%d/%m/%y-%H:%M"),
"label": generate_label(book, status),
"label": generate_label(book),
"url": "/comic/read/{0}/".format(urlsafe_base64_encode(book.selector.bytes)),
}
)