2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-30 18:50:53 +00:00

List PO/SO/BO by reference in API (#4083)

* API: Add filter by reference to SO, PO. Add filtering by customer to SO list

* API: Add filtering by reference to Build order list

* Add test for changes

* Increment API version

* Add test for BO reference

* Add missing description of API version
This commit is contained in:
miggland
2022-12-21 11:48:30 +01:00
committed by GitHub
parent 0e8563ebee
commit d4341e81f2
5 changed files with 59 additions and 3 deletions

View File

@ -78,8 +78,15 @@ class GeneralExtraLineList:
]
class PurchaseOrderFilter(rest_filters.FilterSet):
"""Custom API filters for the PurchaseOrderList endpoint."""
class OrderFilter(rest_filters.FilterSet):
"""Base class for custom API filters for the OrderList endpoint."""
# Exact match for reference
reference = rest_filters.CharFilter(
label='Filter by exact reference',
field_name='reference',
lookup_expr="iexact"
)
assigned_to_me = rest_filters.BooleanFilter(label='assigned_to_me', method='filter_assigned_to_me')
@ -97,6 +104,9 @@ class PurchaseOrderFilter(rest_filters.FilterSet):
return queryset
class PurchaseOrderFilter(OrderFilter):
"""Custom API filters for the PurchaseOrderList endpoint."""
class Meta:
"""Metaclass options."""
@ -106,6 +116,17 @@ class PurchaseOrderFilter(rest_filters.FilterSet):
]
class SalesOrderFilter(OrderFilter):
"""Custom API filters for the SalesOrderList endpoint."""
class Meta:
"""Metaclass options."""
model = models.SalesOrder
fields = [
'customer',
]
class PurchaseOrderList(APIDownloadMixin, ListCreateAPI):
"""API endpoint for accessing a list of PurchaseOrder objects.
@ -613,6 +634,7 @@ class SalesOrderList(APIDownloadMixin, ListCreateAPI):
queryset = models.SalesOrder.objects.all()
serializer_class = serializers.SalesOrderSerializer
filterset_class = SalesOrderFilter
def create(self, request, *args, **kwargs):
"""Save user information on create."""