[PATCH 11/19] urls: Use new login/password change CBVs
Stephen Finucane
stephen at that.guru
Thu May 11 05:45:20 AEST 2017
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 at that.guru>
---
patchwork/urls.py | 94 +++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 70 insertions(+), 24 deletions(-)
diff --git a/patchwork/urls.py b/patchwork/urls.py
index 1871c9a..c13e0ac 100644
--- a/patchwork/urls.py
+++ b/patchwork/urls.py
@@ -17,11 +17,13 @@
# 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
from patchwork.views import about as about_views
from patchwork.views import api as api_views
from patchwork.views import bundle as bundle_views
@@ -83,32 +85,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('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('project-list')},
+ name='auth_logout'),
+ ]
+
+urlpatterns += [
# registration
url(r'^register/', user_views.register, name='user-register'),
@@ -142,6 +187,7 @@ urlpatterns = [
if 'debug_toolbar' in settings.INSTALLED_APPS:
import debug_toolbar
+
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
--
2.9.3
More information about the Patchwork
mailing list