aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-04-23 12:56:01 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-04-23 12:56:01 -0500
commitf6f524bf5990c116d59868dd0edeafcc1ba58e09 (patch)
tree004077c2f1ffe375afde220dfd36693202816c1c
parent574d1511d6a111efd4c6da78ef03593e4bcb2056 (diff)
downloadmediagoblin-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.py44
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}))