aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/models.py
diff options
context:
space:
mode:
authorAaron Williamson <aaron@copiesofcopies.org>2011-05-13 12:18:52 -0400
committerAaron Williamson <aaron@copiesofcopies.org>2011-05-13 12:18:52 -0400
commit0546833c6ea4dcaaa82861819916760dd62d8fa7 (patch)
treea3af4f252b44f4bfdaf6e192e38c0aa4b8408ac3 /mediagoblin/models.py
parenta8e2812b054f49e4085bf6b8c0b9e0c5f1b8d312 (diff)
downloadmediagoblin-0546833c6ea4dcaaa82861819916760dd62d8fa7.tar.lz
mediagoblin-0546833c6ea4dcaaa82861819916760dd62d8fa7.tar.xz
mediagoblin-0546833c6ea4dcaaa82861819916760dd62d8fa7.zip
Generate unique slugs for newly submitted images.
Diffstat (limited to 'mediagoblin/models.py')
-rw-r--r--mediagoblin/models.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/mediagoblin/models.py b/mediagoblin/models.py
index 5b286038..1ecabe3e 100644
--- a/mediagoblin/models.py
+++ b/mediagoblin/models.py
@@ -18,8 +18,9 @@ import datetime, uuid
from mongokit import Document, Set
+from mediagoblin import util
from mediagoblin.auth import lib as auth_lib
-
+from mediagoblin import globals as mediagoblin_globals
###################
# Custom validators
@@ -66,6 +67,7 @@ class MediaEntry(Document):
structure = {
'uploader': User,
'title': unicode,
+ 'slug':unicode,
'created': datetime.datetime,
'description': unicode,
'media_type': unicode,
@@ -98,6 +100,13 @@ class MediaEntry(Document):
def main_mediafile(self):
pass
+ def generate_slug(self):
+ self['slug'] = util.slugify(self['title'])
+
+ duplicate = mediagoblin_globals.database.media_entries.find_one({'slug': self['slug']})
+
+ if duplicate:
+ self['slug'] = "%s-%s" % (self['_id'], self['slug'])
REGISTER_MODELS = [MediaEntry, User]