mirror of
https://github.com/inventree/InvenTree.git
synced 2025-05-12 10:12:58 +00:00
Remove AjaxCreateView class (#4041)
This commit is contained in:
parent
53ecca34d8
commit
0bf335bba3
@ -18,8 +18,7 @@ from django.urls import reverse_lazy
|
|||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.views import View
|
from django.views import View
|
||||||
from django.views.generic import (CreateView, DeleteView, DetailView, ListView,
|
from django.views.generic import DeleteView, DetailView, ListView, UpdateView
|
||||||
UpdateView)
|
|
||||||
from django.views.generic.base import RedirectView, TemplateView
|
from django.views.generic.base import RedirectView, TemplateView
|
||||||
|
|
||||||
from allauth.account.forms import AddEmailForm
|
from allauth.account.forms import AddEmailForm
|
||||||
@ -185,7 +184,6 @@ class InvenTreeRoleMixin(PermissionRequiredMixin):
|
|||||||
UpdateView: 'change',
|
UpdateView: 'change',
|
||||||
DeleteView: 'delete',
|
DeleteView: 'delete',
|
||||||
AjaxUpdateView: 'change',
|
AjaxUpdateView: 'change',
|
||||||
AjaxCreateView: 'add',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for view_class in permission_map.keys():
|
for view_class in permission_map.keys():
|
||||||
@ -360,77 +358,6 @@ class QRCodeView(AjaxView):
|
|||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class AjaxCreateView(AjaxMixin, CreateView):
|
|
||||||
"""An 'AJAXified' CreateView for creating a new object in the db.
|
|
||||||
|
|
||||||
- Returns a form in JSON format (for delivery to a modal window)
|
|
||||||
- Handles form validation via AJAX POST requests
|
|
||||||
"""
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
|
||||||
"""Creates form with initial data, and renders JSON response."""
|
|
||||||
super(CreateView, self).get(request, *args, **kwargs)
|
|
||||||
|
|
||||||
self.request = request
|
|
||||||
form = self.get_form()
|
|
||||||
return self.renderJsonResponse(request, form)
|
|
||||||
|
|
||||||
def save(self, form):
|
|
||||||
"""Method for actually saving the form to the database.
|
|
||||||
|
|
||||||
Default implementation is very simple, but can be overridden if required.
|
|
||||||
"""
|
|
||||||
self.object = form.save()
|
|
||||||
|
|
||||||
return self.object
|
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
|
||||||
"""Responds to form POST. Validates POST data and returns status info.
|
|
||||||
|
|
||||||
- Validate POST form data
|
|
||||||
- If valid, save form
|
|
||||||
- Return status info (success / failure)
|
|
||||||
"""
|
|
||||||
self.request = request
|
|
||||||
self.form = self.get_form()
|
|
||||||
|
|
||||||
# Perform initial form validation
|
|
||||||
self.form.is_valid()
|
|
||||||
|
|
||||||
# Perform custom validation (no object can be provided yet)
|
|
||||||
self.validate(None, self.form)
|
|
||||||
|
|
||||||
valid = self.form.is_valid()
|
|
||||||
|
|
||||||
# Extra JSON data sent alongside form
|
|
||||||
data = {
|
|
||||||
'form_valid': valid,
|
|
||||||
'form_errors': self.form.errors.as_json(),
|
|
||||||
'non_field_errors': self.form.non_field_errors().as_json(),
|
|
||||||
}
|
|
||||||
|
|
||||||
# Add in any extra class data
|
|
||||||
for value, key in enumerate(self.get_data()):
|
|
||||||
data[key] = value
|
|
||||||
|
|
||||||
if valid:
|
|
||||||
|
|
||||||
# Save the object to the database
|
|
||||||
self.object = self.save(self.form)
|
|
||||||
|
|
||||||
if self.object:
|
|
||||||
# Return the PK of the newly-created object
|
|
||||||
data['pk'] = self.object.pk
|
|
||||||
data['text'] = str(self.object)
|
|
||||||
|
|
||||||
try:
|
|
||||||
data['url'] = self.object.get_absolute_url()
|
|
||||||
except AttributeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
return self.renderJsonResponse(request, self.form, data)
|
|
||||||
|
|
||||||
|
|
||||||
class AjaxUpdateView(AjaxMixin, UpdateView):
|
class AjaxUpdateView(AjaxMixin, UpdateView):
|
||||||
"""An 'AJAXified' UpdateView for updating an object in the db.
|
"""An 'AJAXified' UpdateView for updating an object in the db.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user