view photologue/management/commands/plflush.py @ 163:7fc4123fef70

Stop passing callable to queryset. This is now deprecated. The usage here was most likely a mistake that has worked all these years. This change was for upgrading to Django 1.7.
author Brian Neal <bgneal@gmail.com>
date Thu, 02 Apr 2015 19:17:47 -0500
parents e2868ad47a1e
children
line wrap: on
line source
from django.core.management.base import BaseCommand, CommandError
from optparse import make_option
from photologue.models import PhotoSize, ImageModel

class Command(BaseCommand):
    help = ('Clears the Photologue cache for the given sizes.')
    args = '[sizes]'

    requires_model_validation = True
    can_import_settings = True

    def handle(self, *args, **options):
        return create_cache(args, options)

def create_cache(sizes, options):
    """
    Clears the cache for the given files
    """    
    size_list = [size.strip(' ,') for size in sizes]
    
    if len(size_list) < 1:
        sizes = PhotoSize.objects.all()
    else:
        sizes = PhotoSize.objects.filter(name__in=size_list)
        
    if not len(sizes):
        raise CommandError('No photo sizes were found.')
        
    print 'Flushing cache...'
    
    for cls in ImageModel.__subclasses__():
        for photosize in sizes:
            print 'Flushing %s size images' % photosize.name
            for obj in cls.objects.all():
                obj.remove_size(photosize)