diff photologue/management/commands/plflush.py @ 71:e2868ad47a1e

For Django 1.4, using the new manage.py.
author Brian Neal <bgneal@gmail.com>
date Sat, 14 Apr 2012 16:40:29 -0500
parents madeira/photologue/management/commands/plflush.py@63e4211628e1
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photologue/management/commands/plflush.py	Sat Apr 14 16:40:29 2012 -0500
@@ -0,0 +1,35 @@
+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)