Esempio n. 1
0
    def get_urls(self):
        urlpatterns = patterns('',
            (r'^i18n/', include('django.conf.urls.i18n')),
            (r'^catalogue/', include(self.catalogue_app.urls)),
            (r'^basket/', include(self.basket_app.urls)),
            (r'^checkout/', include(self.checkout_app.urls)),
            (r'^accounts/', include(self.customer_app.urls)),
            (r'^search/', include(self.search_app.urls)),
            (r'^dashboard/', include(self.dashboard_app.urls)),
            (r'^offers/', include(self.offer_app.urls)),

            # Password reset - as we're using Django's default view funtions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(auth_views.password_reset),
                {'password_reset_form': forms.PasswordResetForm,
                 'post_reset_redirect': reverse_lazy('password-reset-done')},
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.password_reset_done),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb36>[0-9A-Za-z]{1,13})-(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
                login_forbidden(auth_views.password_reset_confirm),
                {'post_reset_redirect': reverse_lazy('password-reset-complete')},
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.password_reset_complete),
                name='password-reset-complete'),
            (r'', include(self.promotions_app.urls)),
        )
        return urlpatterns
Esempio n. 2
0
    def get_urls(self):
        urls = [
            url(r'^catalogue/', include(self.catalogue_app.urls)),
            url(r'^basket/', include(self.basket_app.urls)),
            url(r'^checkout/', include(self.checkout_app.urls)),
            url(r'^accounts/', include(self.customer_app.urls)),
            url(r'^search/', include(self.search_app.urls)),
            url(r'^dashboard/', include(self.dashboard_app.urls)),
            url(r'^offers/', include(self.offer_app.urls)),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(auth_views.password_reset), {
                    'password_reset_form': self.password_reset_form,
                    'post_reset_redirect': reverse_lazy('password-reset-done')
                },
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.password_reset_done),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(auth_views.password_reset_confirm), {
                    'post_reset_redirect':
                    reverse_lazy('password-reset-complete'),
                    'set_password_form': self.set_password_form,
                },
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.password_reset_complete),
                name='password-reset-complete'),
            url(r'', include(self.promotions_app.urls)),
        ]
        return urls
Esempio n. 3
0
    def get_urls(self):
        urls = [
            url(r'', self.catalogue_app.urls),
            url(r'^catalogue/', self.catalogue_app.urls),
            url(r'^basket/', self.basket_app.urls),
            url(r'^checkout/', self.checkout_app.urls),
            url(r'^accounts/', self.customer_app.urls),
            url(r'^search/', self.search_app.urls),
            url(r'^dashboard/', self.dashboard_app.urls),
            url(r'^offers/', self.offer_app.urls),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(
                    auth_views.PasswordResetView.as_view(
                        form_class=self.password_reset_form,
                        success_url=reverse_lazy('password-reset-done'))),
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.PasswordResetDoneView.as_view()),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(
                    auth_views.PasswordResetConfirmView.as_view(
                        form_class=self.set_password_form,
                        success_url=reverse_lazy('password-reset-complete'))),
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(
                    auth_views.PasswordResetCompleteView.as_view()),
                name='password-reset-complete'),
        ]
        return urls
Esempio n. 4
0
    def get_urls(self):
        urls = [
            url(r'^catalogue/', include(self.catalogue_app.urls)),
            url(r'^basket/', include(self.basket_app.urls)),
            url(r'^checkout/', include(self.checkout_app.urls)),
            url(r'^accounts/', include(self.customer_app.urls)),
            url(r'^search/', include(self.search_app.urls)),
            url(r'^dashboard/', include(self.dashboard_app.urls)),
            url(r'^offers/', include(self.offer_app.urls)),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(auth_views.password_reset),
                {'password_reset_form': self.password_reset_form,
                 'post_reset_redirect': reverse_lazy('password-reset-done')},
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.password_reset_done),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(auth_views.password_reset_confirm),
                {
                    'post_reset_redirect': reverse_lazy('password-reset-complete'),
                    'set_password_form': self.set_password_form,
                },
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.password_reset_complete),
                name='password-reset-complete'),
            url(r'', include(self.promotions_app.urls)),
        ]
        return urls
Esempio n. 5
0
    def get_urls(self):
        urls = [
            url(r'^catalog/', include(self.catalogue_app.urls)),
            url(r'^basket/', include(self.basket_app.urls)),
            url(r'^checkout/', include(self.checkout_app.urls)),
            url(r'^accounts/', include(self.customer_app.urls)),
            url(r'^dashboard/', include(self.dashboard_app.urls)),
            url(r'^offers/', include(self.offer_app.urls)),
            url(r'^partner/', include(self.partner_app.urls)),
            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(auth_views.password_reset), {
                    'password_reset_form': self.password_reset_form,
                    'post_reset_redirect': reverse_lazy('password-reset-done')
                },
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.password_reset_done),
                name='password-reset-done')
        ]

        # Django <=1.5: uses uidb36 to encode the user's primary key (support
        #               has been removed)
        # Django 1.6:   uses uidb64 to encode the user's primary key, but
        #               supports legacy links
        # Django > 1.7: used uidb64 to encode the user's primary key
        # see https://docs.djangoproject.com/en/dev/releases/1.6/#django-contrib-auth-password-reset-uses-base-64-encoding-of-user-pk
        urls.append(
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(auth_views.password_reset_confirm), {
                    'post_reset_redirect':
                    reverse_lazy('password-reset-complete'),
                    'set_password_form': self.set_password_form,
                },
                name='password-reset-confirm'))
        if django.VERSION < (1, 7):
            urls.append(
                url(
                    r'^password-reset/confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$',
                    login_forbidden(auth_views.password_reset_confirm_uidb36),
                    {
                        'post_reset_redirect':
                        reverse_lazy('password-reset-complete'),
                        'set_password_form':
                        self.set_password_form,
                    }))

        urls += [
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.password_reset_complete),
                name='password-reset-complete'),
            url(r'', include(self.promotions_app.urls)),
        ]
        return urls
Esempio n. 6
0
    def get_urls(self):
        urls = [
            url(r'^catalogue/', include(self.catalogue_app.urls)),
            url(r'^basket/', include(self.basket_app.urls)),
            url(r'^checkout/', include(self.checkout_app.urls)),
            url(r'^accounts/', include(self.customer_app.urls)),
            url(r'^search/', include(self.search_app.urls)),
            url(r'^dashboard/', include(self.dashboard_app.urls)),
            url(r'^offers/', include(self.offer_app.urls)),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(auth_views.password_reset),
                {'password_reset_form': self.password_reset_form,
                 'post_reset_redirect': reverse_lazy('password-reset-done')},
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.password_reset_done),
                name='password-reset-done')]

        # Django <=1.5: uses uidb36 to encode the user's primary key (support has been removed)
        # Django 1.6:   uses uidb64 to encode the user's primary key, but
        #               but supports legacy links
        # Django > 1.7: used uidb64 to encode the user's primary key
        # see https://docs.djangoproject.com/en/dev/releases/1.6/#django-contrib-auth-password-reset-uses-base-64-encoding-of-user-pk
        urls.append(
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(auth_views.password_reset_confirm),
                {
                    'post_reset_redirect': reverse_lazy('password-reset-complete'),
                    'set_password_form': self.set_password_form,
                },
                name='password-reset-confirm'))
        if django.VERSION < (1, 7):
            urls.append(
                url(r'^password-reset/confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$',
                    login_forbidden(auth_views.password_reset_confirm_uidb36),
                    {
                        'post_reset_redirect': reverse_lazy('password-reset-complete'),
                        'set_password_form': self.set_password_form,
                    }))

        urls += [
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.password_reset_complete),
                name='password-reset-complete'),
            url(r'', include(self.promotions_app.urls)),
        ]
        return urls
Esempio n. 7
0
    def get_urls(self):
        from django.contrib.auth import views as auth_views

        from oscar.views.decorators import login_forbidden

        urls = [
            url(r'^$',
                RedirectView.as_view(url=reverse_lazy('catalogue:index')),
                name='home'),
            url(r'^catalogue/', self.catalogue_app.urls),
            url(r'^basket/', self.basket_app.urls),
            url(r'^checkout/', self.checkout_app.urls),
            url(r'^accounts/', self.customer_app.urls),
            url(r'^search/', self.search_app.urls),
            url(r'^dashboard/', self.dashboard_app.urls),
            url(r'^offers/', self.offer_app.urls),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(
                    auth_views.PasswordResetView.as_view(
                        form_class=self.password_reset_form,
                        success_url=reverse_lazy('password-reset-done'),
                        template_name=
                        'oscar/registration/password_reset_form.html')),
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(
                    auth_views.PasswordResetDoneView.as_view(
                        template_name=
                        'oscar/registration/password_reset_done.html')),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(
                    auth_views.PasswordResetConfirmView.as_view(
                        form_class=self.set_password_form,
                        success_url=reverse_lazy('password-reset-complete'),
                        template_name=
                        'oscar/registration/password_reset_confirm.html')),
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(
                    auth_views.PasswordResetCompleteView.as_view(
                        template_name=
                        'oscar/registration/password_reset_complete.html')),
                name='password-reset-complete'),
        ]
        return urls
Esempio n. 8
0
    def get_urls(self):
        from django.contrib.auth import views as auth_views

        from oscar.views.decorators import login_forbidden

        urls = [
            path('',
                 RedirectView.as_view(url=settings.OSCAR_HOMEPAGE),
                 name='home'),
            path('catalogue/', self.catalogue_app.urls),
            path('basket/', self.basket_app.urls),
            path('checkout/', self.checkout_app.urls),
            path('accounts/', self.customer_app.urls),
            path('search/', self.search_app.urls),
            path('dashboard/', self.dashboard_app.urls),
            path('offers/', self.offer_app.urls),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            path('password-reset/',
                 login_forbidden(
                     auth_views.PasswordResetView.as_view(
                         form_class=self.password_reset_form,
                         success_url=reverse_lazy('password-reset-done'),
                         template_name=
                         'oscar/registration/password_reset_form.html')),
                 name='password-reset'),
            path('password-reset/done/',
                 login_forbidden(
                     auth_views.PasswordResetDoneView.as_view(
                         template_name=
                         'oscar/registration/password_reset_done.html')),
                 name='password-reset-done'),
            path('password-reset/confirm/<str:uidb64>/<str:token>/',
                 login_forbidden(
                     auth_views.PasswordResetConfirmView.as_view(
                         form_class=self.set_password_form,
                         success_url=reverse_lazy('password-reset-complete'),
                         template_name=
                         'oscar/registration/password_reset_confirm.html')),
                 name='password-reset-confirm'),
            path('password-reset/complete/',
                 login_forbidden(
                     auth_views.PasswordResetCompleteView.as_view(
                         template_name=
                         'oscar/registration/password_reset_complete.html')),
                 name='password-reset-complete'),
        ]
        return urls
Esempio n. 9
0
    def get_urls(self):
        from django.contrib.auth import views as auth_views

        from oscar.views.decorators import login_forbidden

        urls = [
            url(r'^$', RedirectView.as_view(url=reverse_lazy('catalogue:index')), name='home'),
            url(r'^catalogue/', self.catalogue_app.urls),
            url(r'^basket/', self.basket_app.urls),
            url(r'^checkout/', self.checkout_app.urls),
            url(r'^accounts/', self.customer_app.urls),
            url(r'^search/', self.search_app.urls),
            url(r'^dashboard/', self.dashboard_app.urls),
            url(r'^offers/', self.offer_app.urls),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(
                    auth_views.PasswordResetView.as_view(
                        form_class=self.password_reset_form,
                        success_url=reverse_lazy('password-reset-done'),
                        template_name='oscar/registration/password_reset_form.html'
                    )
                ),
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.PasswordResetDoneView.as_view(
                    template_name='oscar/registration/password_reset_done.html'
                )),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(
                    auth_views.PasswordResetConfirmView.as_view(
                        form_class=self.set_password_form,
                        success_url=reverse_lazy('password-reset-complete'),
                        template_name='oscar/registration/password_reset_confirm.html'
                    )
                ),
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.PasswordResetCompleteView.as_view(
                    template_name='oscar/registration/password_reset_complete.html'
                )),
                name='password-reset-complete'),
        ]
        return urls
Esempio n. 10
0
    def get_urls(self):
        from django.contrib.auth import views as auth_views

        from oscar.views.decorators import login_forbidden

        urls = [
            url(r'^catalogue/', self.catalogue_app.urls),
            url(r'^basket/', self.basket_app.urls),
            url(r'^checkout/', self.checkout_app.urls),
            url(r'^accounts/', self.customer_app.urls),
            url(r'^search/', self.search_app.urls),
            url(r'^dashboard/', self.dashboard_app.urls),
            url(r'^offers/', self.offer_app.urls),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(
                    auth_views.PasswordResetView.as_view(
                        form_class=self.password_reset_form,
                        success_url=reverse_lazy('password-reset-done')
                    )
                ),
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.PasswordResetDoneView.as_view()),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(
                    auth_views.PasswordResetConfirmView.as_view(
                        form_class=self.set_password_form,
                        success_url=reverse_lazy('password-reset-complete')
                    )
                ),
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.PasswordResetCompleteView.as_view()),
                name='password-reset-complete'),
        ]

        if settings.OSCAR_PROMOTIONS_ENABLED:
            urls.append(url(r'', self.promotions_app.urls))
        return urls
Esempio n. 11
0
File: app.py Progetto: Marw0002/test
    def get_urls(self):
        urls = [
            url(r'^ideas/', self.catalogue_app.urls),
            url(r'^accounts/', self.customer_app.urls),
            url(r'^search/', self.search_app.urls),
            url(r'^dashboard/', self.dashboard_app.urls),
            url(r'^vendors/', self.partner_app.urls),
            url(r'^contact/', self.contact_app.urls),
            url(r'^article/', self.article_app.urls),
            url(r'^sitemap\.xml$', views.index, {'sitemaps': base_sitemaps}),
            url(r'^sitemap-(?P<section>.+)\.xml$',
                views.sitemap, {'sitemaps': base_sitemaps},
                name='django.contrib.sitemaps.views.sitemap'),
            #url(r'^sitemap.xml/', sitemap, {'sitemaps': sitemaps},name='django.contrib.sitemaps.views.sitemap'),
            #TemplateView.as_view(template_name="article.html"),'article'),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(auth_views.password_reset), {
                    'password_reset_form': self.password_reset_form,
                    'post_reset_redirect': reverse_lazy('password-reset-done')
                },
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.password_reset_done),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
                login_forbidden(auth_views.password_reset_confirm), {
                    'post_reset_redirect':
                    reverse_lazy('password-reset-complete'),
                    'set_password_form': self.set_password_form,
                },
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.password_reset_complete),
                name='password-reset-complete'),
        ]

        if settings.OSCAR_PROMOTIONS_ENABLED:
            urls.append(url(r'', self.promotions_app.urls))
        return urls
Esempio n. 12
0
    def get_urls(self):
        # After we drop support for Django<1.6 the following line won't be
        # necessary, and the parameter uidb36 should be replaced with uidb64.
        # The necessary update should also be done in
        # oscar/apps/customer/utils.py
        password_reset_confirm = getattr(
            auth_views, 'password_reset_confirm_uidb36',
            auth_views.password_reset_confirm)

        urls = [
            (r'^i18n/', include('django.conf.urls.i18n')),
            (r'^catalogue/', include(self.catalogue_app.urls)),
            (r'^basket/', include(self.basket_app.urls)),
            (r'^checkout/', include(self.checkout_app.urls)),
            (r'^accounts/', include(self.customer_app.urls)),
            (r'^search/', include(self.search_app.urls)),
            (r'^dashboard/', include(self.dashboard_app.urls)),
            (r'^offers/', include(self.offer_app.urls)),

            # Password reset - as we're using Django's default view functions,
            # we can't namespace these urls as that prevents
            # the reverse function from working.
            url(r'^password-reset/$',
                login_forbidden(auth_views.password_reset),
                {'password_reset_form': forms.PasswordResetForm,
                 'post_reset_redirect': reverse_lazy('password-reset-done')},
                name='password-reset'),
            url(r'^password-reset/done/$',
                login_forbidden(auth_views.password_reset_done),
                name='password-reset-done'),
            url(r'^password-reset/confirm/(?P<uidb36>[0-9A-Za-z]{1,13})-'
                r'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
                login_forbidden(password_reset_confirm),
                {'post_reset_redirect':
                 reverse_lazy('password-reset-complete')},
                name='password-reset-confirm'),
            url(r'^password-reset/complete/$',
                login_forbidden(auth_views.password_reset_complete),
                name='password-reset-complete'),
            (r'', include(self.promotions_app.urls)),
        ]
        return patterns('', *urls)
Esempio n. 13
0
 url(r'^access_code', BetaAccessView.as_view(), name = 'beta_access'),
 url(r'^cart/', include(basket_app.urls)),
 url(r'^under_construction', TemplateView.as_view(template_name='under_construction.html'), name='under_construction'),
 url(r'^shoplist', ShopListView.as_view(template_name='shoplist.html'), name='shoplist'),
 url(r'^accounts/register', 'user.views.register', name='register'),
 url(r'^accounts/payment_info', designer_required(DesignerPaymentInfoView.as_view()), name='designer-payment-info'),
 url(r'^accounts/addresses/(?P<pk>\d+)/'
             r'(?P<action>default_for_(billing|shipping|shop))/$',
             login_required(AddressChangeStatusView.as_view()),
             name='address-change-status'),
 url(r'^accounts/', include(customer_app.urls)),
 # FROM OSCAR: Password reset - as we're using Django's default view functions,
 # we can't namespace these urls as that prevents
 # the reverse function from working.
 url(r'^password-reset/$',
     login_forbidden(auth_views.password_reset),
     {'password_reset_form': password_reset_form,
      'post_reset_redirect': reverse_lazy('password-reset-done')},
     name='password-reset'),
 url(r'^password-reset/done/$',
     login_forbidden(auth_views.password_reset_done),
             name='password-reset-done'),
 url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
     login_forbidden(auth_views.password_reset_confirm),
     {
         'post_reset_redirect': reverse_lazy('password-reset-complete'),
         'set_password_form': set_password_form,
     },
     name='password-reset-confirm'),
 url(r'^password-reset/complete/$',
     login_forbidden(auth_views.password_reset_complete),
Esempio n. 14
0
                           login_required(
                               application.profile_view.as_view()),
                           name='profile-view'),
                       (r'^', include(application.get_urls(),),),

                       )

urlpatterns += [
    # Password reset - as we're using Django's default view functions,
    # we can't namespace these urls as that prevents
    # the reverse function from working.
    url(r'^orders/(?P<order_number>[\w-]*)/(?P<line_id>\d+)/$',
        login_required(application.order_line_view.as_view()),
        name='order-line'),
    url(r'^password-reset/$',
        login_forbidden(auth_views.password_reset),
        {'password_reset_form': oscar_app.password_reset_form,
         'post_reset_redirect': app_reverse_lazy('password-reset-done', 'leonardo_store.apps.customer')},
        name='password-reset'),
    url(r'^password-reset/done/$',
        login_forbidden(auth_views.password_reset_done),
        name='password-reset-done'),
    url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
        login_forbidden(auth_views.password_reset_confirm),
        {
            'post_reset_redirect': app_reverse_lazy('password-reset-complete', 'leonardo_store.apps.customer'),
            'set_password_form': oscar_app.set_password_form,
        },
        name='password-reset-confirm'),
    url(r'^password-reset/complete/$',
        login_forbidden(auth_views.password_reset_complete),