mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-30 04:26:44 +00:00
Add hidden input to the InstallStockForm form
- keeps track of "part" object - so we can filter the stock_items queryset if the form validation fails - Is there a more djangonic way of doing this??
This commit is contained in:
parent
46f459b4c7
commit
42a75a8238
@ -19,6 +19,8 @@ from InvenTree.fields import RoundingDecimalFormField
|
|||||||
|
|
||||||
from report.models import TestReport
|
from report.models import TestReport
|
||||||
|
|
||||||
|
from part.models import Part
|
||||||
|
|
||||||
from .models import StockLocation, StockItem, StockItemTracking
|
from .models import StockLocation, StockItem, StockItemTracking
|
||||||
from .models import StockItemAttachment
|
from .models import StockItemAttachment
|
||||||
from .models import StockItemTestResult
|
from .models import StockItemTestResult
|
||||||
@ -278,6 +280,11 @@ class InstallStockForm(HelperForm):
|
|||||||
Form for manually installing a stock item into another stock item
|
Form for manually installing a stock item into another stock item
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
part = forms.ModelChoiceField(
|
||||||
|
queryset=Part.objects.all(),
|
||||||
|
widget=forms.HiddenInput
|
||||||
|
)
|
||||||
|
|
||||||
stock_item = forms.ModelChoiceField(
|
stock_item = forms.ModelChoiceField(
|
||||||
required=True,
|
required=True,
|
||||||
queryset=StockItem.objects.filter(StockItem.IN_STOCK_FILTER),
|
queryset=StockItem.objects.filter(StockItem.IN_STOCK_FILTER),
|
||||||
@ -302,6 +309,7 @@ class InstallStockForm(HelperForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = StockItem
|
model = StockItem
|
||||||
fields = [
|
fields = [
|
||||||
|
'part',
|
||||||
'stock_item',
|
'stock_item',
|
||||||
'quantity_to_install',
|
'quantity_to_install',
|
||||||
'notes',
|
'notes',
|
||||||
|
@ -699,6 +699,8 @@ class StockItemInstall(AjaxUpdateView):
|
|||||||
form_class = StockForms.InstallStockForm
|
form_class = StockForms.InstallStockForm
|
||||||
ajax_form_title = _('Install Stock Item')
|
ajax_form_title = _('Install Stock Item')
|
||||||
|
|
||||||
|
part = None
|
||||||
|
|
||||||
def get_stock_items(self):
|
def get_stock_items(self):
|
||||||
"""
|
"""
|
||||||
Return a list of stock items suitable for displaying to the user.
|
Return a list of stock items suitable for displaying to the user.
|
||||||
@ -713,14 +715,19 @@ class StockItemInstall(AjaxUpdateView):
|
|||||||
items = StockItem.objects.filter(StockItem.IN_STOCK_FILTER)
|
items = StockItem.objects.filter(StockItem.IN_STOCK_FILTER)
|
||||||
|
|
||||||
# Filter by Part association
|
# Filter by Part association
|
||||||
try:
|
|
||||||
part = self.request.GET.get('part', None)
|
|
||||||
|
|
||||||
if part is not None:
|
# Look at GET params
|
||||||
part = Part.objects.get(pk=part)
|
part_id = self.request.GET.get('part', None)
|
||||||
items = items.filter(part=part)
|
|
||||||
|
if part_id is None:
|
||||||
|
# Look at POST params
|
||||||
|
part_id = self.request.POST.get('part', None)
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.part = Part.objects.get(pk=part_id)
|
||||||
|
items = items.filter(part=self.part)
|
||||||
except (ValueError, Part.DoesNotExist):
|
except (ValueError, Part.DoesNotExist):
|
||||||
pass
|
self.part = None
|
||||||
|
|
||||||
return items
|
return items
|
||||||
|
|
||||||
@ -735,6 +742,9 @@ class StockItemInstall(AjaxUpdateView):
|
|||||||
item = items.first()
|
item = items.first()
|
||||||
initials['stock_item'] = item.pk
|
initials['stock_item'] = item.pk
|
||||||
initials['quantity_to_install'] = item.quantity
|
initials['quantity_to_install'] = item.quantity
|
||||||
|
|
||||||
|
if self.part:
|
||||||
|
initials['part'] = self.part
|
||||||
|
|
||||||
return initials
|
return initials
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user