from __future__ import unicode_literals

from django.apps import AppConfig


class PartConfig(AppConfig):
    name = 'part'

from __future__ import unicode_literals

import os

from django.db.utils import OperationalError, ProgrammingError
from django.apps import AppConfig
from django.conf import settings


class PartConfig(AppConfig):
    name = 'part'

    def ready(self):
        """
        This function is called whenever the Part app is loaded.
        """

        self.generate_part_thumbnails()

    def generate_part_thumbnails(self):
        from .models import Part

        print("Checking Part image thumbnails")

        try:
            for part in Part.objects.all():
                if part.image:
                    url = part.image.thumbnail.name
                    #if url.startswith('/'):
                    #    url = url[1:]
                    loc = os.path.join(settings.MEDIA_ROOT, url)
                    if not os.path.exists(loc):
                        print("InvenTree: Generating thumbnail for Part '{p}'".format(p=part.name))
                        part.image.render_variations(replace=False)
        except (OperationalError, ProgrammingError):
            print("Could not generate Part thumbnails")

Check for missing part thumbnails when the server first runs
Check for missing part thumbnails when the server first runs

  from __future__ import unicode_literals
  
+ import os
+ 
+ from django.db.utils import OperationalError, ProgrammingError
  from django.apps import AppConfig
+ from django.conf import settings
  
  
  class PartConfig(AppConfig):
      name = 'part'
  
+     def ready(self):
+         """
+         This function is called whenever the Part app is loaded.
+         """
+ 
+         self.generate_part_thumbnails()
+ 
+     def generate_part_thumbnails(self):
+         from .models import Part
+ 
+         print("Checking Part image thumbnails")
+ 
+         try:
+             for part in Part.objects.all():
+                 if part.image:
+                     url = part.image.thumbnail.name
+                     #if url.startswith('/'):
+                     #    url = url[1:]
+                     loc = os.path.join(settings.MEDIA_ROOT, url)
+                     if not os.path.exists(loc):
+                         print("InvenTree: Generating thumbnail for Part '{p}'".format(p=part.name))
+                         part.image.render_variations(replace=False)
+         except (OperationalError, ProgrammingError):
+             print("Could not generate Part thumbnails")
+ 
Check for missing part thumbnails when the server first runs
## Code Before:
from __future__ import unicode_literals

from django.apps import AppConfig


class PartConfig(AppConfig):
    name = 'part'

## Instruction:
Check for missing part thumbnails when the server first runs
## Code After:
from __future__ import unicode_literals

import os

from django.db.utils import OperationalError, ProgrammingError
from django.apps import AppConfig
from django.conf import settings


class PartConfig(AppConfig):
    name = 'part'

    def ready(self):
        """
        This function is called whenever the Part app is loaded.
        """

        self.generate_part_thumbnails()

    def generate_part_thumbnails(self):
        from .models import Part

        print("Checking Part image thumbnails")

        try:
            for part in Part.objects.all():
                if part.image:
                    url = part.image.thumbnail.name
                    #if url.startswith('/'):
                    #    url = url[1:]
                    loc = os.path.join(settings.MEDIA_ROOT, url)
                    if not os.path.exists(loc):
                        print("InvenTree: Generating thumbnail for Part '{p}'".format(p=part.name))
                        part.image.render_variations(replace=False)
        except (OperationalError, ProgrammingError):
            print("Could not generate Part thumbnails")
