init
This commit is contained in:
71
files_widget/views.py
Normal file
71
files_widget/views.py
Normal file
@@ -0,0 +1,71 @@
|
||||
import json
|
||||
|
||||
from django.http import Http404, HttpResponse, HttpResponseBadRequest
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.template.loader import render_to_string
|
||||
from django.contrib.auth.decorators import permission_required
|
||||
|
||||
from .files import save_upload, is_file_image
|
||||
from .controllers import FilePath, ImagePath
|
||||
|
||||
# @permission_required('files_widget.can_upload_files')
|
||||
def upload(request):
|
||||
if not request.method == 'POST':
|
||||
raise Http404
|
||||
|
||||
# if request.is_ajax():
|
||||
# # the file is stored raw in the request
|
||||
# upload = request
|
||||
# is_raw = True
|
||||
# # AJAX Upload will pass the filename in the querystring if it is the "advanced" ajax upload
|
||||
# try:
|
||||
# filename = request.GET['files[0]']
|
||||
# except KeyError:
|
||||
# return HttpResponseBadRequest(json.dumps({
|
||||
# 'success': False,
|
||||
# 'message': 'Error while uploading file',
|
||||
# }))
|
||||
# not an ajax upload, so it was the "basic" iframe version with submission via form
|
||||
# else:
|
||||
is_raw = False
|
||||
try:
|
||||
upload = next(iter(request.FILES.values()))
|
||||
except StopIteration:
|
||||
return HttpResponseBadRequest(json.dumps({
|
||||
'success': False,
|
||||
'message': 'Error while uploading file.',
|
||||
}))
|
||||
filename = upload.name
|
||||
|
||||
path_to_file = save_upload(upload, filename, is_raw, request.user)
|
||||
MEDIA_URL = settings.MEDIA_URL
|
||||
|
||||
if 'preview_size' in request.POST:
|
||||
preview_size = request.POST['preview_size']
|
||||
else:
|
||||
preview_size = '64'
|
||||
|
||||
if not is_file_image(f'{settings.MEDIA_ROOT}{path_to_file}'):
|
||||
thumbnailPath = f'{settings.STATIC_URL}files_widget/img/file-icons/file_icon.png'
|
||||
else:
|
||||
thumbnailPath = render_to_string('files_widget/includes/thumbnail.html', locals())
|
||||
|
||||
return HttpResponse(json.dumps({
|
||||
'success': True,
|
||||
'imagePath': path_to_file,
|
||||
'thumbnailPath': thumbnailPath,
|
||||
}))
|
||||
|
||||
# @permission_required('files_widget.can_upload_files')
|
||||
def thumbnail_url(request):
|
||||
try:
|
||||
if not 'img' in request.GET or not 'preview_size' in request.GET:
|
||||
raise Http404
|
||||
|
||||
thumbnail_url = ImagePath(request.GET['img']).thumbnail(request.GET['preview_size']).url
|
||||
|
||||
except:
|
||||
thumbnail_url = 'files_widget/static/files_widget/img/file-icons/file_icon.png'
|
||||
|
||||
return HttpResponse(thumbnail_url)
|
||||
Reference in New Issue
Block a user