]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
urls: Use new login/password change CBVs
authorStephen Finucane <stephen@that.guru>
Fri, 19 May 2017 14:52:24 +0000 (15:52 +0100)
committerStephen Finucane <stephen@that.guru>
Sun, 3 Dec 2017 20:54:26 +0000 (20:54 +0000)
The function based views are deprecated in Django 1.11 [1], so support
the newer class based views.

[1] https://docs.djangoproject.com/en/dev/releases/1.11/#id2

Signed-off-by: Stephen Finucane <stephen@that.guru>
Signed-off-by: Daniel Axtens <dja@axtens.net>
patchwork/compat.py
patchwork/urls.py

index 38a844d93d03f68e81ffde3e5c8f78be7e54014b..177e79e3d6e3861a1639c2d476861e6e9e337050 100644 (file)
@@ -78,17 +78,19 @@ if settings.ENABLE_REST_API:
         LOOKUP_FIELD = 'lookup_type'
 
 
-# reverse
+# reverse, reverse_lazy
 #
-# The reverse function has been moved to django.urls in Django 1.10 and
-# backwards compatible imports will be removed in Django 2.0
+# The reverse and reverse_lazy functions have been moved to django.urls in
+# Django 1.10 and backwards compatible imports will be removed in Django 2.0
 
 if django.VERSION >= (1, 10):
     from django.urls import NoReverseMatch  # noqa
     from django.urls import reverse  # noqa
+    from django.urls import reverse_lazy  # noqa
 else:
     from django.core.urlresolvers import NoReverseMatch  # noqa
     from django.core.urlresolvers import reverse  # noqa
+    from django.core.urlresolvers import reverse_lazy  # noqa
 
 
 # is_authenticated
index 285d5659e30b194786e6680b7c77368f80b6c80f..4fab12f8d63c3e73526dde456ccd7c7768b9b341 100644 (file)
 # along with Patchwork; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+import django
 from django.conf import settings
 from django.conf.urls import url, include
 from django.contrib import admin
 from django.contrib.auth import views as auth_views
 
+from patchwork.compat import reverse_lazy
 from patchwork.views import about as about_views
 from patchwork.views import api as api_views
 from patchwork.views import bundle as bundle_views
@@ -85,32 +87,75 @@ urlpatterns = [
         name='user-link'),
     url(r'^user/unlink/(?P<person_id>[^/]+)/$', user_views.unlink,
         name='user-unlink'),
+]
 
-    # password change
-    url(r'^user/password-change/$', auth_views.password_change,
-        name='password_change'),
-    url(r'^user/password-change/done/$', auth_views.password_change_done,
-        name='password_change_done'),
-    url(r'^user/password-reset/$', auth_views.password_reset,
-        name='password_reset'),
-    url(r'^user/password-reset/mail-sent/$', auth_views.password_reset_done,
-        name='password_reset_done'),
-    url(r'^user/password-reset/(?P<uidb64>[0-9A-Za-z_\-]+)/'
-        r'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
-        auth_views.password_reset_confirm,
-        name='password_reset_confirm'),
-    url(r'^user/password-reset/complete/$',
-        auth_views.password_reset_complete,
-        name='password_reset_complete'),
-
-    # login/logout
-    url(r'^user/login/$', auth_views.login,
-        {'template_name': 'patchwork/login.html'},
-        name='auth_login'),
-    url(r'^user/logout/$', auth_views.logout,
-        {'next_page': '/'},
-        name='auth_logout'),
+# password change
+if django.VERSION >= (1, 11):
+    urlpatterns += [
+        url(r'^user/password-change/$',
+            auth_views.PasswordChangeView.as_view(),
+            name='password_change'),
+        url(r'^user/password-change/done/$',
+            auth_views.PasswordChangeDoneView.as_view(),
+            name='password_change_done'),
+        url(r'^user/password-reset/$',
+            auth_views.PasswordResetView.as_view(),
+            name='password_reset'),
+        url(r'^user/password-reset/mail-sent/$',
+            auth_views.PasswordResetDoneView.as_view(),
+            name='password_reset_done'),
+        url(r'^user/password-reset/(?P<uidb64>[0-9A-Za-z_\-]+)/'
+            r'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
+            auth_views.PasswordResetConfirmView.as_view(),
+            name='password_reset_confirm'),
+        url(r'^user/password-reset/complete/$',
+            auth_views.PasswordResetCompleteView.as_view(),
+            name='password_reset_complete'),
+    ]
+else:
+    urlpatterns += [
+        url(r'^user/password-change/$',
+            auth_views.password_change,
+            name='password_change'),
+        url(r'^user/password-change/done/$',
+            auth_views.password_change_done,
+            name='password_change_done'),
+        url(r'^user/password-reset/$',
+            auth_views.password_reset,
+            name='password_reset'),
+        url(r'^user/password-reset/mail-sent/$',
+            auth_views.password_reset_done,
+            name='password_reset_done'),
+        url(r'^user/password-reset/(?P<uidb64>[0-9A-Za-z_\-]+)/'
+            r'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
+            auth_views.password_reset_confirm,
+            name='password_reset_confirm'),
+        url(r'^user/password-reset/complete/$',
+            auth_views.password_reset_complete,
+            name='password_reset_complete'),
+    ]
 
+# login/logout
+if django.VERSION >= (1, 11):
+    urlpatterns += [
+        url(r'^user/login/$', auth_views.LoginView.as_view(
+            template_name='patchwork/login.html'),
+            name='auth_login'),
+        url(r'^user/logout/$', auth_views.LogoutView.as_view(
+            next_page=reverse_lazy('project-list')),
+            name='auth_logout'),
+    ]
+else:
+    urlpatterns += [
+        url(r'^user/login/$', auth_views.login,
+            {'template_name': 'patchwork/login.html'},
+            name='auth_login'),
+        url(r'^user/logout/$', auth_views.logout,
+            {'next_page': reverse_lazy('project-list')},
+            name='auth_logout'),
+    ]
+
+urlpatterns += [
     # registration
     url(r'^register/', user_views.register, name='user-register'),
 
@@ -144,6 +189,7 @@ urlpatterns = [
 
 if 'debug_toolbar' in settings.INSTALLED_APPS:
     import debug_toolbar
+
     urlpatterns += [
         url(r'^__debug__/', include(debug_toolbar.urls)),
     ]