aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/db/models.py9
-rw-r--r--mediagoblin/decorators.py4
-rw-r--r--mediagoblin/submit/views.py2
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media.html4
-rw-r--r--mediagoblin/user_pages/views.py2
5 files changed, 13 insertions, 8 deletions
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index 3fc8d9e8..37420834 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -127,17 +127,22 @@ class MediaEntry(Document):
Use a slug if we have one, else use our '_id'.
"""
+ uploader = self.uploader()
+
if self.get('slug'):
return urlgen(
'mediagoblin.user_pages.media_home',
- user=self['uploader']['username'],
+ user=uploader['username'],
media=self['slug'])
else:
return urlgen(
'mediagoblin.user_pages.media_home',
- user=self['uploader']['username'],
+ user=uploader['username'],
media=unicode(self['_id']))
+ def uploader(self):
+ return self.db.User.find_one({'_id': self['uploader']})
+
REGISTER_MODELS = [MediaEntry, User]
diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py
index 34a471cb..ff3f0b5e 100644
--- a/mediagoblin/decorators.py
+++ b/mediagoblin/decorators.py
@@ -80,7 +80,7 @@ def get_user_media_entry(controller):
media = request.db.MediaEntry.find_one(
{'slug': request.matchdict['media'],
'state': 'processed',
- 'uploader._id': user['_id']})
+ 'uploader': user['_id']})
# no media via slug? Grab it via ObjectId
if not media:
@@ -88,7 +88,7 @@ def get_user_media_entry(controller):
media = request.db.MediaEntry.find_one(
{'_id': ObjectId(request.matchdict['media']),
'state': 'processed',
- 'uploader._id': user['_id']})
+ 'uploader': user['_id']})
except InvalidId:
return exc.HTTPNotFound()
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py
index 95a416e2..262f2b12 100644
--- a/mediagoblin/submit/views.py
+++ b/mediagoblin/submit/views.py
@@ -46,7 +46,7 @@ def submit_start(request):
entry['title'] = request.POST['title'] or unicode(splitext(filename)[0])
entry['description'] = request.POST.get('description')
entry['media_type'] = u'image' # heh
- entry['uploader'] = request.user
+ entry['uploader'] = request.user['_id']
# Save, just so we can get the entry id for the sake of using
# it to generate the file path
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html
index e07cee44..5ccd7299 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/media.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/media.html
@@ -22,7 +22,7 @@
{% if media %}
<h1>Media details for <a
href="{{ request.urlgen('mediagoblin.user_pages.user_home',
- user= media.uploader.username) }}">{{media.uploader.username}}</a>
+ user= media.uploader().username) }}">{{media.uploader.username}}</a>
/ {{media.title}}
</h1>
<div>
@@ -32,7 +32,7 @@
<br/>Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year,
media.created.month,media.created.day)}} by <a
href="{{ request.urlgen('mediagoblin.user_pages.user_home',
- user= media.uploader.username) }}">{{media.uploader.username}}</a>
+ user= media.uploader().username) }}">{{media.uploader.username}}</a>
<br/>Description: {{media.description}}
</div>
{% else %}
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index 0d9833cd..41bdb402 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -31,7 +31,7 @@ def user_home(request, page):
return exc.HTTPNotFound()
cursor = request.db.MediaEntry.find(
- {'uploader': user,
+ {'uploader': user['_id'],
'state': 'processed'}).sort('created', DESCENDING)
pagination = Pagination(page, cursor)