removed redundant directory scan.

This commit is contained in:
ajurna@gmail.com
2016-04-05 15:30:12 +01:00
parent 589e46a7c1
commit 34188665e9
3 changed files with 5 additions and 31 deletions

View File

@@ -27,7 +27,7 @@ class Setting(models.Model):
class Directory(models.Model): class Directory(models.Model):
name = models.CharField(max_length=100) 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) selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True)
def __str__(self): def __str__(self):
@@ -73,7 +73,7 @@ class Directory(models.Model):
class ComicBook(models.Model): class ComicBook(models.Model):
file_name = models.CharField(max_length=100, unique=False) file_name = models.CharField(max_length=100, unique=False)
date_added = models.DateTimeField(auto_now_add=True) 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) selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True)
version = models.IntegerField(default=1) version = models.IntegerField(default=1)
@@ -309,7 +309,7 @@ class ComicBook(models.Model):
class ComicPage(models.Model): class ComicPage(models.Model):
Comic = models.ForeignKey(ComicBook) Comic = models.ForeignKey(ComicBook, on_delete=models.CASCADE)
index = models.IntegerField() index = models.IntegerField()
page_file_name = models.CharField(max_length=100, unique=False) page_file_name = models.CharField(max_length=100, unique=False)
content_type = models.CharField(max_length=30) content_type = models.CharField(max_length=30)
@@ -317,7 +317,7 @@ class ComicPage(models.Model):
class ComicStatus(models.Model): class ComicStatus(models.Model):
user = models.ForeignKey(User, unique=False, null=False) 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) last_read_page = models.IntegerField(default=0)
unread = models.BooleanField(default=True) unread = models.BooleanField(default=True)
finished = models.BooleanField(default=False) finished = models.BooleanField(default=False)

View File

@@ -182,26 +182,3 @@ def get_ordered_dir_list(folder):
else: else:
files.append(item) files.append(item)
return sorted(directories) + sorted(files) 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()

View File

@@ -15,7 +15,7 @@ from django.views.decorators.http import require_POST
from .forms import SettingsForm, AccountForm, EditUserForm, AddUserForm, InitialSetupForm from .forms import SettingsForm, AccountForm, EditUserForm, AddUserForm, InitialSetupForm
from .models import Setting, ComicBook, ComicStatus, Directory, ComicPage from .models import Setting, ComicBook, ComicStatus, Directory, ComicPage
from .util import generate_breadcrumbs_from_path, generate_breadcrumbs_from_menu, \ 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 @ensure_csrf_cookie
@@ -34,8 +34,6 @@ def comic_list(request, directory_selector=False):
else: else:
directory = False directory = False
scan_directory(directory)
if directory: if directory:
title = generate_title_from_path(directory.path) title = generate_title_from_path(directory.path)
breadcrumbs = generate_breadcrumbs_from_path(directory) breadcrumbs = generate_breadcrumbs_from_path(directory)
@@ -80,7 +78,6 @@ def comic_list_json(request, directory_selector=False):
) )
@login_required @login_required
def account_page(request): def account_page(request):
success_message = [] success_message = []