diff --git a/comic/models.py b/comic/models.py index 50f8201..8f5b5c6 100644 --- a/comic/models.py +++ b/comic/models.py @@ -27,7 +27,7 @@ class Setting(models.Model): class Directory(models.Model): name = models.CharField(max_length=100) - parent = models.ForeignKey('Directory', null=True, blank=True) + parent = models.ForeignKey('Directory', null=True, blank=True, on_delete=models.CASCADE) selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True) def __str__(self): @@ -73,7 +73,7 @@ class Directory(models.Model): class ComicBook(models.Model): file_name = models.CharField(max_length=100, unique=False) date_added = models.DateTimeField(auto_now_add=True) - directory = models.ForeignKey(Directory, blank=True, null=True) + directory = models.ForeignKey(Directory, blank=True, null=True, on_delete=models.CASCADE) selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True) version = models.IntegerField(default=1) @@ -309,7 +309,7 @@ class ComicBook(models.Model): class ComicPage(models.Model): - Comic = models.ForeignKey(ComicBook) + Comic = models.ForeignKey(ComicBook, on_delete=models.CASCADE) index = models.IntegerField() page_file_name = models.CharField(max_length=100, unique=False) content_type = models.CharField(max_length=30) @@ -317,7 +317,7 @@ class ComicPage(models.Model): class ComicStatus(models.Model): user = models.ForeignKey(User, unique=False, null=False) - comic = models.ForeignKey(ComicBook, unique=False, null=False) + comic = models.ForeignKey(ComicBook, unique=False, null=False, on_delete=models.CASCADE) last_read_page = models.IntegerField(default=0) unread = models.BooleanField(default=True) finished = models.BooleanField(default=False) diff --git a/comic/util.py b/comic/util.py index 8e3b9c6..bf87e9c 100644 --- a/comic/util.py +++ b/comic/util.py @@ -182,26 +182,3 @@ def get_ordered_dir_list(folder): else: files.append(item) return sorted(directories) + sorted(files) - - -def scan_directory(directory=False): - """ - TODO: Increase efficiency of this. reduce amount of queries. - :type directory: Directory - """ - base_dir = Setting.objects.get(name='BASE_DIR').value - # filter(os.path.isdir, os.listdir(os.getcwd())) - if directory: - full_path = path.join(base_dir, directory.path) - else: - full_path = base_dir - dir_list = listdir(full_path) - directorys = [d for d in dir_list if path.isdir(path.join(full_path, d))] - for direct in directorys: - if directory: - d, created = Directory.objects.get_or_create(name=direct, - parent=directory) - else: - d, created = Directory.objects.get_or_create(name=direct) - if created: - d.save() diff --git a/comic/views.py b/comic/views.py index e7ff27a..5b214c2 100644 --- a/comic/views.py +++ b/comic/views.py @@ -15,7 +15,7 @@ from django.views.decorators.http import require_POST from .forms import SettingsForm, AccountForm, EditUserForm, AddUserForm, InitialSetupForm from .models import Setting, ComicBook, ComicStatus, Directory, ComicPage from .util import generate_breadcrumbs_from_path, generate_breadcrumbs_from_menu, \ - generate_title_from_path, Menu, generate_directory, scan_directory + generate_title_from_path, Menu, generate_directory @ensure_csrf_cookie @@ -34,8 +34,6 @@ def comic_list(request, directory_selector=False): else: directory = False - scan_directory(directory) - if directory: title = generate_title_from_path(directory.path) breadcrumbs = generate_breadcrumbs_from_path(directory) @@ -80,7 +78,6 @@ def comic_list_json(request, directory_selector=False): ) - @login_required def account_page(request): success_message = []