diff options
author | Rodney Ewing <ewing.rj@gmail.com> | 2013-06-13 16:37:42 -0700 |
---|---|---|
committer | Rodney Ewing <ewing.rj@gmail.com> | 2013-08-26 06:33:30 -0700 |
commit | ecb45128229cfe22e29589237bdd59b7cc965181 (patch) | |
tree | 126b14d8e74448afdca4b595f06c6b7963ee4662 /mediagoblin/submit/views.py | |
parent | 2f74de492e293fa5ba82bb65d291ba51834d5d85 (diff) | |
download | mediagoblin-ecb45128229cfe22e29589237bdd59b7cc965181.tar.lz mediagoblin-ecb45128229cfe22e29589237bdd59b7cc965181.tar.xz mediagoblin-ecb45128229cfe22e29589237bdd59b7cc965181.zip |
max file size
Diffstat (limited to 'mediagoblin/submit/views.py')
-rw-r--r-- | mediagoblin/submit/views.py | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 7382c43d..7608f509 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -57,7 +57,7 @@ def submit_start(request): return redirect(request, "mediagoblin.user_pages.user_home", user=request.user.username) - submit_form = submit_forms.SubmitStartForm(request.form, + submit_form = submit_forms.get_submit_start_form(request.form, license=request.user.license_preference) if request.method == 'POST' and submit_form.validate(): @@ -105,32 +105,40 @@ def submit_start(request): entry.queued_media_file) / (1024.0 * 1024) file_size = float('{0:.2f}'.format(file_size)) + error = False + + # Check if file size is over the limit + max_file_size = mg_globals.app_config.get('max_file_size', None) + if max_file_size and file_size >= max_file_size: + submit_form.file.errors.append( + _(u'Sorry, the file size is too big.')) + error = True + # Check if user is over upload limit if upload_limit and (user.uploaded + file_size) >= upload_limit: submit_form.file.errors.append( _('Sorry, uploading this file will put you over your' ' upload limit.')) - return redirect(request, "mediagoblin.submit.start", - user=user.username) - - user.uploaded = user.uploaded + file_size - user.save() - - entry.file_size = file_size - - # Save now so we have this data before kicking off processing - entry.save() - - # Pass off to async processing - # - # (... don't change entry after this point to avoid race - # conditions with changes to the document via processing code) - feed_url = request.urlgen( - 'mediagoblin.user_pages.atom_feed', - qualified=True, user=request.user.username) - run_process_media(entry, feed_url) - - add_message(request, SUCCESS, _('Woohoo! Submitted!')) + error = True + + if not error: + user.uploaded = user.uploaded + file_size + user.save() + + entry.file_size = file_size + + # Save now so we have this data before kicking off processing + entry.save() + + # Pass off to processing + # + # (... don't change entry after this point to avoid race + # conditions with changes to the document via processing code) + feed_url = request.urlgen( + 'mediagoblin.user_pages.atom_feed', + qualified=True, user=request.user.username) + run_process_media(entry, feed_url) + add_message(request, SUCCESS, _('Woohoo! Submitted!')) add_comment_subscription(request.user, entry) |