35 lines
906 B
Python
35 lines
906 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)
|