fixed prev/next issues with directories being intersperced.

This commit is contained in:
2015-06-18 22:40:28 +01:00
parent fdf783dbc7
commit 02494bf9eb
3 changed files with 26 additions and 15 deletions

View File

@@ -79,10 +79,10 @@ class ComicBook(models.Model):
return out return out
def nav_get_prev_comic(self, comic_path): def nav_get_prev_comic(self, comic_path):
base_dir = Setting.objects.get(name='BASE_DIR') base_dir = Setting.objects.get(name='BASE_DIR').value
comic_path = urlsafe_base64_decode(comic_path) comic_path = urlsafe_base64_decode(comic_path)
directory, comic = path.split(comic_path) directory, comic = path.split(comic_path)
dir_list = os.listdir(path.join(base_dir.value, directory)) dir_list = os.listdir(path.join(base_dir, directory))
comic_index = dir_list.index(comic) comic_index = dir_list.index(comic)
if comic_index == 0: if comic_index == 0:
comic_path = urlsafe_base64_encode(directory) comic_path = urlsafe_base64_encode(directory)
@@ -90,13 +90,18 @@ class ComicBook(models.Model):
else: else:
prev_comic = dir_list[comic_index - 1] prev_comic = dir_list[comic_index - 1]
comic_path = path.join(directory, prev_comic) comic_path = path.join(directory, prev_comic)
if not path.isdir(path.join(base_dir, prev_comic)):
print path.join(base_dir, prev_comic)
print path.join(base_dir, prev_comic)
try: try:
book = ComicBook.objects.get(file_name=prev_comic) book = ComicBook.objects.get(file_name=prev_comic)
except ComicBook.DoesNotExist: except ComicBook.DoesNotExist:
book = process_comic_book(base_dir, comic_path, prev_comic) book = process_comic_book(base_dir, comic_path, prev_comic)
index = ComicPage.objects.filter(Comic=book).count() - 1 index = ComicPage.objects.filter(Comic=book).count() - 1
print index
comic_path = urlsafe_base64_encode(comic_path) comic_path = urlsafe_base64_encode(comic_path)
else:
comic_path = urlsafe_base64_encode(directory)
index = -1
return comic_path, index return comic_path, index
def nav_get_next_comic(self, comic_path): def nav_get_next_comic(self, comic_path):
base_dir = Setting.objects.get(name='BASE_DIR') base_dir = Setting.objects.get(name='BASE_DIR')

View File

@@ -21,7 +21,11 @@
<br/> <br/>
<div class="btn-group"> <div class="btn-group">
{% if nav.q_prev_to_directory %} {% if nav.q_prev_to_directory %}
{% if nav.prev_path %}
<a href="/comic/{{ nav.prev_path }}/" class="btn btn-default">Next</a> <a href="/comic/{{ nav.prev_path }}/" class="btn btn-default">Next</a>
{% else %}
<a href="/comic/" class="btn btn-default">Next</a>
{% endif %}
{% else %} {% else %}
<a href="/comic/read/{{ nav.prev_path }}/{{ nav.prev_index }}/" class="btn btn-default">Prev</a> <a href="/comic/read/{{ nav.prev_path }}/{{ nav.prev_index }}/" class="btn btn-default">Prev</a>
{% endif %} {% endif %}
@@ -38,7 +42,11 @@
<button class="btn btn-default">No Pages</button> <button class="btn btn-default">No Pages</button>
{% endif %} {% endif %}
{% if nav.q_next_to_directory %} {% if nav.q_next_to_directory %}
{% if nav.next_path %}
<a href="/comic/{{ nav.next_path }}/" class="btn btn-default">Next</a> <a href="/comic/{{ nav.next_path }}/" class="btn btn-default">Next</a>
{% else %}
<a href="/comic/" class="btn btn-default">Next</a>
{% endif %}
{% else %} {% else %}
<a href="/comic/read/{{ nav.next_path }}/{{ nav.next_index }}/" class="btn btn-default">Next</a> <a href="/comic/read/{{ nav.next_path }}/{{ nav.next_index }}/" class="btn btn-default">Next</a>
{% endif %} {% endif %}

View File

@@ -1,7 +1,4 @@
from django.utils.http import urlsafe_base64_encode from django.utils.http import urlsafe_base64_encode
from comic.models import ComicBook, ComicPage
from unrar import rarfile
import zipfile
from os import path from os import path
import os import os
@@ -13,7 +10,8 @@ class Breadcrumb:
def __str__(self): def __str__(self):
return self.name return self.name
def __unicode__(self):
return self.name
class DirFile: class DirFile:
def __init__(self): def __init__(self):