src/hdalab/management/commands/calculate_preview.py
changeset 492 19220d52bce7
child 693 09e00f38d177
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/management/commands/calculate_preview.py	Sun Mar 08 14:53:52 2015 +0100
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+'''
+Created on Jan 30, 2012
+
+@author: ymh
+'''
+
+import logging
+from optparse import make_option
+
+from django.conf import settings
+from django.core.management.base import NoArgsCommand
+from django.core.management.color import no_style
+
+from hdabo.utils import show_progress
+from hdalab.models.renkan import HdalabRenkan
+from hdalab.services import renkan_capture_preview
+
+
+logger = logging.getLogger(__name__)
+
+class Command(NoArgsCommand):
+    '''
+    calculate renkan preview.
+    '''
+    options = ''
+    help = """calculate renkan preview."""
+    
+    option_list = NoArgsCommand.option_list + (
+        make_option('--all',
+            action='store_true',
+            dest='all',
+            default=False,
+            help='force all tags to be updated, not only those not yet processed'),
+    )
+    
+
+    def handle_noargs(self, **options):
+                
+        self.style = no_style()
+        
+        self.all = options.get('all', False)
+
+        queryset = HdalabRenkan.objects.filter(state=HdalabRenkan.PUBLISHED)
+        
+        if not self.all:
+            queryset = queryset.filter(renkan__image = settings.DEFAULT_RENKAN_ICON)
+
+        count = queryset.count()
+
+        writer = None
+        for i,hdalab_renkan in enumerate(queryset.select_related()):
+            writer = show_progress(i+1, count, hdalab_renkan.renkan.title, 50, writer)
+            if hdalab_renkan.renkan.image and hdalab_renkan.renkan.image != settings.DEFAULT_RENKAN_ICON:
+                hdalab_renkan.renkan.image.delete(False)
+                hdalab_renkan.renkan.image.delete_thumbnails()
+
+            renkan_capture_preview(hdalab_renkan)
+