Example #1
0
def upload_document(request, wiki):
    w = get_object_or_404(Wiki, slug=wiki)

    if request.method != 'POST':
        raise Http404

    format = request.POST.pop('format', [None])[0]

    form = UploadDocumentForm(request.POST, request.FILES)

    if form.is_valid():
        path = form.cleaned_data['path'].replace('\\', '/')
        path = os.path.join(*path.split('/'))

        doc = request.FILES['doc']

        # Add the file to the repository, save() returns the new file path.
        git_path = os.path.join('__media__', path, doc.name)
        doc_path = w.repo.save(git_path, doc)

        w.repo.commit(request.user, ugettext(u'Upload document: {0}').format(path))

        if format == "json":
            data = {
                'url': doc_path,
            }

            return HttpResponse(json.dumps(data))

    return redirect(reverse('filemanager-index', args=[wiki, '']))
Example #2
0
def upload_document(request, wiki):
    w = get_object_or_404(Wiki, slug=wiki)

    if request.method != 'POST':
        raise Http404

    form = UploadDocumentForm(request.POST, request.FILES)

    if form.is_valid():
        path = form.cleaned_data['path'].replace('\\', '/')
        path = os.path.join(*path.split('/'))

        doc = request.FILES['doc']

        os.environ['GIT_AUTHOR_NAME'] = u'{0} {1}'.format(request.user.first_name, request.user.last_name).encode('utf-8')
        os.environ['GIT_AUTHOR_EMAIL'] = request.user.email
        os.environ['USERNAME'] = str(request.user.username)

        w.repo.put_uploaded_file(os.path.join('__media__', path, doc.name), doc)

        del(os.environ['GIT_AUTHOR_NAME'])
        del(os.environ['GIT_AUTHOR_EMAIL'])
        del(os.environ['USERNAME'])

    return wiki, ''