aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/source/siteadmin/commandline-upload.rst1
-rw-r--r--mediagoblin/gmg_commands/addmedia.py6
-rw-r--r--mediagoblin/submit/lib.py13
3 files changed, 18 insertions, 2 deletions
diff --git a/docs/source/siteadmin/commandline-upload.rst b/docs/source/siteadmin/commandline-upload.rst
index 659b58b4..ef597a44 100644
--- a/docs/source/siteadmin/commandline-upload.rst
+++ b/docs/source/siteadmin/commandline-upload.rst
@@ -37,6 +37,7 @@ Here's a longer example that makes use of more options::
./bin/gmg addmedia aveyah awesome_spaceship.png \
--title "My awesome spaceship" \
--description "Flying my awesome spaceship, since I'm an awesome pilot" \
+ --collection-slug i-m-an-awesome-pilot \
--license "http://creativecommons.org/licenses/by-sa/3.0/" \
--tags "spaceships, pilots, awesome" \
--slug "awesome-spaceship"
diff --git a/mediagoblin/gmg_commands/addmedia.py b/mediagoblin/gmg_commands/addmedia.py
index 9685d5a5..babc6ed7 100644
--- a/mediagoblin/gmg_commands/addmedia.py
+++ b/mediagoblin/gmg_commands/addmedia.py
@@ -56,6 +56,11 @@ def parser_setup(subparser):
help=(
"Slug for this media entry. "
"Will be autogenerated if unspecified."))
+ subparser.add_argument(
+ "-c", "--collection-slug",
+ help=(
+ "Slug of the collection for this media entry."
+ "Should already exits."))
subparser.add_argument(
'--celery',
@@ -100,6 +105,7 @@ def addmedia(args):
submitted_file=open(abs_filename, 'rb'), filename=filename,
title=maybe_unicodeify(args.title),
description=maybe_unicodeify(args.description),
+ collection_slug=args.collection_slug,
license=maybe_unicodeify(args.license),
tags_string=maybe_unicodeify(args.tags) or u"")
except FileUploadLimit:
diff --git a/mediagoblin/submit/lib.py b/mediagoblin/submit/lib.py
index 4979def8..08a603e9 100644
--- a/mediagoblin/submit/lib.py
+++ b/mediagoblin/submit/lib.py
@@ -27,11 +27,12 @@ from mediagoblin import mg_globals
from mediagoblin.tools.response import json_response
from mediagoblin.tools.text import convert_to_tag_list_of_dicts
from mediagoblin.tools.federation import create_activity, create_generator
-from mediagoblin.db.models import MediaEntry, ProcessingMetaData
+from mediagoblin.db.models import Collection, MediaEntry, ProcessingMetaData
from mediagoblin.processing import mark_entry_failed
from mediagoblin.processing.task import ProcessMedia
from mediagoblin.notifications import add_comment_subscription
from mediagoblin.media_types import sniff_media
+from mediagoblin.user_pages.lib import add_media_to_collection
_log = logging.getLogger(__name__)
@@ -101,7 +102,7 @@ class UserPastUploadLimit(UploadLimitError):
def submit_media(mg_app, user, submitted_file, filename,
- title=None, description=None,
+ title=None, description=None, collection_slug=None,
license=None, metadata=None, tags_string=u"",
callback_url=None, urlgen=None,):
"""
@@ -115,6 +116,7 @@ def submit_media(mg_app, user, submitted_file, filename,
one on disk being referenced by submitted_file.
- title: title for this media entry
- description: description for this media entry
+ - collection_slug: collection for this media entry
- license: license for this media entry
- tags_string: comma separated string of tags to be associated
with this entry
@@ -203,6 +205,13 @@ def submit_media(mg_app, user, submitted_file, filename,
create_activity("post", entry, entry.actor)
entry.save()
+ # add to collection
+ if collection_slug:
+ collection = Collection.query.filter_by(slug=collection_slug,
+ actor=user.id).first()
+ if collection:
+ add_media_to_collection(collection, entry)
+
# Pass off to processing
#
# (... don't change entry after this point to avoid race