|
492
|
1 |
# -*- coding: utf-8 -*- |
|
|
2 |
''' |
|
693
|
3 |
Commande permettant la création des miniatures renkan. |
|
|
4 |
|
|
|
5 |
Par défaut, seul les renkan pour lesquel c'est nécessaire sont traités (ceux qui sont publié) |
|
|
6 |
Les miniatures sont calculées immédiatement de façons synchrone. |
|
492
|
7 |
|
|
693
|
8 |
**Usage**: ``django-admin calculate_preview [options]`` |
|
|
9 |
|
|
|
10 |
**Options spécifiques:** |
|
|
11 |
|
|
|
12 |
- *\-\-all*: Capture les miniatures pours tous les renkan publié. Remplace les miniatures existantes. |
|
|
13 |
|
|
492
|
14 |
''' |
|
|
15 |
|
|
|
16 |
import logging |
|
|
17 |
from optparse import make_option |
|
|
18 |
|
|
|
19 |
from django.conf import settings |
|
|
20 |
from django.core.management.base import NoArgsCommand |
|
|
21 |
from django.core.management.color import no_style |
|
|
22 |
|
|
|
23 |
from hdabo.utils import show_progress |
|
|
24 |
from hdalab.models.renkan import HdalabRenkan |
|
|
25 |
from hdalab.services import renkan_capture_preview |
|
|
26 |
|
|
|
27 |
|
|
|
28 |
logger = logging.getLogger(__name__) |
|
|
29 |
|
|
|
30 |
class Command(NoArgsCommand): |
|
|
31 |
''' |
|
|
32 |
calculate renkan preview. |
|
|
33 |
''' |
|
|
34 |
options = '' |
|
|
35 |
help = """calculate renkan preview.""" |
|
693
|
36 |
|
|
492
|
37 |
option_list = NoArgsCommand.option_list + ( |
|
|
38 |
make_option('--all', |
|
|
39 |
action='store_true', |
|
|
40 |
dest='all', |
|
|
41 |
default=False, |
|
|
42 |
help='force all tags to be updated, not only those not yet processed'), |
|
|
43 |
) |
|
693
|
44 |
|
|
492
|
45 |
|
|
|
46 |
def handle_noargs(self, **options): |
|
693
|
47 |
|
|
492
|
48 |
self.style = no_style() |
|
693
|
49 |
|
|
492
|
50 |
self.all = options.get('all', False) |
|
|
51 |
|
|
|
52 |
queryset = HdalabRenkan.objects.filter(state=HdalabRenkan.PUBLISHED) |
|
693
|
53 |
|
|
492
|
54 |
if not self.all: |
|
|
55 |
queryset = queryset.filter(renkan__image = settings.DEFAULT_RENKAN_ICON) |
|
|
56 |
|
|
|
57 |
count = queryset.count() |
|
|
58 |
|
|
|
59 |
writer = None |
|
|
60 |
for i,hdalab_renkan in enumerate(queryset.select_related()): |
|
|
61 |
writer = show_progress(i+1, count, hdalab_renkan.renkan.title, 50, writer) |
|
|
62 |
if hdalab_renkan.renkan.image and hdalab_renkan.renkan.image != settings.DEFAULT_RENKAN_ICON: |
|
|
63 |
hdalab_renkan.renkan.image.delete(False) |
|
|
64 |
hdalab_renkan.renkan.image.delete_thumbnails() |
|
|
65 |
|
|
|
66 |
renkan_capture_preview(hdalab_renkan) |
|
|
67 |
|