diff --git a/CHANGES.txt b/CHANGES.txt index fb92309..b83f88c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,4 @@ +v0.2.4, 06/04/13 -- Increased transform debug logging v0.2.3, 06/04/13 -- Add all packages so that Django finds management command v0.2.2, 06/04/13 -- Zip safe on setup.py so Django finds management command v0.2.1, 05/29/13 -- Proper progressive and optomize support diff --git a/setup.py b/setup.py index e1995a3..ebe7288 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ setup( name='django-simpleimages', - version='0.2.3', + version='0.2.4', author='Saul Shanabrook', author_email='s.shanabrook@gmail.com', packages=find_packages(), diff --git a/simpleimages/management/commands/retransform.py b/simpleimages/management/commands/retransform.py index 8bc3ab6..21200a3 100644 --- a/simpleimages/management/commands/retransform.py +++ b/simpleimages/management/commands/retransform.py @@ -1,6 +1,6 @@ from itertools import repeat -from django.core.management.base import BaseCommand +from django.core.management.base import BaseCommand, CommandError from django.db.models import get_model from ... import utils @@ -16,9 +16,15 @@ def handle(self, *args, **options): arg_values = arg.split('.') arg_values.extend(repeat(None, 3 - len(arg_values))) app_name, model_name, field_name = arg_values + self.stdout.write('app: {0}'.format(app_name)) + self.stdout.write('model: {0}'.format(model_name)) + if field_name: + self.stdout.write('model: {0}'.format(field_name)) model = get_model(app_name, model_name) + if not model: + raise CommandError('That model-app pair can not be found') instances = model._default_manager.all() - self.stdout.write('Transforming {0}.{1}'.format(instances, field_name)) + self.stdout.write('Transforming {0} models'.format(len(instances))) utils.perform_transformation( instances=instances, diff --git a/simpleimages/test/test_utils.py b/simpleimages/test/test_utils.py index 1f367c0..9dee2ba 100644 --- a/simpleimages/test/test_utils.py +++ b/simpleimages/test/test_utils.py @@ -101,18 +101,3 @@ def test_transform_error_doesnt_save_file(self): self.assertFalse(self.model.thumbnail) self.assertFalse(self.non_cached_model.thumbnail) - - def test_transform_error_deletes_file(self): - perform_transformation([self.model], field_names=['image']) - self.model.image.save( - self.image_name, - self.non_image_file - ) - perform_transformation([self.model], field_names=['image']) - self.non_cached_model = TestModel.objects.get(pk=self.model.pk) - - self.assertTrue(self.model.image) - self.assertTrue(self.non_cached_model.image) - - self.assertFalse(self.model.thumbnail) - self.assertFalse(self.non_cached_model.thumbnail) diff --git a/simpleimages/utils.py b/simpleimages/utils.py index efe86f7..3bb6a20 100644 --- a/simpleimages/utils.py +++ b/simpleimages/utils.py @@ -12,20 +12,32 @@ def perform_transformation(instances, field_names=None): `field_names` is false, it will resave all the fields on the model. ''' for instance in instances: + logger.debug('Transforming images on "{0}"'.format(instance)) updated_fields = [] transformed_fields_dict = instance.transformed_fields for original_field_name, destination_dict in transformed_fields_dict.items(): if field_names and not original_field_name in field_names: + logger.debug('"{0}" field field isnt being transformed'.format( + original_field_name + )) break original_field = getattr(instance, original_field_name) if not original_field: + logger.debug('"{0}" field is empty'.format(original_field_name)) break original_name = original_field.name - + logger.debug('Transforming "{0}" file from "{1}" field'.format( + original_name, + original_field_name + )) for destination_field_name, transformation in destination_dict.items(): + logger.debug('Performing transformation to "{0}" field'.format( + destination_field_name + )) destination_field = getattr(instance, destination_field_name) new_image = transformation(original_field) if new_image: + logger.debug('Saving new image') destination_field.save( original_name, new_image, @@ -39,10 +51,11 @@ def perform_transformation(instances, field_names=None): destination_field_name ) ) - if destination_field: - destination_field.delete( - save=False - ) updated_fields.append(destination_field_name) if updated_fields: + logger.debug('{0}fields updated, saving instance'.format( + ', '.join(updated_fields) + )) instance.save(update_fields=updated_fields) + else: + logger.debug('No fields updated')