web/lib/photologue/management/commands/plflush.py
changeset 5 10b1f6d8a5d2
equal deleted inserted replaced
4:b77683731f25 5:10b1f6d8a5d2
       
     1 from django.core.management.base import BaseCommand, CommandError
       
     2 from optparse import make_option
       
     3 from photologue.models import PhotoSize, ImageModel
       
     4 
       
     5 class Command(BaseCommand):
       
     6     help = ('Clears the Photologue cache for the given sizes.')
       
     7     args = '[sizes]'
       
     8 
       
     9     requires_model_validation = True
       
    10     can_import_settings = True
       
    11 
       
    12     def handle(self, *args, **options):
       
    13         return create_cache(args, options)
       
    14 
       
    15 def create_cache(sizes, options):
       
    16     """
       
    17     Clears the cache for the given files
       
    18     """
       
    19     size_list = [size.strip(' ,') for size in sizes]
       
    20 
       
    21     if len(size_list) < 1:
       
    22         sizes = PhotoSize.objects.all()
       
    23     else:
       
    24         sizes = PhotoSize.objects.filter(name__in=size_list)
       
    25 
       
    26     if not len(sizes):
       
    27         raise CommandError('No photo sizes were found.')
       
    28 
       
    29     print 'Flushing cache...'
       
    30 
       
    31     for cls in ImageModel.__subclasses__():
       
    32         for photosize in sizes:
       
    33             print 'Flushing %s size images' % photosize.name
       
    34             for obj in cls.objects.all():
       
    35                 obj.remove_size(photosize)