aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/db/migrations.py12
-rw-r--r--mediagoblin/db/models.py3
-rw-r--r--mediagoblin/submit/views.py11
3 files changed, 23 insertions, 3 deletions
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py
index 8c088145..36bca5b3 100644
--- a/mediagoblin/db/migrations.py
+++ b/mediagoblin/db/migrations.py
@@ -53,6 +53,7 @@ def mediaentry_mediafiles_main_to_original(database):
collection.save(document)
+
@RegisterMigration(3)
def mediaentry_remove_thumbnail_file(database):
"""
@@ -61,4 +62,15 @@ def mediaentry_remove_thumbnail_file(database):
database['media_entries'].update(
{'thumbnail_file': {'$exists': True}},
{'$unset': {'thumbnail_file': 1}},
+
+
+@RegisterMigration(4)
+def mediaentry_add_queued_task_id(database):
+ """
+ Add the 'queued_task_id' field for entries that don't have it.
+ """
+ collection = database['media_entries']
+ collection.update(
+ {'queued_task_id': {'$exists': False}},
+ {'$set': {'queued_task_id': None}},
multi=True)
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index aff2a65b..0dcb6ce8 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -162,6 +162,8 @@ class MediaEntry(Document):
queued for processing. This is stored in the mg_globals.queue_store
storage system.
+ - queued_task_id: celery task id. Use this to fetch the task state.
+
- media_files: Files relevant to this that have actually been processed
and are available for various types of display. Stored like:
{'thumb': ['dir1', 'dir2', 'pic.png'}
@@ -188,6 +190,7 @@ class MediaEntry(Document):
# For now let's assume there can only be one main file queued
# at a time
'queued_media_file': [unicode],
+ 'queued_task_id': unicode,
# A dictionary of logical names to filepaths
'media_files': dict,
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py
index a3a58400..1e8c6a68 100644
--- a/mediagoblin/submit/views.py
+++ b/mediagoblin/submit/views.py
@@ -86,10 +86,15 @@ def submit_start(request):
# Add queued filename to the entry
entry['queued_media_file'] = queue_filepath
- entry.save(validate=True)
- # queue it for processing
- process_media_initial.delay(unicode(entry['_id']))
+ # Save now so we have this data before kicking off processing
+ entry.save(validate=False)
+
+ result = process_media_initial.delay(unicode(entry['_id']))
+
+ # Save the task id
+ entry['queued_task_id'] = unicode(result.task_id)
+ entry.save(validate=True)
add_message(request, SUCCESS, _('Woohoo! Submitted!'))