From 60050e9f32e59a38adfce0691eea78ddad9f2954 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 28 Jun 2019 10:20:37 +1000 Subject: [PATCH] Don't restrict BomItem form to active parts for editing --- InvenTree/part/templates/part/part_base.html | 4 +++ InvenTree/part/views.py | 37 ++------------------ 2 files changed, 7 insertions(+), 34 deletions(-) diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html index 27852b5859..e7a32f774b 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -107,6 +107,7 @@ In Stock {{ part.total_stock }} + {% if not part.is_template %} {% if part.allocation_count > 0 %} Allocated @@ -119,10 +120,12 @@ {{ part.on_order }} {% endif %} + {% endif %} Total Available {{ part.net_stock }} + {% if not part.is_template %} {% if part.assembly %} @@ -139,6 +142,7 @@ {{ part.quantity_being_built }} {% endif %} + {% endif %} {% endif %} diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 99ea6680e3..94d433a30a 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -1042,6 +1042,9 @@ class BomItemCreate(AjaxCreateView): query = query.exclude(id__in=[item.id for item in part.required_parts()]) form.fields['sub_part'].queryset = query + + form.fields['part'].widget = HiddenInput() + except Part.DoesNotExist: pass @@ -1076,40 +1079,6 @@ class BomItemEdit(AjaxUpdateView): ajax_template_name = 'modal_form.html' ajax_form_title = 'Edit BOM item' - def get_form(self): - """ Override get_form() method to reduce Part selection options. - - - Do not allow part to be added to its own BOM - - Remove any Part items that are already in the BOM - """ - - form = super(AjaxCreateView, self).get_form() - - part_id = form['part'].value() - - try: - part = Part.objects.get(id=part_id) - - # Only allow active parts to be selected - query = form.fields['part'].queryset.filter(active=True) - form.fields['part'].queryset = query - - # Don't allow selection of sub_part objects which are already added to the Bom! - query = form.fields['sub_part'].queryset - - # Don't allow a part to be added to its own BOM - query = query.exclude(id=part.id) - query = query.filter(active=True) - - # Eliminate any options that are already in the BOM! - query = query.exclude(id__in=[item.id for item in part.required_parts()]) - - form.fields['sub_part'].queryset = query - except Part.DoesNotExist: - pass - - return form - class BomItemDelete(AjaxDeleteView): """ Delete view for removing BomItem """