Update all the views so that they use the uploader reference instead

of uploader embedding
This commit is contained in:
Christopher Allan Webber 2011-05-22 16:06:45 -05:00
parent 757f37a52d
commit 16509be160
5 changed files with 13 additions and 8 deletions

View File

@ -127,17 +127,22 @@ class MediaEntry(Document):
Use a slug if we have one, else use our '_id'. Use a slug if we have one, else use our '_id'.
""" """
uploader = self.uploader()
if self.get('slug'): if self.get('slug'):
return urlgen( return urlgen(
'mediagoblin.user_pages.media_home', 'mediagoblin.user_pages.media_home',
user=self['uploader']['username'], user=uploader['username'],
media=self['slug']) media=self['slug'])
else: else:
return urlgen( return urlgen(
'mediagoblin.user_pages.media_home', 'mediagoblin.user_pages.media_home',
user=self['uploader']['username'], user=uploader['username'],
media=unicode(self['_id'])) media=unicode(self['_id']))
def uploader(self):
return self.db.User.find_one({'_id': self['uploader']})
REGISTER_MODELS = [MediaEntry, User] REGISTER_MODELS = [MediaEntry, User]

View File

@ -80,7 +80,7 @@ def get_user_media_entry(controller):
media = request.db.MediaEntry.find_one( media = request.db.MediaEntry.find_one(
{'slug': request.matchdict['media'], {'slug': request.matchdict['media'],
'state': 'processed', 'state': 'processed',
'uploader._id': user['_id']}) 'uploader': user['_id']})
# no media via slug? Grab it via ObjectId # no media via slug? Grab it via ObjectId
if not media: if not media:
@ -88,7 +88,7 @@ def get_user_media_entry(controller):
media = request.db.MediaEntry.find_one( media = request.db.MediaEntry.find_one(
{'_id': ObjectId(request.matchdict['media']), {'_id': ObjectId(request.matchdict['media']),
'state': 'processed', 'state': 'processed',
'uploader._id': user['_id']}) 'uploader': user['_id']})
except InvalidId: except InvalidId:
return exc.HTTPNotFound() return exc.HTTPNotFound()

View File

@ -46,7 +46,7 @@ def submit_start(request):
entry['title'] = request.POST['title'] or unicode(splitext(filename)[0]) entry['title'] = request.POST['title'] or unicode(splitext(filename)[0])
entry['description'] = request.POST.get('description') entry['description'] = request.POST.get('description')
entry['media_type'] = u'image' # heh 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 # Save, just so we can get the entry id for the sake of using
# it to generate the file path # it to generate the file path

View File

@ -22,7 +22,7 @@
{% if media %} {% if media %}
<h1>Media details for <a <h1>Media details for <a
href="{{ request.urlgen('mediagoblin.user_pages.user_home', 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}} / {{media.title}}
</h1> </h1>
<div> <div>
@ -32,7 +32,7 @@
<br/>Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, <br/>Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year,
media.created.month,media.created.day)}} by <a media.created.month,media.created.day)}} by <a
href="{{ request.urlgen('mediagoblin.user_pages.user_home', 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}} <br/>Description: {{media.description}}
</div> </div>
{% else %} {% else %}

View File

@ -31,7 +31,7 @@ def user_home(request, page):
return exc.HTTPNotFound() return exc.HTTPNotFound()
cursor = request.db.MediaEntry.find( cursor = request.db.MediaEntry.find(
{'uploader': user, {'uploader': user['_id'],
'state': 'processed'}).sort('created', DESCENDING) 'state': 'processed'}).sort('created', DESCENDING)
pagination = Pagination(page, cursor) pagination = Pagination(page, cursor)