aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db/models.py')
-rw-r--r--mediagoblin/db/models.py18
1 files changed, 18 insertions, 0 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]