diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 496368e457..0a15324e61 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1709,13 +1709,20 @@ class PartStocktakeFilter(rest_filters.FilterSet): ] -class PartStocktakeList(ListAPI): +class PartStocktakeList(ListCreateAPI): """API endpoint for listing part stocktake information""" queryset = PartStocktake.objects.all() serializer_class = part_serializers.PartStocktakeSerializer filterset_class = PartStocktakeFilter + def get_serializer_context(self): + """Extend serializer context data""" + context = super().get_serializer_context() + context['request'] = self.request + + return context + filter_backends = [ DjangoFilterBackend, filters.OrderingFilter, diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 1842f9003d..9f995c0161 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -519,9 +519,26 @@ class PartStocktakeSerializer(InvenTreeModelSerializer): 'date', 'part', 'quantity', + 'note', 'user', ] + read_only_fields = [ + 'date', + 'user', + ] + + def save(self): + """Called when this serializer is saved""" + + data = self.validated_data + + # Add in user information automatically + request = self.context['request'] + data['user'] = request.user + + super().save() + class PartPricingSerializer(InvenTreeModelSerializer): """Serializer for Part pricing information"""