Parcourir la source

Rework the dashboard password reset form

master
David Winterbottom il y a 12 ans
Parent
révision
7ef5716d5e

+ 3
- 0
oscar/apps/customer/forms.py Voir le fichier

@@ -34,6 +34,9 @@ def generate_username():
34 34
 
35 35
 
36 36
 class PasswordResetForm(auth_forms.PasswordResetForm):
37
+    """
38
+    This form takes the same structure as its parent from django.contrib.auth
39
+    """
37 40
     communication_type_code = "PASSWORD_RESET"
38 41
 
39 42
     def save(self, domain_override=None,

+ 13
- 15
oscar/apps/dashboard/users/views.py Voir le fichier

@@ -95,30 +95,28 @@ class UserDetailView(DetailView):
95 95
 
96 96
 class PasswordResetView(FormView):
97 97
     form_class = PasswordResetForm
98
-    template_name = "registration/password_reset_form.html"
99 98
     http_method_names = ['post']
100 99
 
101
-    def get_user(self):
102
-        user_id = self.kwargs.get('pk')
103
-        return get_object_or_404(User, id=user_id)
100
+    def post(self, request, *args, **kwargs):
101
+        self.user = get_object_or_404(
102
+            User, id=kwargs['pk'])
103
+        return super(PasswordResetView, self).post(request, *args, **kwargs)
104 104
 
105
-    def get_initial(self):
106
-        return {'email': self.get_user().email}
107
-
108
-    def get_success_url(self):
109
-        messages.success(self.request, _("Password reset email has been sent"))
110
-        return reverse(
111
-            'dashboard:user-detail',
112
-            kwargs={'pk': self.get_user().id}
113
-        )
105
+    def get_form_kwargs(self):
106
+        return {'data': {'email': self.user.email}}
114 107
 
115 108
     def form_valid(self, form):
116 109
         # The PasswordResetForm's save method sends the reset email
117 110
         form.save(request=self.request)
118 111
         return super(PasswordResetView, self).form_valid(form)
119 112
 
120
-    def get_form_kwargs(self):
121
-        return {'data': {'email': self.get_user().email}}
113
+    def get_success_url(self):
114
+        messages.success(
115
+            self.request, _("A password reset email has been sent"))
116
+        return reverse(
117
+            'dashboard:user-detail', kwargs={'pk': self.user.id}
118
+        )
119
+
122 120
 
123 121
 
124 122
 class ProductAlertListView(ListView):

+ 1
- 1
tests/functional/dashboard/user_tests.py Voir le fichier

@@ -98,5 +98,5 @@ class TestDetailViewForStaffUser(WebTestCase):
98 98
         # Check that success message shows up
99 99
         self.assertContains(
100 100
             response.follow(),
101
-            _("Password reset email has been sent")
101
+            _("A password reset email has been sent")
102 102
         )

Chargement…
Annuler
Enregistrer