mirror of
https://github.com/ajurna/cbwebreader.git
synced 2025-12-06 14:17:19 +00:00
added settings page to handle setting the BASE_DIR value.
This commit is contained in:
@@ -5,7 +5,6 @@ from comic import rarfile
|
|||||||
from comic.util import get_ordered_dir_list
|
from comic.util import get_ordered_dir_list
|
||||||
import zipfile
|
import zipfile
|
||||||
from os import path
|
from os import path
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
class Setting(models.Model):
|
class Setting(models.Model):
|
||||||
|
|||||||
17
comic/templates/comic/settings_page.html
Normal file
17
comic/templates/comic/settings_page.html
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}CBreader - Settings{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% if error_message %}
|
||||||
|
<div class="alert alert-danger" role="alert">{{ error_message }}</div>
|
||||||
|
{% endif %}
|
||||||
|
<form method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="base_directory">Base Directory</label>
|
||||||
|
<input type="text" class="form-control" id="base_directory" name="base_directory" placeholder="Base Directory" value="{{ base_dir.value }}">
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-default">Submit</button>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
@@ -4,6 +4,7 @@ from . import views
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^$', views.comic_list, name='index'),
|
url(r'^$', views.comic_list, name='index'),
|
||||||
|
url(r'^settings/$', views.settings_page, name='settings'),
|
||||||
url(r'^(?P<comic_path>[\w]+)/$', views.comic_list, name='comic_list'),
|
url(r'^(?P<comic_path>[\w]+)/$', views.comic_list, name='comic_list'),
|
||||||
url(r'^read/(?P<comic_path>[\w]+)/(?P<page>[0-9]+)/$', views.read_comic, name='read_comic'),
|
url(r'^read/(?P<comic_path>[\w]+)/(?P<page>[0-9]+)/$', views.read_comic, name='read_comic'),
|
||||||
url(r'^read/(?P<comic_path>[\w]+)/(?P<page>[0-9]+)/img$', views.get_image, name='get_image'),
|
url(r'^read/(?P<comic_path>[\w]+)/(?P<page>[0-9]+)/img$', views.get_image, name='get_image'),
|
||||||
|
|||||||
@@ -11,7 +11,12 @@ from os import path
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def comic_list(request, comic_path=''):
|
def comic_list(request, comic_path=''):
|
||||||
base_dir = Setting.objects.get(name='BASE_DIR').value
|
try:
|
||||||
|
base_dir = Setting.objects.get(name='BASE_DIR').value
|
||||||
|
except Setting.DoesNotExist:
|
||||||
|
return redirect('/comic/settings/')
|
||||||
|
if not path.isdir(base_dir):
|
||||||
|
return redirect('/comic/settings/')
|
||||||
comic_path = urlsafe_base64_decode(comic_path)
|
comic_path = urlsafe_base64_decode(comic_path)
|
||||||
breadcrumbs = generate_breadcrumbs(comic_path)
|
breadcrumbs = generate_breadcrumbs(comic_path)
|
||||||
files = ComicBook.generate_directory(base_dir, comic_path)
|
files = ComicBook.generate_directory(base_dir, comic_path)
|
||||||
@@ -21,6 +26,24 @@ def comic_list(request, comic_path=''):
|
|||||||
})
|
})
|
||||||
return render(request, 'comic/comic_list.html', context)
|
return render(request, 'comic/comic_list.html', context)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def settings_page(request):
|
||||||
|
obj, created = Setting.objects.get_or_create(name='BASE_DIR')
|
||||||
|
error_message = ''
|
||||||
|
if request.POST:
|
||||||
|
if path.isdir(request.POST['base_directory']):
|
||||||
|
obj.value = request.POST['base_directory']
|
||||||
|
obj.save()
|
||||||
|
else:
|
||||||
|
error_message = 'This is not a valid Directory'
|
||||||
|
elif obj.value == '':
|
||||||
|
error_message = 'Base Directory cannot be blank'
|
||||||
|
context = RequestContext(request, {
|
||||||
|
'base_dir': obj,
|
||||||
|
'error_message': error_message,
|
||||||
|
})
|
||||||
|
return render(request, 'comic/settings_page.html', context)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def read_comic(request, comic_path, page):
|
def read_comic(request, comic_path, page):
|
||||||
base_dir = Setting.objects.get(name='BASE_DIR').value
|
base_dir = Setting.objects.get(name='BASE_DIR').value
|
||||||
@@ -57,5 +80,6 @@ def get_image(_, comic_path, page):
|
|||||||
img, content = book.get_image(full_path, page)
|
img, content = book.get_image(full_path, page)
|
||||||
return HttpResponse(img.read(), content_type=content)
|
return HttpResponse(img.read(), content_type=content)
|
||||||
|
|
||||||
def comic_redirect(request):
|
|
||||||
|
def comic_redirect(_):
|
||||||
return redirect('/comic/')
|
return redirect('/comic/')
|
||||||
Reference in New Issue
Block a user