mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Extract serial numbers from submitted form data
This commit is contained in:
parent
037232c177
commit
24c13b04b6
@ -245,9 +245,10 @@ class BuildOutputCreateSerializer(serializers.Serializer):
|
|||||||
Perform form validation
|
Perform form validation
|
||||||
"""
|
"""
|
||||||
|
|
||||||
build = self.get_build()
|
|
||||||
part = self.get_part()
|
part = self.get_part()
|
||||||
serials = None
|
|
||||||
|
# Cache a list of serial numbers (to be used in the "save" method)
|
||||||
|
self.serials = None
|
||||||
|
|
||||||
quantity = data['quantity']
|
quantity = data['quantity']
|
||||||
serial_numbers = data.get('serial_numbers', '')
|
serial_numbers = data.get('serial_numbers', '')
|
||||||
@ -255,7 +256,7 @@ class BuildOutputCreateSerializer(serializers.Serializer):
|
|||||||
if serial_numbers:
|
if serial_numbers:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
serials = extract_serial_numbers(serial_numbers, quantity, part.getLatestSerialNumberInt())
|
self.serials = extract_serial_numbers(serial_numbers, quantity, part.getLatestSerialNumberInt())
|
||||||
except DjangoValidationError as e:
|
except DjangoValidationError as e:
|
||||||
raise ValidationError({
|
raise ValidationError({
|
||||||
'serial_numbers': e.messages,
|
'serial_numbers': e.messages,
|
||||||
@ -264,7 +265,7 @@ class BuildOutputCreateSerializer(serializers.Serializer):
|
|||||||
# Check for conflicting serial numbesr
|
# Check for conflicting serial numbesr
|
||||||
existing = []
|
existing = []
|
||||||
|
|
||||||
for serial in serials:
|
for serial in self.serials:
|
||||||
if part.checkIfSerialNumberExists(serial):
|
if part.checkIfSerialNumberExists(serial):
|
||||||
existing.append(serial)
|
existing.append(serial)
|
||||||
|
|
||||||
|
@ -205,6 +205,18 @@ function createBuildOutput(build_id, options) {
|
|||||||
auto_allocate: {},
|
auto_allocate: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Work out the next available serial numbers
|
||||||
|
inventreeGet(`/api/part/${build.part}/serial-numbers/`, {}, {
|
||||||
|
success: function(data) {
|
||||||
|
if (data.next) {
|
||||||
|
fields.serial_numbers.placeholder = `{% trans "Next available serial number" %}: ${data.next}`;
|
||||||
|
} else {
|
||||||
|
fields.serial_numbers.placeholder = `{% trans "Latest serial number" %}: ${data.latest}`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async: false,
|
||||||
|
});
|
||||||
|
|
||||||
if (options.trackable_parts) {
|
if (options.trackable_parts) {
|
||||||
html += `
|
html += `
|
||||||
<div class='alert alert-block alert-info'>
|
<div class='alert alert-block alert-info'>
|
||||||
@ -229,6 +241,9 @@ function createBuildOutput(build_id, options) {
|
|||||||
confirm: true,
|
confirm: true,
|
||||||
fields: fields,
|
fields: fields,
|
||||||
preFormContent: html,
|
preFormContent: html,
|
||||||
|
onSuccess: function(response) {
|
||||||
|
location.reload();
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user