diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index 3c410bd1ca..ecb89af275 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -18,8 +18,7 @@ from django.urls import reverse_lazy from django.utils.timezone import now from django.utils.translation import gettext_lazy as _ from django.views import View -from django.views.generic import (CreateView, DeleteView, DetailView, ListView, - UpdateView) +from django.views.generic import DeleteView, DetailView, ListView, UpdateView from django.views.generic.base import RedirectView, TemplateView from allauth.account.forms import AddEmailForm @@ -185,7 +184,6 @@ class InvenTreeRoleMixin(PermissionRequiredMixin): UpdateView: 'change', DeleteView: 'delete', AjaxUpdateView: 'change', - AjaxCreateView: 'add', } for view_class in permission_map.keys(): @@ -360,77 +358,6 @@ class QRCodeView(AjaxView): 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): """An 'AJAXified' UpdateView for updating an object in the db.