def dehydrate(self, bundle): # Setting slug-field bundle.data['slug'] = slugify(unidecode(bundle.data['title'])) # If image is set if bundle.data['image']: # Parse to FileObject used by Filebrowser temp_image = FileObject(bundle.data['image']) # Itterate the different versions (by key) for ver in VERSIONS.keys(): # Check if the key start with article_ (if it does, we want to crop to that size) if ver.startswith('events_'): # Adding the new image to the object bundle.data['image_' + ver] = temp_image.version_generate(ver).url # Unset the image-field del (bundle.data['image']) # Do the same thing for the company image if 'image' in bundle.data and bundle.data['image']: for company in bundle.data['company_event']: temp_image = FileObject( company.data['companies'].data['old_image']) for ver in VERSIONS.keys(): if ver.startswith('companies_thumb'): company.data['companies'].data[ 'old_image_' + ver] = temp_image.version_generate(ver).url del (company.data['companies'].data['old_image']) # Returning washed object return bundle
def __init__(self, value, version_suffix=ADMIN_THUMBNAIL): """ Initialize Media for filebrowser. :param value: string with format 'app_label.model_name:pk' :param version_suffix: string with information about version to display """ assert isinstance(value, str) assert version_suffix in VERSIONS.keys() self.value = value try: model_representation, self.object_id = value.split(':') except ValueError: raise FBExtensionObjectException(CORECT_FORMAT_EXCEPTION) if not all((model_representation, self.object_id)): raise FBExtensionObjectException(CORECT_FORMAT_EXCEPTION) try: self.app_label, self.model_name = model_representation.split('.') except ValueError: raise FBExtensionObjectException(CORECT_FORMAT_EXCEPTION) self.version_suffix = version_suffix
def version(self): "Returns version name" ext = (r'_(%s)$') % ('|'.join(VERSIONS.keys())) match = re.search(ext, self.filename_root, re.IGNORECASE) if match: return match.groups()[0] return None
def find_image_versions(image): img = image img_strings = [] for ver in VERSIONS.keys(): if ver.startswith('events_'): img_strings.append(img.version_generate(ver).url) return img_strings
def find_image_versions(company): img = company.old_image img_strings = [] for ver in VERSIONS.keys(): if ver.startswith('companies_'): img_strings.append(img.version_generate(ver).url) return img_strings
def find_image_versions(article): img = article.image img_strings = [] for ver in VERSIONS.keys(): if ver.startswith("article_"): img_strings.append(img.version_generate(ver).url) return img_strings
def test_should_return_correct_original_name_using_predefined_versions(self): expected = 'testimage.jpg' for version_suffix in VERSIONS.keys(): file_object = self.F_IMAGE.version_generate(version_suffix) namer = self._get_namer(version_suffix, file_object) self.assertNotEqual(file_object.filename, expected) self.assertEqual(namer.get_original_name(), expected) self.assertEqual(file_object.original_filename, expected)
def test_version_attributes_3(self): """ FileObject version attributes/methods with alternative versions_basedir # is_version # original # original_filename # versions_basedir # versions # admin_versions # version_name(suffix) # version_generate(suffix) """ # new settings version_list = sorted([ '_test/_versions/folder/testimage_{}.jpg'.format(name) for name in VERSIONS.keys() ]) admin_version_list = ['_test/_versions/folder/testimage_large.jpg'] self.assertEqual(self.F_IMAGE.is_version, False) self.assertEqual(self.F_IMAGE.original.path, self.F_IMAGE.path) self.assertEqual(self.F_IMAGE.versions_basedir, "_test/_versions/") self.assertEqual(self.F_IMAGE.versions(), version_list) self.assertEqual(self.F_IMAGE.admin_versions(), admin_version_list) self.assertEqual(self.F_IMAGE.version_name("large"), "testimage_large.jpg") self.assertEqual(self.F_IMAGE.version_path("large"), "_test/_versions/folder/testimage_large.jpg") # version does not exist yet f_version = FileObject(os.path.join(site.directory, 'folder', "testimage_large.jpg"), site=site) self.assertEqual(f_version.exists, False) # generate version f_version = self.F_IMAGE.version_generate("large") self.assertEqual(f_version.path, "_test/_versions/folder/testimage_large.jpg") self.assertEqual(f_version.exists, True) self.assertEqual(f_version.is_version, True) self.assertEqual(f_version.original_filename, "testimage.jpg") self.assertEqual(f_version.original.path, self.F_IMAGE.path) self.assertEqual(f_version.versions(), []) self.assertEqual(f_version.admin_versions(), [])
def test_version_attributes_3(self): """ FileObject version attributes/methods with alternative versions_basedir # is_version # original # original_filename # versions_basedir # versions # admin_versions # version_name(suffix) # version_generate(suffix) """ # new settings version_list = sorted(['_test/_versions/folder/testimage_{}.jpg'.format(name) for name in VERSIONS.keys()]) admin_version_list = ['_test/_versions/folder/testimage_large.jpg'] self.assertEqual(self.F_IMAGE.is_version, False) self.assertEqual(self.F_IMAGE.original.path, self.F_IMAGE.path) self.assertEqual(self.F_IMAGE.versions_basedir, "_test/_versions/") self.assertEqual(self.F_IMAGE.versions(), version_list) self.assertEqual(self.F_IMAGE.admin_versions(), admin_version_list) self.assertEqual(self.F_IMAGE.version_name("large"), "testimage_large.jpg") self.assertEqual(self.F_IMAGE.version_path("large"), "_test/_versions/folder/testimage_large.jpg") # version does not exist yet f_version = FileObject(os.path.join(site.directory, 'folder', "testimage_large.jpg"), site=site) self.assertEqual(f_version.exists, False) # generate version f_version = self.F_IMAGE.version_generate("large") self.assertEqual(f_version.path, "_test/_versions/folder/testimage_large.jpg") self.assertEqual(f_version.exists, True) self.assertEqual(f_version.is_version, True) self.assertEqual(f_version.original_filename, "testimage.jpg") self.assertEqual(f_version.original.path, self.F_IMAGE.path) self.assertEqual(f_version.versions(), []) self.assertEqual(f_version.admin_versions(), [])