2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-09-09 20:21:24 +00:00

Tests for POLineItem creation form

This commit is contained in:
Oliver Walters
2019-09-13 20:01:41 +10:00
parent 7c6901f445
commit d515e2d968
2 changed files with 80 additions and 4 deletions

View File

@@ -611,13 +611,30 @@ class POLineItemCreate(AjaxCreateView):
valid = form.is_valid()
# Extract the SupplierPart ID from the form
part_id = form['part'].value()
# Extract the Order ID from the form
order_id = form['order'].value()
try:
SupplierPart.objects.get(id=part_id)
order = PurchaseOrder.objects.get(id=order_id)
except (ValueError, PurchaseOrder.DoesNotExist):
order = None
form.errors['order'] = [_('Invalid Purchase Order')]
valid = False
try:
sp = SupplierPart.objects.get(id=part_id)
if order is not None:
if not sp.supplier == order.supplier:
form.errors['part'] = [_('Supplier must match for Part and Order')]
valid = False
except (SupplierPart.DoesNotExist, ValueError):
valid = False
form.errors['part'] = [_('This field is required')]
form.errors['part'] = [_('Invalid SupplierPart selection')]
data = {
'form_valid': valid,
@@ -639,6 +656,11 @@ class POLineItemCreate(AjaxCreateView):
form = super().get_form()
# Limit the available to orders to ones that are PENDING
query = form.fields['order'].queryset
query = query.filter(status=OrderStatus.PENDING)
form.fields['order'].queryset = query
order_id = form['order'].value()
try:
@@ -660,7 +682,7 @@ class POLineItemCreate(AjaxCreateView):
form.fields['part'].queryset = query
form.fields['order'].widget = HiddenInput()
except PurchaseOrder.DoesNotExist:
except (ValueError, PurchaseOrder.DoesNotExist):
pass
return form