mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Generate a list of allowed BOM items and pass to the form template
This commit is contained in:
parent
3930651c59
commit
bd30ac037b
@ -678,6 +678,18 @@ class Part(models.Model):
|
|||||||
parts.append(bom.sub_part)
|
parts.append(bom.sub_part)
|
||||||
return parts
|
return parts
|
||||||
|
|
||||||
|
def get_allowed_bom_items(self):
|
||||||
|
""" Return a list of parts which can be added to a BOM for this part.
|
||||||
|
|
||||||
|
- Exclude parts which are not 'component' parts
|
||||||
|
- Exclude parts which this part is in the BOM for
|
||||||
|
"""
|
||||||
|
|
||||||
|
parts = Part.objects.filter(component=True)
|
||||||
|
parts = parts.exclude(id__in=[part.id for part in self.used_in.all()])
|
||||||
|
|
||||||
|
return parts
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def supplier_count(self):
|
def supplier_count(self):
|
||||||
""" Return the number of supplier parts available for this part """
|
""" Return the number of supplier parts available for this part """
|
||||||
|
@ -49,6 +49,9 @@
|
|||||||
{% if item.column.guess == 'Part' %}
|
{% if item.column.guess == 'Part' %}
|
||||||
<select class='select' id='id_part_{{ row.index }}' name='part_select_{{ row.index }}'>
|
<select class='select' id='id_part_{{ row.index }}' name='part_select_{{ row.index }}'>
|
||||||
<option value=''>---------</option>
|
<option value=''>---------</option>
|
||||||
|
{% for part in allowed_parts_list %}
|
||||||
|
<option value='{{ part.id }}'>{{ part.full_name }} - {{ part.description }}</option>
|
||||||
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
<br>
|
<br>
|
||||||
{{ item.cell }}
|
{{ item.cell }}
|
||||||
|
@ -654,6 +654,7 @@ class BomUpload(FormView):
|
|||||||
bom_columns = []
|
bom_columns = []
|
||||||
bom_rows = []
|
bom_rows = []
|
||||||
missing_columns = []
|
missing_columns = []
|
||||||
|
allowed_parts = []
|
||||||
|
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
@ -703,9 +704,16 @@ class BomUpload(FormView):
|
|||||||
ctx['bom_columns'] = self.bom_columns
|
ctx['bom_columns'] = self.bom_columns
|
||||||
ctx['bom_rows'] = rows
|
ctx['bom_rows'] = rows
|
||||||
ctx['missing_columns'] = self.missing_columns
|
ctx['missing_columns'] = self.missing_columns
|
||||||
|
ctx['allowed_parts_list'] = self.allowed_parts
|
||||||
|
|
||||||
return ctx
|
return ctx
|
||||||
|
|
||||||
|
def getAllowedParts(self):
|
||||||
|
""" Return a queryset of parts which are allowed to be added to this BOM.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return self.part.get_allowed_bom_items()
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
""" Perform the initial 'GET' request.
|
""" Perform the initial 'GET' request.
|
||||||
|
|
||||||
@ -915,6 +923,7 @@ class BomUpload(FormView):
|
|||||||
self.request = request
|
self.request = request
|
||||||
|
|
||||||
self.part = get_object_or_404(Part, pk=self.kwargs['pk'])
|
self.part = get_object_or_404(Part, pk=self.kwargs['pk'])
|
||||||
|
self.allowed_parts = self.getAllowedParts()
|
||||||
self.form = self.get_form(self.get_form_class())
|
self.form = self.get_form(self.get_form_class())
|
||||||
|
|
||||||
# Did the user POST a file named bom_file?
|
# Did the user POST a file named bom_file?
|
||||||
|
Loading…
Reference in New Issue
Block a user