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.
This commit is contained in:
Elrond 2013-05-21 00:28:37 +02:00
parent 4adc3a85dd
commit 6c1467d570
4 changed files with 17 additions and 14 deletions

View File

@ -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

View File

@ -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(

View File

@ -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

View File

@ -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)