From: Elrond Date: Mon, 20 May 2013 22:28:37 +0000 (+0200) Subject: Refactor submit util new_upload_entry X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=6c1467d570a4da68ef8b4edac9aecdb9c87a61de;p=mediagoblin.git Refactor submit util new_upload_entry This tool creates an initial media entry for a given user. No magic. It just prefills the license with the user's default license and adds the user as uploader. --- diff --git a/mediagoblin/plugins/api/views.py b/mediagoblin/plugins/api/views.py index fde76fe4..9159fe65 100644 --- a/mediagoblin/plugins/api/views.py +++ b/mediagoblin/plugins/api/views.py @@ -27,7 +27,7 @@ from mediagoblin.media_types import sniff_media from mediagoblin.plugins.api.tools import api_auth, get_entry_serializable, \ json_response from mediagoblin.submit.lib import check_file_field, prepare_queue_task, \ - run_process_media + run_process_media, new_upload_entry _log = logging.getLogger(__name__) @@ -53,7 +53,7 @@ def post_entry(request): media_type, media_manager = sniff_media(media_file) - entry = request.db.MediaEntry() + entry = new_upload_entry(request.user) entry.media_type = unicode(media_type) entry.title = unicode(request.form.get('title') or splitext(media_file.filename)[0]) @@ -61,8 +61,6 @@ def post_entry(request): entry.description = unicode(request.form.get('description')) entry.license = unicode(request.form.get('license', '')) - entry.uploader = request.user.id - entry.generate_slug() # queue appropriately diff --git a/mediagoblin/plugins/piwigo/views.py b/mediagoblin/plugins/piwigo/views.py index 1c655bf5..bd6b1012 100644 --- a/mediagoblin/plugins/piwigo/views.py +++ b/mediagoblin/plugins/piwigo/views.py @@ -26,7 +26,7 @@ from mediagoblin.meddleware.csrf import csrf_exempt from mediagoblin.auth.lib import fake_login_attempt from mediagoblin.media_types import sniff_media from mediagoblin.submit.lib import check_file_field, prepare_queue_task, \ - run_process_media + run_process_media, new_upload_entry from .tools import CmdTable, response_xml, check_form, \ PWGSession, PwgNamedArray, PwgError @@ -124,7 +124,7 @@ def pwg_images_addSimple(request): request.files['image']) # create entry and save in database - entry = request.db.MediaEntry() + entry = new_upload_entry(request.user) entry.media_type = unicode(media_type) entry.title = ( unicode(form.name.data) @@ -132,10 +132,6 @@ def pwg_images_addSimple(request): entry.description = unicode(form.comment.data) - # entry.license = unicode(form.license.data) or None - - entry.uploader = request.user.id - ''' # Process the user's folksonomy "tags" entry.tags = convert_to_tag_list_of_dicts( diff --git a/mediagoblin/submit/lib.py b/mediagoblin/submit/lib.py index 7c3b8ab3..7e85696b 100644 --- a/mediagoblin/submit/lib.py +++ b/mediagoblin/submit/lib.py @@ -19,6 +19,7 @@ import uuid from werkzeug.utils import secure_filename from werkzeug.datastructures import FileStorage +from mediagoblin.db.models import MediaEntry from mediagoblin.processing import mark_entry_failed from mediagoblin.processing.task import process_media @@ -36,6 +37,16 @@ def check_file_field(request, field_name): return retval +def new_upload_entry(user): + """ + Create a new MediaEntry for uploading + """ + entry = MediaEntry() + entry.uploader = user.id + entry.license = user.license_preference + return entry + + def prepare_queue_task(app, entry, filename): """ Prepare a MediaEntry for the processing queue and get a queue file diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index e964ec12..a70c89b4 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -32,7 +32,7 @@ from mediagoblin.messages import add_message, SUCCESS from mediagoblin.media_types import sniff_media, \ InvalidFileType, FileTypeNotSupported from mediagoblin.submit.lib import check_file_field, prepare_queue_task, \ - run_process_media + run_process_media, new_upload_entry @require_active_login @@ -57,7 +57,7 @@ def submit_start(request): request.files['file']) # create entry and save in database - entry = request.db.MediaEntry() + entry = new_upload_entry(request.user) entry.media_type = unicode(media_type) entry.title = ( unicode(submit_form.title.data) @@ -67,8 +67,6 @@ def submit_start(request): entry.license = unicode(submit_form.license.data) or None - entry.uploader = request.user.id - # Process the user's folksonomy "tags" entry.tags = convert_to_tag_list_of_dicts( submit_form.tags.data)