From 2a235e5e76fe24b6f736586633a1d958b79fbd1e Mon Sep 17 00:00:00 2001 From: ajurna Date: Sat, 31 Oct 2020 15:24:52 +0000 Subject: [PATCH] fix for duplicate files being created. --- comic/util.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/comic/util.py b/comic/util.py index 03baffe..4f62d87 100644 --- a/comic/util.py +++ b/comic/util.py @@ -3,8 +3,8 @@ from os import listdir, path 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 +from collections import Counter +from .models import ComicBook, Directory, Setting, ComicStatus def generate_title_from_path(file_path): @@ -143,6 +143,13 @@ def generate_directory(user, directory=False): total_read=Count('comicbook__comicstatus', Q(comicbook__comicstatus__finished=True, comicbook__comicstatus__user=user), distinct=True) ) + + # Create Missing Status + status_list = [x.comic for x in + ComicStatus.objects.filter(comic__in=file_list_obj, user=user).select_related('comic')] + new_status = [ComicStatus(comic=file, user=user) for file in file_list_obj if file not in status_list] + ComicStatus.objects.bulk_create(new_status) + file_list_obj = file_list_obj.annotate( total_pages=Count('comicpage', distinct=True), last_read_page=F('comicstatus__last_read_page'),