fix for bug where i hadn't accounted for multiple users in the optimised queries.

This commit is contained in:
ajurna
2020-05-25 18:08:33 +01:00
parent fdeee527cc
commit 1f32d518bf
3 changed files with 16 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ verify_ssl = true
[dev-packages]
django-silk = "*"
v = {editable = true,version = "*"}
mysqlclient = "*"
[packages]
django = "*"

12
Pipfile.lock generated
View File

@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "f3ea292d4931669ab22fcbc34fc26c34cfd36d5746a8ecc1e503bdf23f5efc5b"
"sha256": "b56ff3d531e5d0251ac92d567b1a331495fbbf87740086710afe6e4a0d61d6a7"
},
"pipfile-spec": 6,
"requires": {
@@ -236,6 +236,16 @@
],
"version": "==1.1.1"
},
"mysqlclient": {
"hashes": [
"sha256:4c82187dd6ab3607150fbb1fa5ef4643118f3da122b8ba31c3149ddd9cf0cb39",
"sha256:9e6080a7aee4cc6a06b58b59239f20f1d259c1d2fddf68ddeed242d2311c7087",
"sha256:f3fdaa9a38752a3b214a6fe79d7cae3653731a53e577821f9187e67cbecb2e16",
"sha256:f646f8d17d02be0872291f258cce3813497bc7888cd4712a577fd1e719b2f213"
],
"index": "pypi",
"version": "==1.4.6"
},
"pycodestyle": {
"hashes": [
"sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367",

View File

@@ -1,7 +1,7 @@
from collections import OrderedDict
from os import listdir, path
from django.db.models import Count, Q, F
from django.db.models import Count, Q, F, Max, ExpressionWrapper, Prefetch
from django.utils.http import urlsafe_base64_encode
from .models import ComicBook, Directory, Setting
@@ -142,8 +142,9 @@ def generate_directory(user, directory=False):
total_read=Count('comicbook__comicstatus',
Q(comicbook__comicstatus__finished=True,
comicbook__comicstatus__user=user)))
file_list_obj = file_list_obj.annotate(total_pages=Count('comicpage')).annotate(
last_read_page=F('comicstatus__last_read_page')).annotate(finished=F('comicstatus__finished')).annotate(unread=F('comicstatus__unread'))
file_list_obj = file_list_obj.filter(comicstatus__user=user).annotate(total_pages=Count('comicpage')).annotate(
last_read_page=F('comicstatus__last_read_page')).annotate(
finished=F('comicstatus__finished')).annotate(unread=F('comicstatus__unread'))
for directory_obj in dir_list_obj:
df = DirFile()