diff options
author | Aaron Williamson <aaron@copiesofcopies.org> | 2011-05-13 12:18:52 -0400 |
---|---|---|
committer | Aaron Williamson <aaron@copiesofcopies.org> | 2011-05-13 12:18:52 -0400 |
commit | 0546833c6ea4dcaaa82861819916760dd62d8fa7 (patch) | |
tree | a3af4f252b44f4bfdaf6e192e38c0aa4b8408ac3 /mediagoblin/models.py | |
parent | a8e2812b054f49e4085bf6b8c0b9e0c5f1b8d312 (diff) | |
download | mediagoblin-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.py | 11 |
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] |