Merge pull request #1105 from SchrodingersGat/build-fix-fixes

Set the specified location of a build output
This commit is contained in:
Oliver 2020-11-05 18:25:00 +11:00 committed by GitHub
commit 7e4b84f016
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 5 deletions

View File

@ -66,7 +66,7 @@ class BuildOutputCreateForm(HelperForm):
'serial_numbers': 'fa-hashtag', 'serial_numbers': 'fa-hashtag',
} }
quantity = forms.IntegerField( output_quantity = forms.IntegerField(
label=_('Quantity'), label=_('Quantity'),
help_text=_('Enter quantity for build output'), help_text=_('Enter quantity for build output'),
) )
@ -86,7 +86,7 @@ class BuildOutputCreateForm(HelperForm):
class Meta: class Meta:
model = Build model = Build
fields = [ fields = [
'quantity', 'output_quantity',
'batch', 'batch',
'serial_numbers', 'serial_numbers',
'confirm', 'confirm',

View File

@ -182,6 +182,14 @@ class Build(MPTTModel):
blank=True, help_text=_('Extra build notes') blank=True, help_text=_('Extra build notes')
) )
@property
def active(self):
"""
Return True if this build is active
"""
return self.status in BuildStatus.ACTIVE_CODES
@property @property
def bom_items(self): def bom_items(self):
""" """
@ -594,6 +602,9 @@ class Build(MPTTModel):
- Mark the output as complete - Mark the output as complete
""" """
# Select the location for the build output
location = kwargs.get('location', self.destination)
# List the allocated BuildItem objects for the given output # List the allocated BuildItem objects for the given output
allocated_items = output.items_to_install.all() allocated_items = output.items_to_install.all()
@ -613,6 +624,7 @@ class Build(MPTTModel):
# Ensure that the output is updated correctly # Ensure that the output is updated correctly
output.build = self output.build = self
output.is_building = False output.is_building = False
output.location = location
output.save() output.save()

View File

@ -21,6 +21,7 @@ InvenTree | Allocate Parts
</div> </div>
{% else %} {% else %}
<div class='btn-group' role='group'> <div class='btn-group' role='group'>
{% if build.active %}
<button class='btn btn-primary' type='button' id='btn-create-output' title='{% trans "Create new build output" %}'> <button class='btn btn-primary' type='button' id='btn-create-output' title='{% trans "Create new build output" %}'>
<span class='fas fa-plus-circle'></span> {% trans "Create New Output" %} <span class='fas fa-plus-circle'></span> {% trans "Create New Output" %}
</button> </button>
@ -32,6 +33,7 @@ InvenTree | Allocate Parts
<button class='btn btn-danger' type='button' id='btn-unallocate' title='{% trans "Unallocate stock" %}'> <button class='btn btn-danger' type='button' id='btn-unallocate' title='{% trans "Unallocate stock" %}'>
<span class='fas fa-minus-circle'></span> {% trans "Unallocate Stock" %} <span class='fas fa-minus-circle'></span> {% trans "Unallocate Stock" %}
</button> </button>
{% endif %}
</div> </div>
<hr> <hr>
@ -74,7 +76,7 @@ InvenTree | Allocate Parts
); );
{% endfor %} {% endfor %}
{% if build.status == BuildStatus.PENDING %} {% if build.active %}
$("#btn-allocate").on('click', function() { $("#btn-allocate").on('click', function() {
launchModalForm( launchModalForm(
"{% url 'build-auto-allocate' build.id %}", "{% url 'build-auto-allocate' build.id %}",

View File

@ -188,7 +188,7 @@ class BuildOutputCreate(AjaxUpdateView):
Validation for the form: Validation for the form:
""" """
quantity = form.cleaned_data.get('quantity', None) quantity = form.cleaned_data.get('output_quantity', None)
serials = form.cleaned_data.get('serial_numbers', None) serials = form.cleaned_data.get('serial_numbers', None)
# Check that the serial numbers are valid # Check that the serial numbers are valid
@ -222,7 +222,7 @@ class BuildOutputCreate(AjaxUpdateView):
data = form.cleaned_data data = form.cleaned_data
quantity = data.get('quantity', None) quantity = data.get('output_quantity', None)
batch = data.get('batch', None) batch = data.get('batch', None)
serials = data.get('serial_numbers', None) serials = data.get('serial_numbers', None)