From 36cf614aed38bdaf91bcdd0ee7191d6f12ea08ea Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 18 Jul 2021 21:11:53 +1000 Subject: [PATCH] Add "level" to PartCategory serializer - Also use tree ordering by default --- InvenTree/part/api.py | 10 +++++++++- InvenTree/part/serializers.py | 7 +++++-- InvenTree/templates/js/model_renderers.js | 8 +++----- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 9abee816fa..3a5fee4e3d 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -118,9 +118,17 @@ class CategoryList(generics.ListCreateAPIView): ordering_fields = [ 'name', + 'level', + 'tree_id', + 'lft', ] - ordering = 'name' + # Use hierarchical ordering by default + ordering = [ + 'tree_id', + 'lft', + 'name' + ] search_fields = [ 'name', diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 6627639bca..92dda58590 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -32,6 +32,8 @@ class CategorySerializer(InvenTreeModelSerializer): parts = serializers.IntegerField(source='item_count', read_only=True) + level = serializers.IntegerField(read_only=True) + class Meta: model = PartCategory fields = [ @@ -40,10 +42,11 @@ class CategorySerializer(InvenTreeModelSerializer): 'description', 'default_location', 'default_keywords', - 'pathstring', - 'url', + 'level', 'parent', 'parts', + 'pathstring', + 'url', ] diff --git a/InvenTree/templates/js/model_renderers.js b/InvenTree/templates/js/model_renderers.js index caa209dc90..3b1b9c82d9 100644 --- a/InvenTree/templates/js/model_renderers.js +++ b/InvenTree/templates/js/model_renderers.js @@ -154,7 +154,9 @@ function renderOwner(name, data, parameters, options) { // Renderer for "PartCategory" model function renderPartCategory(name, data, parameters, options) { - var html = `${data.name}`; + var level = '-'.repeat(data.level); + + var html = `${level} ${data.pathstring}`; if (data.description) { html += ` - ${data.description}`; @@ -162,10 +164,6 @@ function renderPartCategory(name, data, parameters, options) { html += `{% trans "Category ID" %}: ${data.pk}`; - if (data.pathstring) { - html += `

${data.pathstring}

`; - } - return html; }