2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-09-04 01:35:54 +00:00

Allow user to set "depth" of exported multi-level BOM

This commit is contained in:
Oliver Walters
2020-08-16 08:29:36 +10:00
parent 411e7507a3
commit b27ecf54d7
3 changed files with 23 additions and 4 deletions

View File

@@ -1392,10 +1392,22 @@ class BomDownload(AjaxView):
cascade = str2bool(request.GET.get('cascade', False))
levels = request.GET.get('levels', None)
if levels is not None:
try:
levels = int(levels)
if levels <= 0:
levels = None
except ValueError:
levels = None
if not IsValidBOMFormat(export_format):
export_format = 'csv'
return ExportBom(part, fmt=export_format, cascade=cascade)
return ExportBom(part, fmt=export_format, cascade=cascade, max_levels=levels)
def get_data(self):
return {
@@ -1419,6 +1431,7 @@ class BomExport(AjaxView):
# Extract POSTed form data
fmt = request.POST.get('file_format', 'csv').lower()
cascade = str2bool(request.POST.get('cascading', False))
levels = request.POST.get('levels', None)
try:
part = Part.objects.get(pk=self.kwargs['pk'])
@@ -1434,6 +1447,9 @@ class BomExport(AjaxView):
url += '?file_format=' + fmt
url += '&cascade=' + str(cascade)
if levels:
url += '&levels=' + str(levels)
data = {
'form_valid': part is not None,
'url': url,