diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-04-23 12:56:01 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-04-23 12:56:01 -0500 |
commit | f6f524bf5990c116d59868dd0edeafcc1ba58e09 (patch) | |
tree | 004077c2f1ffe375afde220dfd36693202816c1c | |
parent | 574d1511d6a111efd4c6da78ef03593e4bcb2056 (diff) | |
download | mediagoblin-f6f524bf5990c116d59868dd0edeafcc1ba58e09.tar.lz mediagoblin-f6f524bf5990c116d59868dd0edeafcc1ba58e09.tar.xz mediagoblin-f6f524bf5990c116d59868dd0edeafcc1ba58e09.zip |
submit_start written in a way that, by golly, you'd think maybe it'd work
-rw-r--r-- | mediagoblin/submit/views.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index aa0f8121..1d93e070 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -16,6 +16,7 @@ from webob import Response, exc +from werkzeug.utils import secure_filename from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms @@ -28,6 +29,39 @@ def submit_start(request): """ submit_form = submit_forms.SubmitStartForm() + if request.method == 'POST' and submit_form.validate(): + # create entry and save in database + entry = request.db.MediaEntry() + entry['title'] = request.POST['title'] + entry['description'] = request.POST.get(['description']) + entry['media_type'] = u'image' # heh + entry['uploader'] = request.user + + # Save, just so we can get the entry id for the sake of using + # it to generate the file path + entry.save(validate=False) + + # Now store generate the queueing related filename + queue_filepath = request.app.queue_store.get_unique_filepath( + ['media_entries', + unicode(request.user['_id']), + unicode(entry['_id']), + secure_filename(request.POST['file'].filename)]) + + # queue appropriately + queue_file = request.app.queue_store.get_file( + queue_filepath, 'wb') + + queue_file.write(request.POST['file'].file.read()) + + # Add queued filename to the entry + entry.setdefault('queue_files', []).add(queue_filepath) + entry.save(validate=True) + + # redirect + return exc.HTTPFound( + location=request.urlgen("mediagoblin.submit.submit_success")) + # render template = request.template_env.get_template( 'mediagoblin/submit/start.html') @@ -35,3 +69,13 @@ def submit_start(request): template.render( {'request': request, 'submit_form': submit_form})) + + +@require_active_login +def submit_success(request): + # render + template = request.template_env.get_template( + 'mediagoblin/submit/success.html') + return Response( + template.render( + {'request': request})) |