multiple fixes for queries that stop duplicates from being created.

This commit is contained in:
ajurna
2020-05-27 13:32:20 +01:00
parent f6611fbe6b
commit e1fa35e9f4
2 changed files with 25 additions and 12 deletions

View File

@@ -138,16 +138,18 @@ def generate_directory(user, directory=False):
dir_list_obj = Directory.objects.filter(name__in=dir_list, parent__isnull=True)
file_list_obj = ComicBook.objects.filter(file_name__in=file_list, directory__isnull=True)
dir_list_obj = dir_list_obj.filter(comicbook__comicstatus__user=user).annotate(
total=Count('comicbook'),
total_read=Count('comicbook__comicstatus', Q(comicbook__comicstatus__finished=True))
dir_list_obj = dir_list_obj.annotate(
total=Count('comicbook', distinct=True),
total_read=Count('comicbook__comicstatus', Q(comicbook__comicstatus__finished=True,
comicbook__comicstatus__user=user), distinct=True)
)
file_list_obj = file_list_obj.filter(comicstatus__user=user).annotate(
total_pages=Count('comicpage'),
file_list_obj = file_list_obj.annotate(
total_pages=Count('comicpage', distinct=True),
last_read_page=F('comicstatus__last_read_page'),
finished=F('comicstatus__finished'),
unread=F('comicstatus__unread')
)
unread=F('comicstatus__unread'),
user=F('comicstatus__user')
).filter(Q(user__isnull=True) | Q(user=user.id))
for directory_obj in dir_list_obj:
df = DirFile()