From a3b52dad80def84699ef3a165285a720d6911111 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 21 Dec 2022 23:40:17 +1100 Subject: [PATCH] Add user information to stocktake table --- InvenTree/part/api.py | 3 ++- InvenTree/part/serializers.py | 6 ++++- .../templates/js/translated/attachment.js | 2 +- InvenTree/templates/js/translated/part.js | 24 +++++++++++++------ 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 0a15324e61..2d2ca722e4 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1730,12 +1730,13 @@ class PartStocktakeList(ListCreateAPI): ordering_fields = [ 'part', + 'quantity', 'date', 'user', ] # Reverse date ordering by default - ordering = '-date' + ordering = '-pk' class BomFilter(rest_filters.FilterSet): diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 9f995c0161..541f1542d7 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -24,7 +24,8 @@ from InvenTree.serializers import (DataFileExtractSerializer, InvenTreeDecimalField, InvenTreeImageSerializerField, InvenTreeModelSerializer, - InvenTreeMoneySerializer, RemoteImageMixin) + InvenTreeMoneySerializer, RemoteImageMixin, + UserSerializer) from InvenTree.status_codes import BuildStatus from .models import (BomItem, BomItemSubstitute, Part, PartAttachment, @@ -510,6 +511,8 @@ class PartStocktakeSerializer(InvenTreeModelSerializer): quantity = serializers.FloatField() + user_detail = UserSerializer(source='user', read_only=True, many=False) + class Meta: """Metaclass options""" @@ -521,6 +524,7 @@ class PartStocktakeSerializer(InvenTreeModelSerializer): 'quantity', 'note', 'user', + 'user_detail', ] read_only_fields = [ diff --git a/InvenTree/templates/js/translated/attachment.js b/InvenTree/templates/js/translated/attachment.js index 2e6b53ffa7..1cbd241e20 100644 --- a/InvenTree/templates/js/translated/attachment.js +++ b/InvenTree/templates/js/translated/attachment.js @@ -292,7 +292,7 @@ function loadAttachmentTable(url, options) { var html = renderDate(value); if (row.user_detail) { - html += `${row.user_detail.username}`; + html += `${row.user_detail.username}`; } return html; diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index eb8ddbaf73..eb414f3d1e 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -840,22 +840,32 @@ function loadPartStocktakeTable(partId, options={}) { return '{% trans "No stocktake information available" %}'; }, columns: [ - { - field: 'date', - title: '{% trans "Date" %}', - }, { field: 'quantity', title: '{% trans "Quantity" %}', + switchable: false, + sortable: true, }, { field: 'note', title: '{% trans "Notes" %}', + switchable: true, }, { - field: 'user', - title: '{% trans "User" %}', - } + field: 'date', + title: '{% trans "Date" %}', + switchable: false, + sortable: true, + formatter: function(value, row) { + var html = renderDate(value); + + if (row.user_detail) { + html += `${row.user_detail.username}`; + } + + return html; + } + }, ] }); }