diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py index c8ec42d3e7..4a8e576a6d 100644 --- a/InvenTree/order/views.py +++ b/InvenTree/order/views.py @@ -1004,6 +1004,15 @@ class OrderParts(AjaxView): return ctx + def get_data(self): + """ enrich respone json data """ + data = super().get_data() + # if in selection-phase, add a button to update the prices + if getattr(self, 'form_step', 'select_parts') == 'select_parts': + data['buttons'] = [{'name': 'update_price', 'title': _('Update prices')}] # set buttons + data['hideErrorMessage'] = '1' # hide the error message + return data + def get_suppliers(self): """ Calculates a list of suppliers which the user will need to create POs for. This is calculated AFTER the user finishes selecting the parts to order. @@ -1238,9 +1247,10 @@ class OrderParts(AjaxView): valid = False if form_step == 'select_parts': - # No errors? Proceed to PO selection form - if part_errors is False: + # No errors? and the price-update button was not used to submit? Proceed to PO selection form + if part_errors is False and 'act-btn_update_price' not in request.POST: self.ajax_template_name = 'order/order_wizard/select_pos.html' + self.form_step = 'select_purchase_orders' # set step (important for get_data) else: self.ajax_template_name = 'order/order_wizard/select_parts.html'