from django.core.management.base import BaseCommand
import easy_thumbnails
from mediaman.models import ArtefactRepresentation
import os


class Command(BaseCommand):
    help = "Generate thumbnails for Artefact Representations"

    def handle(self, *args, **options):
        unbuffered = os.fdopen(self.stdout.fileno(), 'w', 0)
        self.stdout = unbuffered

        ars = ArtefactRepresentation.objects.all()
        self.stdout.write("Found %s images\n" % ars.count())

        for ar in ars:
            # self.stdout.write(str(ar.image) + "\n")
            if ar.image.storage.exists(ar.image):
                easy_thumbnails.files.generate_all_aliases(
                    ar.image, include_global=True)
                self.stdout.write('.')
            else:
                self.stdout.write('n')

        self.stdout.write("\nProcessed all images\n")

from django.core.management.base import BaseCommand
import easy_thumbnails
from mediaman.models import ArtefactRepresentation
import os
#import ImageFile
from PIL import ImageFile


class Command(BaseCommand):
    help = "Generate thumbnails for Artefact Representations"

    def handle(self, *args, **options):
        unbuffered = os.fdopen(self.stdout.fileno(), 'w', 0)
        self.stdout = unbuffered
        ImageFile.MAXBLOCK = 1024 * 1024 * 10  # default is 64k, fixes "Suspension not allowed here" error from PIL

        ars = ArtefactRepresentation.objects.filter(public=True)
        self.stdout.write("Found %s public images\n" % ars.count())

        for ar in ars:
            # self.stdout.write(str(ar.image) + "\n")
            if ar.image.storage.exists(ar.image):
                easy_thumbnails.files.generate_all_aliases(
                    ar.image, include_global=True)
                self.stdout.write('.')
            else:
                self.stdout.write('n')

        self.stdout.write("\nProcessed all images\n")

Update bulk image generation command
Update bulk image generation command

  from django.core.management.base import BaseCommand
  import easy_thumbnails
  from mediaman.models import ArtefactRepresentation
  import os
+ #import ImageFile
+ from PIL import ImageFile
  
  
  class Command(BaseCommand):
      help = "Generate thumbnails for Artefact Representations"
  
      def handle(self, *args, **options):
          unbuffered = os.fdopen(self.stdout.fileno(), 'w', 0)
          self.stdout = unbuffered
+         ImageFile.MAXBLOCK = 1024 * 1024 * 10  # default is 64k, fixes "Suspension not allowed here" error from PIL
  
-         ars = ArtefactRepresentation.objects.all()
+         ars = ArtefactRepresentation.objects.filter(public=True)
-         self.stdout.write("Found %s images\n" % ars.count())
+         self.stdout.write("Found %s public images\n" % ars.count())
  
          for ar in ars:
              # self.stdout.write(str(ar.image) + "\n")
              if ar.image.storage.exists(ar.image):
                  easy_thumbnails.files.generate_all_aliases(
                      ar.image, include_global=True)
                  self.stdout.write('.')
              else:
                  self.stdout.write('n')
  
          self.stdout.write("\nProcessed all images\n")
  
Update bulk image generation command
## Code Before:
from django.core.management.base import BaseCommand
import easy_thumbnails
from mediaman.models import ArtefactRepresentation
import os


class Command(BaseCommand):
    help = "Generate thumbnails for Artefact Representations"

    def handle(self, *args, **options):
        unbuffered = os.fdopen(self.stdout.fileno(), 'w', 0)
        self.stdout = unbuffered

        ars = ArtefactRepresentation.objects.all()
        self.stdout.write("Found %s images\n" % ars.count())

        for ar in ars:
            # self.stdout.write(str(ar.image) + "\n")
            if ar.image.storage.exists(ar.image):
                easy_thumbnails.files.generate_all_aliases(
                    ar.image, include_global=True)
                self.stdout.write('.')
            else:
                self.stdout.write('n')

        self.stdout.write("\nProcessed all images\n")

## Instruction:
Update bulk image generation command
## Code After:
from django.core.management.base import BaseCommand
import easy_thumbnails
from mediaman.models import ArtefactRepresentation
import os
#import ImageFile
from PIL import ImageFile


class Command(BaseCommand):
    help = "Generate thumbnails for Artefact Representations"

    def handle(self, *args, **options):
        unbuffered = os.fdopen(self.stdout.fileno(), 'w', 0)
        self.stdout = unbuffered
        ImageFile.MAXBLOCK = 1024 * 1024 * 10  # default is 64k, fixes "Suspension not allowed here" error from PIL

        ars = ArtefactRepresentation.objects.filter(public=True)
        self.stdout.write("Found %s public images\n" % ars.count())

        for ar in ars:
            # self.stdout.write(str(ar.image) + "\n")
            if ar.image.storage.exists(ar.image):
                easy_thumbnails.files.generate_all_aliases(
                    ar.image, include_global=True)
                self.stdout.write('.')
            else:
                self.stdout.write('n')

        self.stdout.write("\nProcessed all images\n")
