mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Auto-fill serial numbers for the SerializeStock form
This commit is contained in:
parent
10762fc1cf
commit
0ccac09962
@ -9,6 +9,9 @@ from django import forms
|
|||||||
from django.forms.utils import ErrorDict
|
from django.forms.utils import ErrorDict
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
|
from crispy_forms.layout import Field, Layout
|
||||||
|
from crispy_forms.bootstrap import PrependedText
|
||||||
|
|
||||||
from mptt.fields import TreeNodeChoiceField
|
from mptt.fields import TreeNodeChoiceField
|
||||||
|
|
||||||
from InvenTree.helpers import GetExportFormats
|
from InvenTree.helpers import GetExportFormats
|
||||||
@ -95,11 +98,29 @@ class SerializeStockForm(HelperForm):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
||||||
# Extract the stock item
|
# Extract the stock item
|
||||||
stock_item = kwargs.pop('item')
|
item = kwargs.pop('item')
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
# TODO - Pre-fill the serial numbers!
|
# Pre-calculate what the serial numbers should be!
|
||||||
|
sn = item.part.get_next_serial_number()
|
||||||
|
|
||||||
|
if item.quantity >= 2:
|
||||||
|
sn = "{n}-{m}".format(n=sn, m=int(sn+item.quantity-1))
|
||||||
|
else:
|
||||||
|
sn = str(sn)
|
||||||
|
|
||||||
|
# TODO - Refactor this? Should not have to specify Field('field') for each field...
|
||||||
|
self.helper.layout = Layout(
|
||||||
|
Field('quantity'),
|
||||||
|
Field(PrependedText(
|
||||||
|
'serial_numbers',
|
||||||
|
'#',
|
||||||
|
placeholder=sn
|
||||||
|
)),
|
||||||
|
Field('destination'),
|
||||||
|
Field('note'),
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = StockItem
|
model = StockItem
|
||||||
|
@ -774,7 +774,16 @@ class StockItemSerialize(AjaxUpdateView):
|
|||||||
|
|
||||||
item = self.get_object()
|
item = self.get_object()
|
||||||
|
|
||||||
|
# Pre-calculate what the serial numbers should be!
|
||||||
|
sn = item.part.get_next_serial_number()
|
||||||
|
|
||||||
|
if item.quantity >= 2:
|
||||||
|
sn = "{n}-{m}".format(n=sn, m=int(sn+item.quantity-1))
|
||||||
|
else:
|
||||||
|
sn = str(sn)
|
||||||
|
|
||||||
initials['quantity'] = item.quantity
|
initials['quantity'] = item.quantity
|
||||||
|
initials['serial_numbers'] = sn
|
||||||
initials['destination'] = item.location.pk
|
initials['destination'] = item.location.pk
|
||||||
|
|
||||||
return initials
|
return initials
|
||||||
|
Loading…
Reference in New Issue
Block a user