From e561b3a4fcf94c5a93b4c9353f9738796e948f95 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 13 Jan 2021 21:51:55 +1100 Subject: [PATCH] Add StockItemLabel templates --- InvenTree/label/apps.py | 65 ++++++++++++++++++++- InvenTree/label/templates/stockitem/qr.html | 16 +++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 InvenTree/label/templates/stockitem/qr.html diff --git a/InvenTree/label/apps.py b/InvenTree/label/apps.py index 6f7e25bd9f..74db58fe92 100644 --- a/InvenTree/label/apps.py +++ b/InvenTree/label/apps.py @@ -27,7 +27,70 @@ class LabelConfig(AppConfig): if they do not already exist """ - pass + try: + from .models import StockItemLabel + except: + # Database might not by ready yet + return + + src_dir = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + 'templates', + 'stockitem', + ) + + dst_dir = os.path.join( + settings.MEDIA_ROOT, + 'label', + 'inventree', + 'stockitem', + ) + + if not os.path.exists(dst_dir): + logger.info(f"Creating missing directory: '{dst_dir}'") + os.makedirs(dst_dir, exist_ok=True) + + labels = [ + { + 'file': 'qr.html', + 'name': 'QR Code', + 'description': 'Simple QR code label', + }, + ] + + for label in labels: + + filename = os.path.join( + 'label', + 'inventree', + 'stockitem', + label['file'], + ) + + # Check if the file exists in the media directory + src_file = os.path.join(src_dir, label['file']) + dst_file = os.path.join(settings.MEDIA_ROOT, filename) + + if not os.path.exists(dst_file): + logger.info(f"Copying label template '{dst_file}'") + shutil.copyfile(src_file, dst_file) + + # Check if a label matching the template already exists + if StockItemLabel.objects.filter(label=filename).exists(): + continue + + logger.info(f"Creating entry for StockItemLabel '{label['name']}'") + + try: + StockItemLabel.objects.create( + name=label['name'], + description=label['description'], + label=filename, + filters='', + enabled=True + ) + except IntegrityError: + pass def create_stock_location_labels(self): """ diff --git a/InvenTree/label/templates/stockitem/qr.html b/InvenTree/label/templates/stockitem/qr.html new file mode 100644 index 0000000000..9cd9d20769 --- /dev/null +++ b/InvenTree/label/templates/stockitem/qr.html @@ -0,0 +1,16 @@ + + +