aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/mongo/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db/mongo/models.py')
-rw-r--r--mediagoblin/db/mongo/models.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py
index 906d2849..d9b5a570 100644
--- a/mediagoblin/db/mongo/models.py
+++ b/mediagoblin/db/mongo/models.py
@@ -226,6 +226,27 @@ class MediaEntry(Document, MediaEntryMixin):
if duplicate:
self.slug = "%s-%s" % (self._id, self.slug)
+ def url_for_self(self, urlgen, **extra_args):
+ """
+ Generate an appropriate url for ourselves
+
+ Use a slug if we have one, else use our '_id'.
+ """
+ uploader = self.get_uploader
+
+ if self.get('slug'):
+ return urlgen(
+ 'mediagoblin.user_pages.media_home',
+ user=uploader.username,
+ media=self.slug,
+ **extra_args)
+ else:
+ return urlgen(
+ 'mediagoblin.user_pages.media_home',
+ user=uploader.username,
+ media=unicode(self._id),
+ **extra_args)
+
def url_to_prev(self, urlgen):
"""
Provide a url to the previous entry from this user, if there is one