mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-29 03:56:43 +00:00
Agk, working out forms is hard
This commit is contained in:
parent
bd87f4c733
commit
d64dd68403
@ -213,7 +213,7 @@ class EditSalesOrderLineItemForm(HelperForm):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class AllocateSerialsToSalesOrderForm(HelperForm):
|
class AllocateSerialsToSalesOrderForm(forms.Form):
|
||||||
"""
|
"""
|
||||||
Form for assigning stock to a sales order,
|
Form for assigning stock to a sales order,
|
||||||
by serial number lookup
|
by serial number lookup
|
||||||
@ -234,7 +234,6 @@ class AllocateSerialsToSalesOrderForm(HelperForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SalesOrderAllocation
|
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
'line',
|
'line',
|
||||||
|
@ -10,6 +10,7 @@ from django.shortcuts import get_object_or_404
|
|||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.views.generic import DetailView, ListView, UpdateView
|
from django.views.generic import DetailView, ListView, UpdateView
|
||||||
|
from django.views.generic.edit import FormMixin
|
||||||
from django.forms import HiddenInput
|
from django.forms import HiddenInput
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
@ -1291,7 +1292,7 @@ class SOLineItemDelete(AjaxDeleteView):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class SalesOrderAssignSerials(AjaxCreateView):
|
class SalesOrderAssignSerials(AjaxView, FormMixin):
|
||||||
"""
|
"""
|
||||||
View for assigning stock items to a sales order,
|
View for assigning stock items to a sales order,
|
||||||
by serial number lookup.
|
by serial number lookup.
|
||||||
@ -1327,6 +1328,40 @@ class SalesOrderAssignSerials(AjaxCreateView):
|
|||||||
|
|
||||||
return initials
|
return initials
|
||||||
|
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
|
||||||
|
self.form = self.get_form()
|
||||||
|
|
||||||
|
# Validate the form
|
||||||
|
self.form.is_valid()
|
||||||
|
self.validate()
|
||||||
|
|
||||||
|
valid = self.form.is_valid()
|
||||||
|
|
||||||
|
data = {
|
||||||
|
'form_valid': valid,
|
||||||
|
'form_errors': self.form.errors.as_json(),
|
||||||
|
'non_field_errors': self.form.non_field_errors().as_json(),
|
||||||
|
}
|
||||||
|
|
||||||
|
return self.renderJsonResponse(request, self.get_form(), data)
|
||||||
|
|
||||||
|
def validate(self):
|
||||||
|
|
||||||
|
data = self.form.cleaned_data
|
||||||
|
|
||||||
|
# Extract hidden fields from posted data
|
||||||
|
self.line = data.get('line', None)
|
||||||
|
self.part = data.get('part', None)
|
||||||
|
|
||||||
|
if not self.line:
|
||||||
|
self.form.add_error('line', _('Select line item'))
|
||||||
|
|
||||||
|
if not self.part:
|
||||||
|
self.form.add_error('part', _('Select part'))
|
||||||
|
|
||||||
|
self.form.add_error(None, 'abcde')
|
||||||
|
|
||||||
def get_form(self):
|
def get_form(self):
|
||||||
|
|
||||||
form = super().get_form()
|
form = super().get_form()
|
||||||
@ -1334,13 +1369,6 @@ class SalesOrderAssignSerials(AjaxCreateView):
|
|||||||
if self.line is not None:
|
if self.line is not None:
|
||||||
form.fields['line'].widget = HiddenInput()
|
form.fields['line'].widget = HiddenInput()
|
||||||
|
|
||||||
# Hide the 'part' field if value provided
|
|
||||||
try:
|
|
||||||
print(form['part'])
|
|
||||||
# self.part = Part.objects.get(form['part'].value())
|
|
||||||
except (ValueError, Part.DoesNotExist):
|
|
||||||
self.part = None
|
|
||||||
|
|
||||||
if self.part is not None:
|
if self.part is not None:
|
||||||
form.fields['part'].widget = HiddenInput()
|
form.fields['part'].widget = HiddenInput()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user