Skip to content

Commit

Permalink
bumped version; Increased debug logging
Browse files Browse the repository at this point in the history
  • Loading branch information
saulshanabrook committed Jun 5, 2013
1 parent 59dc8a5 commit bc73e52
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 23 deletions.
1 change: 1 addition & 0 deletions 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
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -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(),
Expand Down
10 changes: 8 additions & 2 deletions 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
Expand All @@ -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,
Expand Down
15 changes: 0 additions & 15 deletions simpleimages/test/test_utils.py
Expand Up @@ -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)
23 changes: 18 additions & 5 deletions simpleimages/utils.py
Expand Up @@ -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,
Expand All @@ -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')

0 comments on commit bc73e52

Please sign in to comment.