added form to change stock lot
This commit is contained in:
parent
39b64aeb71
commit
3aa4225acb
@ -53,7 +53,7 @@ class AutoCompleteWidget(widgets.Input):
|
||||
'name_field_name': self.name_field_name,
|
||||
'prepend': self.prepend,
|
||||
'name': display_name,
|
||||
}
|
||||
}
|
||||
return context
|
||||
|
||||
class AutocompleteForeingKeyField(forms.UUIDField):
|
||||
@ -72,7 +72,7 @@ class AutocompleteForeingKeyField(forms.UUIDField):
|
||||
prepend)
|
||||
self.foreign_model = foreign_model
|
||||
|
||||
|
||||
|
||||
def clean(self, value):
|
||||
try:
|
||||
pre_cleaned_uuid = super().clean(value)
|
||||
@ -113,15 +113,13 @@ class AddSubStorageForm(ChangeStorageForm):
|
||||
class DeleteStockForm(forms.Form):
|
||||
stock_uuid = forms.UUIDField()
|
||||
|
||||
class EditWatermarkForm(forms.Form):
|
||||
class EditStockBaseForm(forms.Form):
|
||||
stock_uuid = forms.UUIDField()
|
||||
watermark_active = forms.BooleanField(required=False) #If it is false, the webbrowser won't send it at all. Therefore we have to set it to required=False
|
||||
watermark = forms.IntegerField(min_value=0)
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super().clean()
|
||||
id = cleaned_data.get("stock_uuid")
|
||||
|
||||
|
||||
if not id:
|
||||
raise ValidationError("No stock UUID given")
|
||||
|
||||
@ -134,6 +132,10 @@ class EditWatermarkForm(forms.Form):
|
||||
|
||||
return cleaned_data
|
||||
|
||||
class EditWatermarkForm(EditStockBaseForm):
|
||||
watermark_active = forms.BooleanField(required=False) #If it is false, the webbrowser won't send it at all. Therefore we have to set it to required=False
|
||||
watermark = forms.IntegerField(min_value=0)
|
||||
|
||||
def save(self):
|
||||
stock = self.cleaned_data['stock']
|
||||
active = self.cleaned_data['watermark_active']
|
||||
@ -145,32 +147,26 @@ class EditWatermarkForm(forms.Form):
|
||||
stock.watermark = watermark
|
||||
stock.save()
|
||||
|
||||
class EditStockAmountForm(forms.Form):
|
||||
class EditLotForm(EditStockBaseForm):
|
||||
lot = forms.IntegerField(min_value=0)
|
||||
|
||||
def save(self):
|
||||
stock = self.cleaned_data['stock']
|
||||
lot = self.cleaned_data['lot']
|
||||
|
||||
stock.lot = lot
|
||||
stock.save()
|
||||
|
||||
class EditStockAmountForm(EditStockBaseForm):
|
||||
stock_uuid = forms.UUIDField()
|
||||
amount = forms.IntegerField(min_value=0)
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super().clean()
|
||||
id = cleaned_data.get("stock_uuid")
|
||||
|
||||
if not id:
|
||||
raise ValidationError("No stock UUID given")
|
||||
|
||||
stock = None
|
||||
try:
|
||||
stock = parts_models.Stock.objects.get(id=id)
|
||||
except:
|
||||
raise ValidationError("Stock with uuid %s does not exist" % (id))
|
||||
cleaned_data['stock'] = stock
|
||||
|
||||
return cleaned_data
|
||||
|
||||
def save(self, increase: bool):
|
||||
stock = self.cleaned_data['stock']
|
||||
amount = self.cleaned_data['amount']
|
||||
|
||||
if not increase:
|
||||
amount = -amount
|
||||
amount = -amount
|
||||
|
||||
return stock.atomic_increment(amount)
|
||||
|
||||
@ -195,7 +191,7 @@ class AddStockForm(forms.Form):
|
||||
cleaned_data['component'] = component
|
||||
|
||||
return cleaned_data
|
||||
|
||||
|
||||
def save(self, storage):
|
||||
component = self.cleaned_data.get('component')
|
||||
amount = self.cleaned_data.get('amount')
|
||||
@ -254,7 +250,7 @@ class DistributorNumberDeleteForm(forms.Form):
|
||||
class ComponentParameterDeleteForm(forms.Form):
|
||||
param_num = forms.UUIDField(required=True)
|
||||
model = parts_models.ComponentParameter
|
||||
|
||||
|
||||
def clean_param_num(self):
|
||||
my_uuid = self.cleaned_data['param_num']
|
||||
try:
|
||||
@ -323,7 +319,7 @@ class ComponentParameterCreateForm(forms.Form):
|
||||
|
||||
if not ptype:
|
||||
raise ValidationError('No valid parameter type selected')
|
||||
|
||||
|
||||
if not value:
|
||||
raise ValidationError('No valid parameter value')
|
||||
|
||||
@ -335,7 +331,7 @@ class ComponentParameterCreateForm(forms.Form):
|
||||
data['number_value'] = number
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
def save(self, component):
|
||||
param_type = self.cleaned_data['parameter_type']
|
||||
if param_type.parameter_type == 'F':
|
||||
@ -364,6 +360,6 @@ class QrSearchForm(forms.Form):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
||||
|
||||
qr_search = forms.CharField(label='qr_search', validators=[my_qr_validator])
|
@ -213,6 +213,16 @@ class StockViewDetail(LoginRequiredMixin, BaseTemplateMixin, DetailView):
|
||||
context = self.get_context_data(**kwargs)
|
||||
return self.render_to_response(context)
|
||||
|
||||
def handle_update_lot(self, request, **kwargs):
|
||||
edit_form = EditLotForm(data=request.POST)
|
||||
if edit_form.is_valid():
|
||||
edit_form.save()
|
||||
else:
|
||||
pass # Todo: Handle error
|
||||
|
||||
context = self.get_context_data(**kwargs)
|
||||
return self.render_to_response(context)
|
||||
|
||||
def handle_amount_change_post(self, request, increase, **kwargs):
|
||||
edit_form = EditStockAmountForm(data=request.POST)
|
||||
if edit_form.is_valid():
|
||||
@ -252,6 +262,8 @@ class StockViewDetail(LoginRequiredMixin, BaseTemplateMixin, DetailView):
|
||||
return self.handle_del_stock_post(request, **kwargs)
|
||||
elif 'submit-edit-watermark' in request.POST:
|
||||
return self.handle_update_watermark(request, **kwargs)
|
||||
elif 'submit-edit-lot' in request.POST:
|
||||
return self.handle_update_lot(request, **kwargs)
|
||||
elif 'submit-amount-reduce' in request.POST:
|
||||
return self.handle_amount_change_post(request, False, **kwargs)
|
||||
elif 'submit-amount-increase' in request.POST:
|
||||
|
@ -39,7 +39,7 @@ needs following context:
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="stock_uuid" value="{{stock.id}}">
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group-text">
|
||||
<input type="checkbox" class="form-check-input mt-0" name="watermark_active" id="ch-stk-watermark-act-{{stock.id}}" {% if stock.watermark >= 0 %}checked{%endif%}>
|
||||
</div>
|
||||
@ -47,7 +47,16 @@ needs following context:
|
||||
<input type="submit" class="btn btn-primary" name="submit-edit-watermark" value="Update Watermark">
|
||||
</div>
|
||||
</form>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="stock_uuid" value="{{stock.id}}">
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" name="lot" id="ch-stk-lot-{{stock.id}}" class="form-control" value="{{stock.lot}}" required>
|
||||
<input type="submit" class="btn btn-primary" name="submit-edit-lot" value="Update Lot">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user