diff options
-rw-r--r-- | mediagoblin/db/models.py | 18 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/root.html | 3 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/utils/object_gallery.html | 3 |
3 files changed, 20 insertions, 4 deletions
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 1bc1da60..8e7889eb 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -117,6 +117,24 @@ class MediaEntry(Document): if duplicate: self['slug'] = "%s-%s" % (self['_id'], self['slug']) + def url_for_self(self, urlgen): + """ + Generate an appropriate url for ourselves + + Use a slug if we have one, else use our '_id'. + """ + if self.get('slug'): + return urlgen( + 'mediagoblin.user_pages.media_home', + user=self['uploader']['username'], + media=self['slug']) + else: + return urlgen( + 'mediagoblin.user_pages.media_home', + user=self['uploader']['username'], + media=unicode(self['_id'])) + + REGISTER_MODELS = [MediaEntry, User] diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index a93a7c75..05926687 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -44,8 +44,7 @@ <ul> {% for entry in media_entries %} <li> - <a href="{{ request.urlgen('mediagoblin.user_pages.media_home', - user= entry.uploader.username, m_id= entry._id) }}"> + <a href="{{ entry.url_for_self(request.urlgen) }}"> <img src="{{ request.app.public_store.file_url( entry['media_files']['thumb']) }}" /></a> </li> diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 8ae337f5..30497f47 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -22,8 +22,7 @@ <ul> {% for entry in media_entries %} <li> - <a href="{{ request.urlgen('mediagoblin.user_pages.media_home', - user= entry.uploader.username, m_id= entry._id) }}"> + <a href="{{ entry.url_for_self(request.urlgen) }}"> <img src="{{ request.app.public_store.file_url( entry['media_files']['thumb']) }}" /></a> </li> |