Przeglądaj źródła

Use own SuccessMessageMixin for Django < 1.6

Denis K 9 lat temu
rodzic
commit
8b89713871
2 zmienionych plików z 19 dodań i 2 usunięć
  1. 18 0
      jet/utils.py
  2. 1 2
      jet/views.py

+ 18 - 0
jet/utils.py

@@ -9,6 +9,7 @@ from django.utils.encoding import force_text
 from django.utils.encoding import smart_text
 from django.utils.functional import Promise
 from jet import settings
+from django.contrib import messages
 
 
 class JsonResponse(HttpResponse):
@@ -83,3 +84,20 @@ def get_model_instance_label(instance):
     if getattr(instance, "related_label", None):
         return instance.related_label()
     return smart_text(instance)
+
+
+class SuccessMessageMixin(object):
+    """
+    Adds a success message on successful form submission.
+    """
+    success_message = ''
+
+    def form_valid(self, form):
+        response = super(SuccessMessageMixin, self).form_valid(form)
+        success_message = self.get_success_message(form.cleaned_data)
+        if success_message:
+            messages.success(self.request, success_message)
+        return response
+
+    def get_success_message(self, cleaned_data):
+        return self.success_message % cleaned_data

+ 1 - 2
jet/views.py

@@ -1,12 +1,11 @@
 from django.contrib import messages
-from django.contrib.messages.views import SuccessMessageMixin
 from django.core.urlresolvers import reverse
 from django.forms.formsets import formset_factory
 from django.views.decorators.http import require_POST, require_GET
 from jet.forms import AddBookmarkForm, RemoveBookmarkForm, ToggleApplicationPinForm, UpdateDashboardModulesForm, \
     AddUserDashboardModuleForm, UpdateDashboardModuleCollapseForm, RemoveDashboardModuleForm, ModelLookupForm
 from jet.models import Bookmark, UserDashboardModule
-from jet.utils import JsonResponse, get_app_list
+from jet.utils import JsonResponse, get_app_list, SuccessMessageMixin
 from django.views.generic import UpdateView
 from django.utils.translation import ugettext_lazy as _