Basic functionality ready.
This commit is contained in:
@@ -1,3 +1,57 @@
|
||||
from django.shortcuts import render
|
||||
# Standard library imports.
|
||||
from pathlib import Path
|
||||
|
||||
# Create your views here.
|
||||
# External library imports.
|
||||
import filetype
|
||||
|
||||
# Django imports.
|
||||
from django.http import HttpResponseNotFound
|
||||
from django.conf import settings
|
||||
from django.shortcuts import (render,
|
||||
redirect)
|
||||
|
||||
# Project imports.
|
||||
from .utils import make_thumbnail
|
||||
|
||||
###########################################################################################
|
||||
# View functions. #
|
||||
###########################################################################################
|
||||
|
||||
def gallery_view(request, path = None):
|
||||
"""
|
||||
Shows a list of subdirectories and image files inside the given path.
|
||||
The path should be inside the GALLERY_ROOT path, otherwise a 404 error will be thrown.
|
||||
"""
|
||||
|
||||
full_path = settings.GALLERY_ROOT.joinpath(path) if path is not None else settings.GALLERY_ROOT
|
||||
|
||||
if full_path.exists():
|
||||
if full_path.is_dir():
|
||||
subdirs = sorted([i for i in full_path.iterdir() if i.is_dir()])
|
||||
images = sorted([i for i in full_path.iterdir() if i.is_file() and filetype.is_image(str(i))])
|
||||
display_images = []
|
||||
|
||||
for image in images:
|
||||
make_thumbnail(image)
|
||||
|
||||
img_context = {
|
||||
'path': image.name,
|
||||
'name': image.name,
|
||||
'thumbnail': '/thumbs/' + path + '/' + image.name if path is not None else '/thumbs/' + image.name
|
||||
}
|
||||
|
||||
display_images.append(img_context)
|
||||
|
||||
context = {
|
||||
'path': path,
|
||||
'subdirs': subdirs,
|
||||
'images': display_images
|
||||
}
|
||||
|
||||
return render(request, 'gallery_view.html', context)
|
||||
|
||||
else:
|
||||
return render(request, 'image_view.html', {'image_path': Path('/imgs/').joinpath(path)})
|
||||
|
||||
else:
|
||||
return HttpResponseNotFound('Not found')
|
||||
|
Reference in New Issue
Block a user