From c103f0c100ad5ec28d987599a0d7c87b35adb007 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 19 Mar 2022 22:12:57 +1100 Subject: [PATCH] Do not generate parameter data on the server side when rendering part category templates --- InvenTree/part/api.py | 4 ++-- InvenTree/part/templates/part/category.html | 3 +-- InvenTree/part/views.py | 16 ---------------- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 684704d41f..3a2bb6eeb3 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1434,12 +1434,12 @@ class PartParameterTemplateList(generics.ListCreateAPIView): queryset = queryset.filter(pk__in=[el[0] for el in template_ids]) except (ValueError, Part.DoesNotExist): pass - + # Filtering against a "PartCategory" - return only parameter templates which are referenced by parts in this category category = params.get('category', None) if category is not None: - + try: category = PartCategory.objects.get(pk=category) cats = category.get_descendants(include_self=True) diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index 8bc045642c..6a61ef2fbf 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -227,8 +227,7 @@ loadParametricPartTable( "#parametric-part-table", { - headers: {{ headers|safe }}, - data: {{ parameters|safe }}, + category: {{ category.pk }}, } ); }); diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index fb45db8f07..9f3cd07f7c 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -988,22 +988,6 @@ class CategoryDetail(InvenTreeRoleMixin, DetailView): category = kwargs.get('object', None) if category: - cascade = kwargs.get('cascade', True) - - # Prefetch parts parameters - parts_parameters = category.prefetch_parts_parameters(cascade=cascade) - - # Get table headers (unique parameters names) - context['headers'] = category.get_unique_parameters(cascade=cascade, - prefetch=parts_parameters) - - # Insert part information - context['headers'].insert(0, 'description') - context['headers'].insert(0, 'part') - - # Get parameters data - context['parameters'] = category.get_parts_parameters(cascade=cascade, - prefetch=parts_parameters) # Insert "starred" information context['starred'] = category.is_starred_by(self.request.user)