Make generate_slug assign a slug in any case
generate_slug could assign "none" as slug. Make sure it assigns a unique slug in any case. We now try based on: a) existing slug values b) media.title c) media.id d) random garbage Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
This commit is contained in:
parent
4ca0755ab6
commit
66d9f1b2a0
@ -56,15 +56,22 @@ class MediaEntryMixin(object):
|
||||
# (db.models -> db.mixin -> db.util -> db.models)
|
||||
from mediagoblin.db.util import check_media_slug_used
|
||||
|
||||
self.slug = slugify(self.title)
|
||||
#Is already a slug assigned? Check if it is valid
|
||||
if self.slug:
|
||||
self.slug = slugify(self.slug)
|
||||
elif self.title:
|
||||
#assign slug based on title
|
||||
self.slug = slugify(self.title)
|
||||
elif self.id:
|
||||
# Does the object already have an ID? (after adding to the session)
|
||||
self.slug = unicode(self.id)
|
||||
else:
|
||||
# Everything else failed, just use random garbage
|
||||
self.slug = unicode(uuid4())[1:4]
|
||||
|
||||
duplicate = check_media_slug_used(self.uploader, self.slug, self.id)
|
||||
|
||||
if duplicate:
|
||||
if self.id is not None:
|
||||
self.slug = u"%s-%s" % (self.id, self.slug)
|
||||
else:
|
||||
self.slug = None
|
||||
while check_media_slug_used(self.uploader, self.slug, self.id):
|
||||
# add garbage till it's unique
|
||||
self.slug = self.slug + unicode(uuid4())[1:4]
|
||||
|
||||
@property
|
||||
def description_html(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user