Files @ 7fe9c07cebc4
Branch filter:

Location: website/www/conservancy/apps/ccs_upload/views.py

Bradley M. Kuhn
Add holiday card to banner at top for next few days

Also, fix a few URLs .
import logging
import os
import random

from django.contrib import messages
from django.shortcuts import redirect, render

from .forms import UploadForm

CCS_UPLOAD_PATH = '/tmp/'

logger = logging.getLogger(__name__)


def upload(request):
    if request.method == 'POST':
        form = UploadForm(request.POST, request.FILES)
        if form.is_valid():
            file = request.FILES['file']
            _handle_uploaded_file(file)
            messages.add_message(request, messages.INFO, '"{}" was successfully uploaded.'.format(file.name))
            return redirect('ccs_upload:form')
    else:
        form = UploadForm()
    return render(request, 'ccs_upload/upload.html', {'form': form})


def _handle_uploaded_file(f):
    filename = _hash_prefixed_filename(f.name)
    path = os.path.join(CCS_UPLOAD_PATH, filename)
    with open(path, 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)
    logger.info('Wrote uploaded file to {}.'.format(path))


def _hash_prefixed_filename(name):
    return '{hash:x} {name}'.format(hash=random.getrandbits(32), name=name)