Skip to content
Snippets Groups Projects
Commit e0e6960b authored by Bryan BRANCOTTE's avatar Bryan BRANCOTTE
Browse files

Using Django's lost password workflow, using app templates, adding quick start...

Using Django's lost password workflow, using app templates, adding quick start indication and example in the test project
parent b451c4ea
No related branches found
Tags v0.0.9
No related merge requests found
Pipeline #11927 passed
...@@ -7,13 +7,15 @@ A module handling basic fonctionnality needed in django project such as base.htm ...@@ -7,13 +7,15 @@ A module handling basic fonctionnality needed in django project such as base.htm
# Quick start # Quick start
1. Add "basetheme_bootstrap" to your INSTALLED_APPS setting like this (while not forgetting `crispy_forms`) 1. Add "basetheme_bootstrap" to your INSTALLED_APPS setting like this (while not forgetting `crispy_forms`). Note that basetheme_bootstrap have to be before django.contrib.admin to override the default template for password reset.
```python ```python
INSTALLED_APPS = [ INSTALLED_APPS = [
... ...
'crispy_forms', 'crispy_forms',
'basetheme_bootstrap', 'basetheme_bootstrap',
...
'django.contrib.admin',
] ]
``` ```
......
...@@ -9,12 +9,14 @@ Detailed documentation is in the "docs" directory. ...@@ -9,12 +9,14 @@ Detailed documentation is in the "docs" directory.
Quick start Quick start
----------- -----------
1. Add "basetheme_bootstrap" to your INSTALLED_APPS setting like this (while not forgetting `crispy_forms`) :: 1. Add "basetheme_bootstrap" to your INSTALLED_APPS setting like this (while not forgetting `crispy_forms`). Note that basetheme_bootstrap have to be before django.contrib.admin to override the default template for password reset. ::
INSTALLED_APPS = [ INSTALLED_APPS = [
... ...
'crispy_forms', 'crispy_forms',
'basetheme_bootstrap', 'basetheme_bootstrap',
...
'django.contrib.admin',
] ]
2. Add the context_processors:: 2. Add the context_processors::
......
...@@ -16,5 +16,6 @@ ...@@ -16,5 +16,6 @@
<br/> <br/>
<hr/> <hr/>
<a href="{% url 'basetheme_bootstrap:signup' %}" role="button" class="btn btn-default btn-outline-primary full-width">{%trans "Create account"%}</a> <a href="{% url 'basetheme_bootstrap:signup' %}" role="button" class="btn btn-default btn-outline-primary full-width">{%trans "Create account"%}</a>
<a href="{% url 'basetheme_bootstrap:password_reset' %}" role="button" class="btn btn-default btn-outline-primary full-width pull-right float-right">{%trans "Reset my password"%}</a>
</div> </div>
{% endblock %} {% endblock %}
\ No newline at end of file
{% extends 'basetheme_bootstrap/simple_message_page.html' %}
{% load i18n %}
{% block title %}{{ title }}{% endblock %}
{% block page_title %}{{ title }}{% endblock %}
{% block sub_message%}
{% trans "Your password has been set. You may go ahead and log in now." %}
<a href="{{ login_url }}">{% trans 'Log in' %}</a>
{% endblock %}
\ No newline at end of file
{% load i18n %}
{% trans 'Change my password' as submit_text %}
{%include 'registration/small_form_host.html' with title=title submit_text=submit_text form=form%}
\ No newline at end of file
{% extends 'basetheme_bootstrap/simple_message_page.html' %}
{% load i18n %}
{% block title %}{{ title }}{% endblock %}
{% block page_title %}{{ title }}{% endblock %}
{% block sub_message%}
<p>{% trans "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." %}</p>
<p>{% trans "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." %}</p>
{% endblock %}
\ No newline at end of file
{% load i18n %}{% autoescape off %}
{% blocktrans %}You're receiving this email because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %}
{% trans "Please go to the following page and choose a new password:" %}
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'basetheme_bootstrap:password_reset_confirm' uidb64=uid token=token %}
{% endblock %}
{% trans "Your username, in case you've forgotten:" %} {{ user.get_username }}
{% trans "Thanks for using our site!" %}
{% blocktrans %}The {{ site_name }} team{% endblocktrans %}
{% endautoescape %}
{% load i18n %}
{% trans 'Reset my password' as submit_text %}
{%include 'registration/small_form_host.html' with title=title submit_text=submit_text form=form%}
\ No newline at end of file
from django.conf.urls import url from django.conf.urls import url
from django.contrib.auth import views as auth_views from django.contrib.auth import views as auth_views
from django.contrib.auth.decorators import login_required from django.urls import reverse_lazy
from django.views.generic import TemplateView
from basetheme_bootstrap import views from basetheme_bootstrap import views
app_name = 'basetheme_bootstrap' app_name = 'basetheme_bootstrap'
urlpatterns = [ urlpatterns = [
################################################################################
# Account management
################################################################################
url(r'^accounts/$', views.account_detail, name='account'), url(r'^accounts/$', views.account_detail, name='account'),
url(r'^accounts/login/$', auth_views.LoginView.as_view(), name='login'), url(r'^accounts/login/$', auth_views.LoginView.as_view(), name='login'),
url(r'^accounts/logout/$', auth_views.LogoutView.as_view(next_page='/'), name='logout'), url(r'^accounts/logout/$', auth_views.LogoutView.as_view(next_page='/'), name='logout'),
...@@ -14,5 +16,28 @@ urlpatterns = [ ...@@ -14,5 +16,28 @@ urlpatterns = [
url(r'^accounts/signup/$', views.signup, name='signup'), url(r'^accounts/signup/$', views.signup, name='signup'),
url(r'^accounts/edit/$', views.user_update, name='user-update'), url(r'^accounts/edit/$', views.user_update, name='user-update'),
url(r'^accounts/remove/$', views.user_delete, name='user-delete'), url(r'^accounts/remove/$', views.user_delete, name='user-delete'),
################################################################################
# About page
################################################################################
url(r'^about/$', views.about_page, name='about_page'), url(r'^about/$', views.about_page, name='about_page'),
################################################################################
# Lost password
################################################################################
url(r'^accounts/password_reset/$',
auth_views.PasswordResetView.as_view(
success_url=reverse_lazy("basetheme_bootstrap:password_reset_done"),
),
name='password_reset'),
url(r'^accounts/password_reset/done/$',
auth_views.PasswordResetDoneView.as_view(),
name='password_reset_done'),
url(r'^accounts/password/reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
auth_views.PasswordResetConfirmView.as_view(
success_url=reverse_lazy("basetheme_bootstrap:password_reset_complete"),
),
name='password_reset_confirm'),
url(r'^accounts/password/reset/done/$',
auth_views.PasswordResetCompleteView.as_view(),
name='password_reset_complete'),
################################################################################
] ]
...@@ -7,7 +7,7 @@ readme = open('README.rst').read() ...@@ -7,7 +7,7 @@ readme = open('README.rst').read()
setup( setup(
name='django-basetheme-bootstrap', name='django-basetheme-bootstrap',
version='0.0.8', version='0.0.9',
description='Django Basetheme Bootstrap', description='Django Basetheme Bootstrap',
long_description=readme, long_description=readme,
author='Bryan Brancotte', author='Bryan Brancotte',
......
...@@ -32,7 +32,6 @@ ALLOWED_HOSTS = ['*'] ...@@ -32,7 +32,6 @@ ALLOWED_HOSTS = ['*']
# Application definition # Application definition
INSTALLED_APPS = [ INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth', 'django.contrib.auth',
'django.contrib.contenttypes', 'django.contrib.contenttypes',
'django.contrib.sessions', 'django.contrib.sessions',
...@@ -41,6 +40,7 @@ INSTALLED_APPS = [ ...@@ -41,6 +40,7 @@ INSTALLED_APPS = [
'crispy_forms', 'crispy_forms',
'basetheme_bootstrap', 'basetheme_bootstrap',
'test_app_1', 'test_app_1',
'django.contrib.admin',
] ]
MIDDLEWARE = [ MIDDLEWARE = [
...@@ -138,3 +138,8 @@ BASETHEME_BOOTSTRAP_USER_PREFERENCE_MODEL_LOCATION_APP = "test_app_1" ...@@ -138,3 +138,8 @@ BASETHEME_BOOTSTRAP_USER_PREFERENCE_MODEL_LOCATION_APP = "test_app_1"
BASETHEME_BOOTSTRAP_USER_PREFERENCE_MODEL_NAME = "MyUserPreferences" BASETHEME_BOOTSTRAP_USER_PREFERENCE_MODEL_NAME = "MyUserPreferences"
################################################################################ ################################################################################
# Various debug stuff
################################################################################
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
################################################################################
\ No newline at end of file
from django.http import HttpResponse from django.http import HttpResponse
from django.urls import path, include from django.urls import path, include
from django.views.generic import TemplateView from django.views.generic import TemplateView
from django.contrib import admin
def blabla(request): def blabla(request):
...@@ -8,6 +9,7 @@ def blabla(request): ...@@ -8,6 +9,7 @@ def blabla(request):
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls),
path('', TemplateView.as_view(template_name='basetheme_bootstrap/base4.html'), name='home'), path('', TemplateView.as_view(template_name='basetheme_bootstrap/base4.html'), name='home'),
path('', include('basetheme_bootstrap.urls')), path('', include('basetheme_bootstrap.urls')),
] ]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment