src/hdalab/management/commands/calculate_preview.py
changeset 492 19220d52bce7
child 693 09e00f38d177
equal deleted inserted replaced
491:8444b4f67e45 492:19220d52bce7
       
     1 # -*- coding: utf-8 -*-
       
     2 '''
       
     3 Created on Jan 30, 2012
       
     4 
       
     5 @author: ymh
       
     6 '''
       
     7 
       
     8 import logging
       
     9 from optparse import make_option
       
    10 
       
    11 from django.conf import settings
       
    12 from django.core.management.base import NoArgsCommand
       
    13 from django.core.management.color import no_style
       
    14 
       
    15 from hdabo.utils import show_progress
       
    16 from hdalab.models.renkan import HdalabRenkan
       
    17 from hdalab.services import renkan_capture_preview
       
    18 
       
    19 
       
    20 logger = logging.getLogger(__name__)
       
    21 
       
    22 class Command(NoArgsCommand):
       
    23     '''
       
    24     calculate renkan preview.
       
    25     '''
       
    26     options = ''
       
    27     help = """calculate renkan preview."""
       
    28     
       
    29     option_list = NoArgsCommand.option_list + (
       
    30         make_option('--all',
       
    31             action='store_true',
       
    32             dest='all',
       
    33             default=False,
       
    34             help='force all tags to be updated, not only those not yet processed'),
       
    35     )
       
    36     
       
    37 
       
    38     def handle_noargs(self, **options):
       
    39                 
       
    40         self.style = no_style()
       
    41         
       
    42         self.all = options.get('all', False)
       
    43 
       
    44         queryset = HdalabRenkan.objects.filter(state=HdalabRenkan.PUBLISHED)
       
    45         
       
    46         if not self.all:
       
    47             queryset = queryset.filter(renkan__image = settings.DEFAULT_RENKAN_ICON)
       
    48 
       
    49         count = queryset.count()
       
    50 
       
    51         writer = None
       
    52         for i,hdalab_renkan in enumerate(queryset.select_related()):
       
    53             writer = show_progress(i+1, count, hdalab_renkan.renkan.title, 50, writer)
       
    54             if hdalab_renkan.renkan.image and hdalab_renkan.renkan.image != settings.DEFAULT_RENKAN_ICON:
       
    55                 hdalab_renkan.renkan.image.delete(False)
       
    56                 hdalab_renkan.renkan.image.delete_thumbnails()
       
    57 
       
    58             renkan_capture_preview(hdalab_renkan)
       
    59