2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 20:45:44 +00:00

Merge remote-tracking branch 'inventree/master' into partial-shipment

# Conflicts:
#	InvenTree/order/api.py
This commit is contained in:
Oliver
2021-12-04 09:35:54 +11:00
18 changed files with 4326 additions and 428 deletions

View File

@ -293,6 +293,7 @@ class POLineItemList(generics.ListCreateAPIView):
try:
kwargs['part_detail'] = str2bool(self.request.query_params.get('part_detail', False))
kwargs['order_detail'] = str2bool(self.request.query_params.get('order_detail', False))
except AttributeError:
pass
@ -300,6 +301,28 @@ class POLineItemList(generics.ListCreateAPIView):
return self.serializer_class(*args, **kwargs)
def filter_queryset(self, queryset):
"""
Additional filtering options
"""
params = self.request.query_params
queryset = super().filter_queryset(queryset)
base_part = params.get('base_part', None)
if base_part:
try:
base_part = Part.objects.get(pk=base_part)
queryset = queryset.filter(part__part=base_part)
except (ValueError, Part.DoesNotExist):
pass
return queryset
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,

View File

@ -141,12 +141,17 @@ class POLineItemSerializer(InvenTreeModelSerializer):
part_detail = kwargs.pop('part_detail', False)
order_detail = kwargs.pop('order_detail', False)
super().__init__(*args, **kwargs)
if part_detail is not True:
self.fields.pop('part_detail')
self.fields.pop('supplier_part_detail')
if order_detail is not True:
self.fields.pop('order_detail')
quantity = serializers.FloatField(default=1)
received = serializers.FloatField(default=0)
@ -168,6 +173,8 @@ class POLineItemSerializer(InvenTreeModelSerializer):
help_text=_('Purchase price currency'),
)
order_detail = POSerializer(source='order', read_only=True, many=False)
class Meta:
model = order.models.PurchaseOrderLineItem
@ -177,6 +184,7 @@ class POLineItemSerializer(InvenTreeModelSerializer):
'reference',
'notes',
'order',
'order_detail',
'part',
'part_detail',
'supplier_part_detail',