diff options
-rw-r--r-- | mediagoblin/db/models.py | 9 | ||||
-rw-r--r-- | mediagoblin/decorators.py | 4 | ||||
-rw-r--r-- | mediagoblin/submit/views.py | 2 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/user_pages/media.html | 4 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 2 |
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) |