diff options
Diffstat (limited to 'mediagoblin/submit/views.py')
-rw-r--r-- | mediagoblin/submit/views.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 6bb95ecb..d5f05cb7 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -43,6 +43,20 @@ def submit_start(request): """ First view for submitting a file. """ + user = request.user + if user.upload_limit: + upload_limit = user.upload_limit + else: + upload_limit = mg_globals.app_config['upload_limit'] + + if user.uploaded >= upload_limit: + messages.add_message( + request, + messages.WARNING, + _('Sorry, you have reached your upload limit.')) + return redirect( + request, '/u/{0}'.format(user.username)) + submit_form = submit_forms.SubmitStartForm(request.form, license=request.user.license_preference) @@ -86,6 +100,26 @@ def submit_start(request): with queue_file: queue_file.write(request.files['file'].stream.read()) + # Get file size an round to 2 decimal places + file_size = request.app.queue_store.get_file_size( + entry.queued_media_file) / (1024.0 * 1024) + file_size = float('{0:.2f}'.format(file_size)) + + # Check if over upload limit + if (user.uploaded + file_size) >= upload_limit: + messages.add_message( + request, + messages.WARNING, + _('Sorry, uploading this file will put you over your' + ' upload limit.')) + return redirect( + request, '/u/{0}'.format(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() |