Apply same fix to PurchaseOrder and SalesOrder lists

This commit is contained in:
Oliver 2021-10-14 14:31:25 +11:00
parent 233672d822
commit e46875b0a3
4 changed files with 23 additions and 5 deletions

View File

@ -34,8 +34,6 @@ class InvenTreeOrderingFilter(OrderingFilter):
Ordering fields should be mapped to separate fields
"""
idx = 0
ordering_initial = ordering
ordering = []

View File

@ -72,7 +72,7 @@ class BuildSerializer(InvenTreeModelSerializer):
)
)
# Annotate with a "integer" version of the reference field, to be used for natural sorting
# Annotate with an "integer" version of the reference field, to be used for natural sorting
queryset = queryset.annotate(
integer_ref=Cast('reference', output_field=IntegerField())
)

View File

@ -152,9 +152,13 @@ class POList(generics.ListCreateAPIView):
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
filters.OrderingFilter,
InvenTreeOrderingFilter,
]
ordering_field_aliases = {
'reference': ['integer_ref', 'reference'],
}
filter_fields = [
'supplier',
]
@ -504,9 +508,13 @@ class SOList(generics.ListCreateAPIView):
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
filters.OrderingFilter,
InvenTreeOrderingFilter,
]
ordering_field_aliases = {
'reference': ['integer_ref', 'reference'],
}
filter_fields = [
'customer',
]

View File

@ -4,6 +4,7 @@ JSON serializers for the Order API
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db.models.fields import IntegerField
from django.utils.translation import ugettext_lazy as _
@ -11,6 +12,7 @@ from django.core.exceptions import ValidationError as DjangoValidationError
from django.db import models, transaction
from django.db.models import Case, When, Value
from django.db.models import BooleanField, ExpressionWrapper, F
from django.db.models.functions import Cast
from rest_framework import serializers
from rest_framework.serializers import ValidationError
@ -73,6 +75,11 @@ class POSerializer(InvenTreeModelSerializer):
)
)
# Annotate with an "integer" version of the reference field, to be used for natural sorting
queryset = queryset.annotate(
integer_ref=Cast('reference', output_field=IntegerField())
)
return queryset
supplier_detail = CompanyBriefSerializer(source='supplier', many=False, read_only=True)
@ -428,6 +435,11 @@ class SalesOrderSerializer(InvenTreeModelSerializer):
)
)
# Annotate with an "integer" version of the reference field, to be used for natural sorting
queryset = queryset.annotate(
integer_ref=Cast('reference', output_field=IntegerField())
)
return queryset
customer_detail = CompanyBriefSerializer(source='customer', many=False, read_only=True)