From 2fd4015834f063de9b371106123e51c3f8649107 Mon Sep 17 00:00:00 2001
From: Őry Máté <ory.mate@cloud.bme.hu>
Date: Mon, 22 Sep 2014 10:21:33 +0200
Subject: [PATCH] dashboard: fix redirects

---
 circle/dashboard/views/template.py |  9 +++++----
 circle/dashboard/views/util.py     |  5 +++--
 circle/dashboard/views/vm.py       | 16 +++++++++-------
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/circle/dashboard/views/template.py b/circle/dashboard/views/template.py
index 13d8f7f..4d0e9fb 100644
--- a/circle/dashboard/views/template.py
+++ b/circle/dashboard/views/template.py
@@ -24,7 +24,7 @@ from django.contrib.auth.models import User
 from django.contrib.messages.views import SuccessMessageMixin
 from django.core.urlresolvers import reverse, reverse_lazy
 from django.core.exceptions import PermissionDenied, SuspiciousOperation
-from django.http import HttpResponse
+from django.http import HttpResponse, HttpResponseRedirect
 from django.shortcuts import redirect, get_object_or_404
 from django.utils.translation import ugettext as _
 from django.views.generic import (
@@ -145,7 +145,8 @@ class TemplateCreate(SuccessMessageMixin, CreateView):
                                    networks=networks,
                                    tags=tags, req_traits=req_traits)
 
-            return redirect("%s#resources" % inst.get_absolute_url())
+            return HttpResponseRedirect("%s#resources" %
+                                        inst.get_absolute_url())
 
     def __create_networks(self, vlans, user):
         networks = []
@@ -255,7 +256,7 @@ class TemplateDelete(LoginRequiredMixin, DeleteView):
             )
         else:
             messages.success(request, success_message)
-            return redirect(success_url)
+            return HttpResponseRedirect(success_url)
 
 
 class TemplateDetail(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
@@ -394,4 +395,4 @@ class LeaseDelete(LoginRequiredMixin, SuperuserRequiredMixin, DeleteView):
             )
         else:
             messages.success(request, success_message)
-            return redirect(success_url)
+            return HttpResponseRedirect(success_url)
diff --git a/circle/dashboard/views/util.py b/circle/dashboard/views/util.py
index 47c6dbb..c5b058d 100644
--- a/circle/dashboard/views/util.py
+++ b/circle/dashboard/views/util.py
@@ -31,7 +31,7 @@ from django.core.urlresolvers import reverse
 from django.contrib import messages
 from django.contrib.auth.views import redirect_to_login
 from django.db.models import Q
-from django.http import HttpResponse, Http404
+from django.http import HttpResponse, Http404, HttpResponseRedirect
 from django.shortcuts import redirect
 from django.utils.translation import ugettext as _
 from django.views.generic import DetailView, View
@@ -299,7 +299,8 @@ class OperationView(RedirectToLoginMixin, DetailView):
             return HttpResponse(json.dumps(data),
                                 content_type="application/json")
         else:
-            return redirect("%s#activity" % self.object.get_absolute_url())
+            return HttpResponseRedirect("%s#activity" %
+                                        self.object.get_absolute_url())
 
     @classmethod
     def factory(cls, op, icon='cog', effect='info', extra_bases=(), **kwargs):
diff --git a/circle/dashboard/views/vm.py b/circle/dashboard/views/vm.py
index 5712cfe..7fcbe57 100644
--- a/circle/dashboard/views/vm.py
+++ b/circle/dashboard/views/vm.py
@@ -27,7 +27,7 @@ from django.contrib.auth.models import User
 from django.core import signing
 from django.core.exceptions import PermissionDenied, SuspiciousOperation
 from django.core.urlresolvers import reverse, reverse_lazy
-from django.http import HttpResponse, Http404
+from django.http import HttpResponse, Http404, HttpResponseRedirect
 from django.shortcuts import redirect, get_object_or_404, render
 from django.template import RequestContext
 from django.template.loader import render_to_string
@@ -302,7 +302,8 @@ class VmDetailView(CheckedDetailView):
         if not activity.is_abortable_for(request.user):
             raise PermissionDenied()
         activity.abort()
-        return redirect("%s#activity" % self.object.get_absolute_url())
+        return HttpResponseRedirect("%s#activity" %
+                                    self.object.get_absolute_url())
 
 
 class VmTraitsUpdate(SuperuserRequiredMixin, UpdateView):
@@ -442,7 +443,8 @@ class VmResourcesChangeView(VmOperationView):
                     content_type="application=json"
                 )
             else:
-                return redirect(instance.get_absolute_url() + "#resources")
+                return HttpResponseRedirect(instance.get_absolute_url()
+                                            + "#resources")
         else:
             extra = form.cleaned_data
             extra['max_ram_size'] = extra['ram_size']
@@ -946,7 +948,7 @@ class VmCreate(LoginRequiredMixin, TemplateView):
             return HttpResponse(json.dumps({'redirect': path}),
                                 content_type="application/json")
         else:
-            return redirect("%s#activity" % path)
+            return HttpResponseRedirect("%s#activity" % path)
 
     def post(self, request, *args, **kwargs):
         user = request.user
@@ -1057,7 +1059,7 @@ class InterfaceDeleteView(DeleteView):
             )
         else:
             messages.success(request, success_message)
-            return redirect("%s#network" % success_url)
+            return HttpResponseRedirect("%s#network" % success_url)
 
     def get_success_url(self):
         redirect = self.request.POST.get("next")
@@ -1124,7 +1126,7 @@ class DiskRemoveView(DeleteView):
             )
         else:
             messages.success(request, success_message)
-            return redirect("%s#resources" % success_url)
+            return HttpResponseRedirect("%s#resources" % success_url)
 
 
 @require_GET
@@ -1181,7 +1183,7 @@ class PortDelete(LoginRequiredMixin, DeleteView):
             )
         else:
             messages.success(request, success_message)
-            return redirect("%s#network" % success_url)
+            return HttpResponseRedirect("%s#network" % success_url)
 
     def get_success_url(self):
         return reverse_lazy('dashboard.views.detail',
--
libgit2 0.26.0