From 7fb89e4dbe2cbed4ef37e13073d4fa3f2a650049 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 7 Apr 2020 08:08:54 +1000 Subject: [PATCH] Check for missing part thumbnails when the server first runs --- InvenTree/part/apps.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/InvenTree/part/apps.py b/InvenTree/part/apps.py index 43f6429c19..ae17f7ffe0 100644 --- a/InvenTree/part/apps.py +++ b/InvenTree/part/apps.py @@ -1,7 +1,36 @@ 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")