mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add custom form validation step
This commit is contained in:
parent
4055a36db2
commit
170d55d64e
@ -10,6 +10,7 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
from django.http import JsonResponse, HttpResponseRedirect
|
from django.http import JsonResponse, HttpResponseRedirect
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
|
|
||||||
@ -320,6 +321,15 @@ class AjaxCreateView(AjaxMixin, CreateView):
|
|||||||
- Handles form validation via AJAX POST requests
|
- Handles form validation via AJAX POST requests
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def validate(self, cleaned_data, **kwargs):
|
||||||
|
"""
|
||||||
|
Hook for performing any extra validation, over and above the regular form.is_valid
|
||||||
|
|
||||||
|
If any errors exist, raise a ValidationError
|
||||||
|
|
||||||
|
"""
|
||||||
|
return True
|
||||||
|
|
||||||
def pre_save(self, form, request, **kwargs):
|
def pre_save(self, form, request, **kwargs):
|
||||||
"""
|
"""
|
||||||
Hook for doing something before the form is validated
|
Hook for doing something before the form is validated
|
||||||
@ -356,12 +366,24 @@ class AjaxCreateView(AjaxMixin, CreateView):
|
|||||||
self.request = request
|
self.request = request
|
||||||
self.form = self.get_form()
|
self.form = self.get_form()
|
||||||
|
|
||||||
|
# Perform regular form validation
|
||||||
|
valid = self.form.is_valid()
|
||||||
|
|
||||||
|
# Perform any extra validation steps
|
||||||
|
if valid:
|
||||||
|
try:
|
||||||
|
valid = valid and self.validate(self.form.cleaned_data)
|
||||||
|
except ValidationError as e:
|
||||||
|
valid = False
|
||||||
|
|
||||||
|
self.form.add_error(None, e)
|
||||||
|
|
||||||
# Extra JSON data sent alongside form
|
# Extra JSON data sent alongside form
|
||||||
data = {
|
data = {
|
||||||
'form_valid': self.form.is_valid(),
|
'form_valid': valid
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.form.is_valid():
|
if valid:
|
||||||
|
|
||||||
self.pre_save(self.form, request)
|
self.pre_save(self.form, request)
|
||||||
self.object = self.form.save()
|
self.object = self.form.save()
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<div class='button-toolbar container-flui' style='float: right';>
|
<div class='button-toolbar container-flui' style='float: right';>
|
||||||
{% if part.active %}
|
{% if part.active %}
|
||||||
{% if roles.build.add %}
|
{% if roles.build.add %}
|
||||||
<button class="btn btn-success" id='start-build'>{% trans "Start New Build" %}</button>
|
<button class="btn btn-success" id='start-build'><span class='fas fa-tools'></span> {% trans "Start New Build" %}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class='filter-list' id='filter-list-build'>
|
<div class='filter-list' id='filter-list-build'>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user