Commit 65147c52 by benjaoming

Inherit correct properties from predecessor and be more robust when returning…

Inherit correct properties from predecessor and be more robust when returning size and filename on images
parent 657831fe
......@@ -41,9 +41,9 @@ class RevisionForm(forms.ModelForm):
if not self.instance.id:
kwargs['commit'] = False
revision = super(RevisionForm, self).save(*args, **kwargs)
revision.inherit_predecessor(self.image, skip_image_file=True)
revision.set_from_request(self.request)
revision.inherit_predecessor(self.image)
revision.save()
#revision.save()
self.image.add_revision(self.instance, save=True)
return revision
return super(SidebarForm, self).save(*args, **kwargs)
......
......@@ -53,7 +53,11 @@ class ImageRevision(RevisionPluginRevision):
def get_filename(self):
if self.image:
return self.image.path.split('/')[-1]
try:
return self.image.path.split('/')[-1]
except OSError:
pass
return None
def get_size(self):
"""Used to retrieve the file size and not cause exceptions."""
......@@ -61,22 +65,27 @@ class ImageRevision(RevisionPluginRevision):
return self.image.size
except ValueError:
return None
except OSError:
return None
def inherit_predecessor(self, image):
def inherit_predecessor(self, image, skip_image_file=False):
"""
Inherit certain properties from predecessor because it's very
convenient. Remember to always call this method before
setting properties :)"""
predecessor = image.current_revision.imagerevision
self.plugin = predecessor.plugin
try:
self.image = predecessor.image
except IOError:
self.image = None
self.width = predecessor.width
self.height = predecessor.height
self.deleted = predecessor.deleted
self.locked = predecessor.locked
if not skip_image_file:
try:
self.image = predecessor.image
self.width = predecessor.width
self.height = predecessor.height
except IOError:
self.image = None
self.width = None
self.height = None
class Meta:
verbose_name = _(u'image revision')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment