From d3724032e1a5943a425dde801687a01f4c132d5a Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sat, 16 Nov 2013 04:12:44 +0100 Subject: [PATCH] simplify url dispatcher we can include all the urls (as usual) AFTER overiding some of them giving a special rule first. --- nsupdate/urls.py | 63 +++++++----------------------------------------- 1 file changed, 9 insertions(+), 54 deletions(-) diff --git a/nsupdate/urls.py b/nsupdate/urls.py index 6b76626..36fab16 100644 --- a/nsupdate/urls.py +++ b/nsupdate/urls.py @@ -1,13 +1,10 @@ from django.conf.urls import patterns, include, url -from django.core.urlresolvers import reverse from django.contrib import admin -from django.views.generic.base import TemplateView from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm from django.contrib.auth import views as auth_views admin.autodiscover() -from registration.backends.default.views import ActivationView from registration.backends.default.views import RegistrationView from registration.forms import RegistrationForm @@ -24,75 +21,33 @@ class Html5AuthenticationForm(AuthenticationForm): self.fields['username'].widget.attrs.update(dict(autofocus=None)) -def html5_login(*args, **kwargs): - kwargs['authentication_form'] = Html5AuthenticationForm - return auth_views.login(*args, **kwargs) - - class Html5PasswordChangeForm(PasswordChangeForm): def __init__(self, *args, **kwargs): super(Html5PasswordChangeForm, self).__init__(*args, **kwargs) self.fields['old_password'].widget.attrs.update(dict(autofocus=None)) -def html5_password_change(*args, **kwargs): - kwargs['password_change_form'] = Html5PasswordChangeForm - kwargs['template_name'] = 'registration/password_change.html' # own template - kwargs['post_change_redirect'] = reverse('account_profile') - return auth_views.password_change(*args, **kwargs) - - urlpatterns = patterns( '', url('', include('social.apps.django_app.urls', namespace='social')), # registration start - # this is a modified copy of registration.backends.default.urls: - url(r'^accounts/activate/complete/$', - TemplateView.as_view(template_name='registration/activation_complete.html'), - name='registration_activation_complete'), - # Activation keys get matched by \w+ instead of the more specific - # [a-fA-F0-9]{40} because a bad activation key should still get to the view; - # that way it can return a sensible "invalid key" message instead of a - # confusing 404. - url(r'^accounts/activate/(?P\w+)/$', - ActivationView.as_view(), - name='registration_activate'), + # these are some modified patterns from registration.backends.default.urls: url(r'^accounts/register/$', RegistrationView.as_view(form_class=Html5RegistrationForm), name='registration_register'), - url(r'^accounts/register/complete/$', - TemplateView.as_view(template_name='registration/registration_complete.html'), - name='registration_complete'), - url(r'^accounts/register/closed/$', - TemplateView.as_view(template_name='registration/registration_closed.html'), - name='registration_disallowed'), # from registration.auth_urls: url(r'^accounts/login/$', - html5_login, - {'template_name': 'registration/login.html'}, + auth_views.login, + {'authentication_form': Html5AuthenticationForm, + 'template_name': 'registration/login.html'}, name='auth_login'), - url(r'^accounts/logout/$', - auth_views.logout, - {'template_name': 'registration/logout.html'}, - name='auth_logout'), url(r'^accounts/password/change/$', - html5_password_change, + auth_views.password_change, + {'password_change_form': Html5PasswordChangeForm, + 'template_name': 'registration/password_change.html', # own template + 'post_change_redirect': '/account/profile'}, # reverse() does not work here name='auth_password_change'), - url(r'^accounts/password/change/done/$', - auth_views.password_change_done, - name='auth_password_change_done'), - url(r'^accounts/password/reset/$', - auth_views.password_reset, - name='auth_password_reset'), - url(r'^accounts/password/reset/confirm/(?P[0-9A-Za-z]+)-(?P.+)/$', - auth_views.password_reset_confirm, - name='auth_password_reset_confirm'), - url(r'^accounts/password/reset/complete/$', - auth_views.password_reset_complete, - name='auth_password_reset_complete'), - url(r'^accounts/password/reset/done/$', - auth_views.password_reset_done, - name='auth_password_reset_done'), + url(r'^accounts/', include('registration.backends.default.urls')), # registration end url(r'^account/', include('nsupdate.accounts.urls')), url(r'^admin/', include(admin.site.urls)),