def size_equals(self, file=None): if not file: return self.size == _settings.DEFAULT_AVATAR_WIDTH else: return self.size == Image(file).size().width()
if defaulting: file_root = _settings.AVATARS_DIR if self.size_equals(): return self.as_url(path.join(file_root, file_name)) file_path = path.join(file_root, file_name) # I don't return the default because I have to resize it. if not defaulting: if path.exists(file_path) and self.size_equals(file_path): return self.as_url(file_path) else: if not profile.avatar: file_root = _settings.AVATARS_DIR file_path = path.join(file_root, _settings.DEFAULT_AVATAR) # Oops, I din't find it, let's try to generate it. if path.exists(file_path): orig_file = Image(file_path) dest_root = path.join(avatars_root, str(self.size)) try: makedirs(dest_root) except Exception, e: print e # Save the new path for later... dest_path = path.join(dest_root, file_name) else: # Did my best... return '' # fail silently orig_file.scale(self.size) if orig_file.write(dest_path): return self.as_url(dest_path) else: print '=== ERROR ==='