From c7503b4f9f534c1ff3f810d445f9f983f47568c7 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 2 Jun 2019 11:37:04 +1000 Subject: [PATCH] Consolidated form/view into single 'stock-adjust' endpoint --- InvenTree/static/script/inventree/stock.js | 6 +++- InvenTree/stock/forms.py | 2 +- .../{stock_move.html => stock_adjust.html} | 0 InvenTree/stock/urls.py | 2 +- InvenTree/stock/views.py | 32 +++++++++++++------ 5 files changed, 29 insertions(+), 13 deletions(-) rename InvenTree/stock/templates/stock/{stock_move.html => stock_adjust.html} (100%) diff --git a/InvenTree/static/script/inventree/stock.js b/InvenTree/static/script/inventree/stock.js index cc2d57098c..e18a1a6448 100644 --- a/InvenTree/static/script/inventree/stock.js +++ b/InvenTree/static/script/inventree/stock.js @@ -572,11 +572,15 @@ function loadStockTable(table, options) { stock.push(item.pk); }); - launchModalForm("/stock/move/", + launchModalForm("/stock/adjust/", { data: { + action: 'move', stock: stock, }, + success: function() { + $("#stock-table").bootstrapTable('refresh'); + }, } ); diff --git a/InvenTree/stock/forms.py b/InvenTree/stock/forms.py index 2a4e15d3c6..6304ba2e60 100644 --- a/InvenTree/stock/forms.py +++ b/InvenTree/stock/forms.py @@ -55,7 +55,7 @@ class MoveStockItemForm(HelperForm): 'note' ] -class MoveMultipleStockItemsForm(forms.ModelForm): +class AdjustStockForm(forms.ModelForm): def get_location_choices(self): locs = StockLocation.objects.all() diff --git a/InvenTree/stock/templates/stock/stock_move.html b/InvenTree/stock/templates/stock/stock_adjust.html similarity index 100% rename from InvenTree/stock/templates/stock/stock_move.html rename to InvenTree/stock/templates/stock/stock_adjust.html diff --git a/InvenTree/stock/urls.py b/InvenTree/stock/urls.py index 237e2281f0..e81060ae3b 100644 --- a/InvenTree/stock/urls.py +++ b/InvenTree/stock/urls.py @@ -36,7 +36,7 @@ stock_urls = [ url(r'^track/?', views.StockTrackingIndex.as_view(), name='stock-tracking-list'), - url(r'^move/?', views.StockItemMoveMultiple.as_view(), name='stock-item-move-multiple'), + url(r'^adjust/?', views.StockAdjust.as_view(), name='stock-adjust'), # Individual stock items url(r'^item/(?P\d+)/', include(stock_item_detail_urls)), diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index d03fed4e37..98dc09381c 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -27,7 +27,7 @@ from .forms import EditStockItemForm from .forms import MoveStockItemForm from .forms import StocktakeForm from .forms import MoveStockItemForm -from .forms import MoveMultipleStockItemsForm +from .forms import AdjustStockForm class StockIndex(ListView): @@ -130,12 +130,19 @@ class StockItemQRCode(QRCodeView): return None -class StockItemMoveMultiple(AjaxView, FormMixin): - """ Move multiple stock items """ +class StockAdjust(AjaxView, FormMixin): + """ View for enacting simple stock adjustments: + + - Take items from stock + - Add items to stock + - Count items + - Move stock + + """ - ajax_template_name = 'stock/stock_move.html' - ajax_form_title = 'Move Stock' - form_class = MoveMultipleStockItemsForm + ajax_template_name = 'stock/stock_adjust.html' + ajax_form_title = 'Adjust Stock' + form_class = AdjustStockForm stock_items = [] def get_GET_items(self): @@ -203,7 +210,8 @@ class StockItemMoveMultiple(AjaxView, FormMixin): context = super().get_context_data() context['stock_items'] = self.stock_items - context['stock_action'] = 'Move' + + context['stock_action'] = self.stock_action return context @@ -211,6 +219,9 @@ class StockItemMoveMultiple(AjaxView, FormMixin): self.request = request + # Action + self.stock_action = request.GET.get('action').lower() + # Save list of items! self.stock_items = self.get_GET_items() @@ -255,10 +266,11 @@ class StockItemMoveMultiple(AjaxView, FormMixin): 'form_valid': valid, } - if valid: - action = request.POST.get('stock_action').lower() + self.stock_action = request.POST.get('stock_action').lower() - if action == 'move': + if valid: + + if self.stock_action == 'move': destination = None