aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-05-20 18:16:10 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-05-20 18:16:10 -0500
commit6926b23d43323bbc214aa285948ad2850c5ad22e (patch)
tree060b7265edb940e08f36e22902cd7bafdea04d2e /mediagoblin/db
parent439e37f73287efbbef8ef60492d7a8c4970a9907 (diff)
downloadmediagoblin-6926b23d43323bbc214aa285948ad2850c5ad22e.tar.lz
mediagoblin-6926b23d43323bbc214aa285948ad2850c5ad22e.tar.xz
mediagoblin-6926b23d43323bbc214aa285948ad2850c5ad22e.zip
Added a url_for_self method for generating mediaentry links
This allows for optionally making the url based off of slugs or ids
Diffstat (limited to 'mediagoblin/db')
-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]