Parcourir la source

Remove HTTP_REFERER when redirecting after actions in admin (send_welcome_email, validate invoive)

Fabs il y a 10 ans
Parent
commit
a4a58b0ee7
2 fichiers modifiés avec 11 ajouts et 8 suppressions
  1. 3 2
      coin/billing/admin.py
  2. 8 6
      coin/members/admin.py

+ 3 - 2
coin/billing/admin.py

@@ -7,6 +7,7 @@ from django.contrib import messages
 from django.http import HttpResponseRedirect
 from django.conf.urls import url
 from django.contrib.admin.util import flatten_fieldsets
+from django.core.urlresolvers import reverse
 
 from coin.filtering_queryset import LimitedAdminInlineMixin
 from coin.billing.models import Invoice, InvoiceDetail, Payment
@@ -142,7 +143,7 @@ class InvoiceAdmin(admin.ModelAdmin):
 
     def validate_view(self, request, id):
         """
-        Vue appelée lorsque l'admin souhaite valider une facture et 
+        Vue appelée lorsque l'admin souhaite valider une facture et
         générer son pdf
         """
         # TODO : Add better perm here
@@ -155,6 +156,6 @@ class InvoiceAdmin(admin.ModelAdmin):
                 request, 'Vous n\'avez pas l\'autorisation de valider '
                          'une facture.')
 
-        return HttpResponseRedirect(request.META["HTTP_REFERER"])
+        return HttpResponseRedirect(reverse('admin:billing_invoice_change', args=(id,)))
 
 admin.site.register(Invoice, InvoiceAdmin)

+ 8 - 6
coin/members/admin.py

@@ -8,8 +8,8 @@ from django.contrib.auth.admin import UserAdmin
 from django.contrib.auth.models import Group
 from django.http import HttpResponseRedirect
 from django.conf.urls import url
-from django.contrib import messages
 from django.db.models.query import QuerySet
+from django.core.urlresolvers import reverse
 
 from coin.members.models import Member, CryptoKey, LdapUser, MembershipFee
 from coin.members.membershipfee_filter import MembershipFeeFilter
@@ -116,9 +116,9 @@ class MemberAdmin(UserAdmin):
         ]
         return my_urls + urls
 
-    def send_welcome_email(self, request, id):
+    def send_welcome_email(self, request, id, return_httpredirect=True):
         """
-        Vue appelée lorsque l'admin souhaite envoyer l'email de bienvenue à un 
+        Vue appelée lorsque l'admin souhaite envoyer l'email de bienvenue à un
         membre.
         """
         # TODO : Add better perm here
@@ -132,15 +132,17 @@ class MemberAdmin(UserAdmin):
                 request, 'Vous n\'avez pas l\'autorisation d\'envoyer des '
                          'courriels de bienvenue.')
 
-        return HttpResponseRedirect(request.META["HTTP_REFERER"])
+        if return_httpredirect:
+            return HttpResponseRedirect(reverse('admin:members_member_changelist'))
+
 
     def bulk_send_welcome_email(self, request, queryset):
         """
-        Action appelée lorsque l'admin souhaite envoyer un lot d'email de bienvenue 
+        Action appelée lorsque l'admin souhaite envoyer un lot d'email de bienvenue
         depuis une sélection de membre dans la vue liste de l'admin
         """
         for member in queryset.all():
-            self.send_welcome_email(request, member.id)
+            self.send_welcome_email(request, member.id, return_httpredirect=False)
         messages.success(request,
                          'Le courriel de bienvenue a été envoyé à %d membre(s).' % queryset.count())
     bulk_send_welcome_email.short_description = "Envoyer le courriel de bienvenue"