From: Stephen Finucane Date: Fri, 19 May 2017 14:52:24 +0000 (+0100) Subject: urls: Use new login/password change CBVs X-Git-Tag: v2.1.0-rc1~108 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=29dba190c6f6f68e8cd5c0bd1924da5ff5e6e9b2;p=thirdparty%2Fpatchwork.git urls: Use new login/password change CBVs 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 Signed-off-by: Daniel Axtens --- diff --git a/patchwork/compat.py b/patchwork/compat.py index 38a844d9..177e79e3 100644 --- a/patchwork/compat.py +++ b/patchwork/compat.py @@ -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 diff --git a/patchwork/urls.py b/patchwork/urls.py index 285d5659..4fab12f8 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_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[^/]+)/$', 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[0-9A-Za-z_\-]+)/' - r'(?P[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[0-9A-Za-z_\-]+)/' + r'(?P[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[0-9A-Za-z_\-]+)/' + r'(?P[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)), ]