InvenTree/InvenTree/part/part.py

38 lines
928 B
Python

"""Functionality for Part import template.
Primarily Part import tools.
"""
from InvenTree.helpers import DownloadFile, GetExportFormats
from .admin import PartImportResource
from .models import Part
def IsValidPartFormat(fmt):
"""Test if a file format specifier is in the valid list of part import template file formats."""
return fmt.strip().lower() in GetExportFormats()
def MakePartTemplate(fmt):
"""Generate a part import template file (for user download)."""
fmt = fmt.strip().lower()
if not IsValidPartFormat(fmt):
fmt = 'csv'
# Create an "empty" queryset, essentially.
# This will then export just the row headers!
query = Part.objects.filter(pk=None)
dataset = PartImportResource().export(
queryset=query,
importing=True
)
data = dataset.export(fmt)
filename = 'InvenTree_Part_Template.' + fmt
return DownloadFile(data, filename)