Merge branch 'qwann/html/user' into 'master'
Qwann/html/user See merge request !6
This commit is contained in:
commit
eb2613fc7c
76 changed files with 266 additions and 406 deletions
|
@ -35,6 +35,7 @@ INSTALLED_APPS = [
|
||||||
'equipment.apps.EquipmentConfig',
|
'equipment.apps.EquipmentConfig',
|
||||||
'event.apps.EventConfig',
|
'event.apps.EventConfig',
|
||||||
'user.apps.UserConfig',
|
'user.apps.UserConfig',
|
||||||
|
'shared.apps.SharedConfig',
|
||||||
'django.contrib.admin',
|
'django.contrib.admin',
|
||||||
'django.contrib.auth',
|
'django.contrib.auth',
|
||||||
'django.contrib.contenttypes',
|
'django.contrib.contenttypes',
|
||||||
|
@ -43,6 +44,7 @@ INSTALLED_APPS = [
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'bootstrapform',
|
'bootstrapform',
|
||||||
'debug_toolbar',
|
'debug_toolbar',
|
||||||
|
'widget_tweaks',
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = [
|
MIDDLEWARE_CLASSES = [
|
||||||
|
@ -59,14 +61,10 @@ MIDDLEWARE_CLASSES = [
|
||||||
|
|
||||||
ROOT_URLCONF = 'evenementiel.urls'
|
ROOT_URLCONF = 'evenementiel.urls'
|
||||||
|
|
||||||
STATICFILES_DIRS = [
|
|
||||||
os.path.join(BASE_DIR, 'var/static/'),
|
|
||||||
]
|
|
||||||
|
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
{
|
{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'DIRS': ["var/templates/", ],
|
'DIRS': [],
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
'OPTIONS': {
|
'OPTIONS': {
|
||||||
'context_processors': [
|
'context_processors': [
|
||||||
|
@ -74,6 +72,7 @@ TEMPLATES = [
|
||||||
'django.template.context_processors.request',
|
'django.template.context_processors.request',
|
||||||
'django.contrib.auth.context_processors.auth',
|
'django.contrib.auth.context_processors.auth',
|
||||||
'django.contrib.messages.context_processors.messages',
|
'django.contrib.messages.context_processors.messages',
|
||||||
|
'shared.shared.context_processor',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
25
event/templates/event/base.html
Normal file
25
event/templates/event/base.html
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block sidenav %}
|
||||||
|
<div class="centered">
|
||||||
|
<h5 class="centered banner-text">La Nuit 2017</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="index.html">
|
||||||
|
<i class="fa fa-dashboard"></i>
|
||||||
|
<span>Looool</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="sub-menu">
|
||||||
|
<a href="javascript:;" >
|
||||||
|
<i class="fa fa-desktop"></i>
|
||||||
|
<span>Prout</span>
|
||||||
|
</a>
|
||||||
|
<ul class="sub">
|
||||||
|
<li><a href="general.html">Lolilol</a></li>
|
||||||
|
<li><a href="buttons.html">Lorem</a></li>
|
||||||
|
<li><a href="panels.html">Ipsum</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
{% endblock %}
|
|
@ -1,4 +1,4 @@
|
||||||
{% extends "base.html" %}
|
{% extends "event/base.html" %}
|
||||||
|
|
||||||
{% block page_title %}Titre{% endblock %}
|
{% block page_title %}Titre{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -2,3 +2,4 @@ Django==1.10.*
|
||||||
Pillow==3.3.0
|
Pillow==3.3.0
|
||||||
psycopg2==2.6.2
|
psycopg2==2.6.2
|
||||||
django-bootstrap-form==3.2.1
|
django-bootstrap-form==3.2.1
|
||||||
|
django-widget-tweaks
|
||||||
|
|
0
shared/__init__.py
Normal file
0
shared/__init__.py
Normal file
3
shared/admin.py
Normal file
3
shared/admin.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
5
shared/apps.py
Normal file
5
shared/apps.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class SharedConfig(AppConfig):
|
||||||
|
name = 'shared'
|
0
shared/migrations/__init__.py
Normal file
0
shared/migrations/__init__.py
Normal file
3
shared/models.py
Normal file
3
shared/models.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
11
shared/shared.py
Normal file
11
shared/shared.py
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
from django.contrib.auth import get_user_model
|
||||||
|
|
||||||
|
User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
|
def context_processor(request):
|
||||||
|
'''Append extra data to the context of the given request'''
|
||||||
|
data = {
|
||||||
|
"user": request.user,
|
||||||
|
}
|
||||||
|
return data
|
|
@ -61,6 +61,18 @@ a, a:hover, a:focus {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* centered columns styles */
|
||||||
|
.row-centered {
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
.col-centered {
|
||||||
|
display:inline-block;
|
||||||
|
float:none;
|
||||||
|
/* reset the text-align */
|
||||||
|
text-align:left;
|
||||||
|
/* inline-block space fix */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*Helpers*/
|
/*Helpers*/
|
||||||
|
@ -157,6 +169,25 @@ ul.sidebar-menu {
|
||||||
margin-top: 75px;
|
margin-top: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebar-menu hr {
|
||||||
|
margin: 5px 10px;
|
||||||
|
border-color: #818899;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-menu .banner-text {
|
||||||
|
text-transform: uppercase;
|
||||||
|
display: inline-block;
|
||||||
|
border-color: white;
|
||||||
|
border-width: 1px 0px;
|
||||||
|
border-style: solid;
|
||||||
|
margin: 15px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-menu .username {
|
||||||
|
color: #818899!important;
|
||||||
|
}
|
||||||
|
|
||||||
#sidebar > ul > li > ul.sub {
|
#sidebar > ul > li > ul.sub {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
@ -324,7 +355,7 @@ a.logo span {
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
}
|
}
|
||||||
.navbar-top-links li > a {
|
.navbar-top-links li > a {
|
||||||
padding: 20px;
|
padding: 20px 10px;
|
||||||
min-height: 60px;
|
min-height: 60px;
|
||||||
color: #797979;
|
color: #797979;
|
||||||
}
|
}
|
||||||
|
@ -416,6 +447,11 @@ a.logo span {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ds h5 {
|
||||||
|
font-size: 10px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
.ds h3 {
|
.ds h3 {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
@ -615,7 +651,7 @@ PANELS CONFIGURATIONS
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
color: #ccd1d9;
|
color: #ccd1d9;
|
||||||
}
|
}
|
||||||
|
²
|
||||||
.white-panel p {
|
.white-panel p {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
@ -649,13 +685,18 @@ PANELS CONFIGURATIONS
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.content-panel h5 {
|
||||||
|
margin-left: 10px;
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* FORMS CONFIGURATION */
|
/* FORMS CONFIGURATION */
|
||||||
.form-panel {
|
.form-panel {
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
padding: 10px;
|
padding: 20px;
|
||||||
box-shadow: 0px 3px 2px #aab2bd;
|
box-shadow: 0px 3px 2px #aab2bd;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
Before Width: | Height: | Size: 382 KiB After Width: | Height: | Size: 382 KiB |
|
@ -8,9 +8,22 @@
|
||||||
{% block sub_main_page_title %}{% endblock %}
|
{% block sub_main_page_title %}{% endblock %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block sidebar_menu %}
|
||||||
|
{% if user.is_authenticated %}
|
||||||
|
<h5 class="centered username">{{ user.username }}</h5>
|
||||||
|
{% else %}
|
||||||
|
<h5 class="centered username">non connecté·e</h5>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
{% block sidenav %}
|
||||||
|
{% endblock %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block real_content %}
|
{% block real_content %}
|
||||||
<div class="row">
|
<div class="row row-centered">
|
||||||
<div class="col-lg-12">
|
<div class="{% block page_size %}col-lg-12{% endblock %} col-centered">
|
||||||
<h2><i class="fa fa-angle-right"></i>{% block page_title %}{% endblock %}</h2>
|
<h2><i class="fa fa-angle-right"></i>{% block page_title %}{% endblock %}</h2>
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
</div>
|
</div>
|
|
@ -38,7 +38,15 @@
|
||||||
<!--logo end-->
|
<!--logo end-->
|
||||||
{% include "base_nav.html" %}
|
{% include "base_nav.html" %}
|
||||||
</header>
|
</header>
|
||||||
{% include "base_sidebar_menu.html" %}
|
<aside>
|
||||||
|
<div id="sidebar" class="nav-collapse ">
|
||||||
|
<!-- sidebar menu start-->
|
||||||
|
<ul class="sidebar-menu" id="nav-accordion">
|
||||||
|
{% block sidebar_menu %}{% endblock %}
|
||||||
|
</ul>
|
||||||
|
<!-- sidebar menu end-->
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
<section id="main-content">
|
<section id="main-content">
|
||||||
<section class="wrapper site-min-height">
|
<section class="wrapper site-min-height">
|
||||||
{% block real_content %}{% endblock %}
|
{% block real_content %}{% endblock %}
|
|
@ -1,4 +1,5 @@
|
||||||
<ul class="nav navbar-top-links pull-right">
|
<ul class="nav navbar-top-links pull-right">
|
||||||
|
{% if user.is_authenticated %}
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
<i class="fa fa-bell fa-fw fa-lg"></i> <i class="fa fa-caret-down"></i>
|
<i class="fa fa-bell fa-fw fa-lg"></i> <i class="fa fa-caret-down"></i>
|
||||||
|
@ -59,21 +60,29 @@
|
||||||
<!-- /.dropdown-alerts -->
|
<!-- /.dropdown-alerts -->
|
||||||
</li>
|
</li>
|
||||||
<!-- /.dropdown -->
|
<!-- /.dropdown -->
|
||||||
|
{% endif %}
|
||||||
|
{% if user.is_authenticated %}
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
<i class="fa fa-user fa-fw fa-lg"></i> <i class="fa fa-caret-down"></i>
|
<i class="fa fa-user fa-fw fa-lg"></i> <i class="fa fa-caret-down"></i>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-user">
|
<ul class="dropdown-menu dropdown-user">
|
||||||
<li><a href="#"><i class="fa fa-user fa-fw"></i> User Profile</a>
|
<li><a href="#"><i class="fa fa-user fa-fw"></i>Mon profile</a>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#"><i class="fa fa-gear fa-fw"></i> Settings</a>
|
<li><a href="{% url "user:password_change" %}"><i class="fa fa-unlock-alt fa-fw"></i>Changer de mot de passe</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><a href="login.html"><i class="fa fa-sign-out fa-fw"></i> Logout</a>
|
<li><a href="{% url "user:logout" %}"><i class="fa fa-sign-out fa-fw"></i>Se déconnecter</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<!-- /.dropdown-user -->
|
<!-- /.dropdown-user -->
|
||||||
</li>
|
</li>
|
||||||
<!-- /.dropdown -->
|
<!-- /.dropdown -->
|
||||||
|
{% else %}
|
||||||
|
<li>
|
||||||
|
<a href="{% url "user:login" %}">
|
||||||
|
<i class="fa fa-sign-in fa-fw fa-lg"></i></a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
<!-- /.navbar-top-links -->
|
<!-- /.navbar-top-links -->
|
3
shared/tests.py
Normal file
3
shared/tests.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
3
shared/views.py
Normal file
3
shared/views.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
|
@ -1,7 +1,38 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
{% block aside %}
|
{% block sidenav %}
|
||||||
{% block user_aside_before %}{% endblock %}
|
{% if not user.is_authenticated %}
|
||||||
<p>Les comptes utilisateurs vous donnent accès à la gestion et d'évènements. Vous pouvez vous connecter par le CAS ENS ou via votre compte si vous n'avez pas d'identifiants CAS. Pour créer un tel compte il est nécessaire d'avoir une clée ; merci de contacter un-e administrat-rice-eur pour en obtenir une.</p>
|
<li>
|
||||||
{% block user_aside_after %}{% endblock %}
|
<a href="{% url "user:login" %}">
|
||||||
|
<i class="fa fa-sign-in"></i>
|
||||||
|
<span>Se connecter</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{% url "user:create_user" %}">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
<span>Créer un compte</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{% url "user:password_reset" %}">
|
||||||
|
<i class="fa fa-question"></i>
|
||||||
|
<span>Mot de passe oublié</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if user.is_authenticated %}
|
||||||
|
<li>
|
||||||
|
<a href="{% url "user:password_change" %}">
|
||||||
|
<i class="fa fa-unlock-alt"></i>
|
||||||
|
<span>Changer de mot de passe</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{% url "user:logout"%}">
|
||||||
|
<i class="fa fa-sign-out"></i>
|
||||||
|
<span>Se déconnecter</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -6,23 +6,3 @@
|
||||||
{% block extra_form_input %}
|
{% block extra_form_input %}
|
||||||
<input type="hidden" name="next" value="{{ next }}" />
|
<input type="hidden" name="next" value="{{ next }}" />
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block user_aside_after %}
|
|
||||||
<hr/>
|
|
||||||
<p>Vous n'avez pas de compte utilisateur et vous souhaiteriez en créer un ?</p>
|
|
||||||
<form action="{% url 'user:create_user' %}" class="form-horizontal">
|
|
||||||
<input type="submit" value="Créer un compte" class="btn btn-default btn-block btn-lg">
|
|
||||||
</form>
|
|
||||||
<hr/>
|
|
||||||
<p>Vous avez déjà un compte utilisateur et vous avez oublié votre mot de passe ?</p>
|
|
||||||
<form action="{% url 'user:password_reset' %}" class="form-horizontal">
|
|
||||||
<input type="submit" value="Réinitialiser le mot de passe" class="btn btn-default btn-block btn-lg">
|
|
||||||
</form>
|
|
||||||
<script type="text/javascript">
|
|
||||||
jQuery(document).ready(function() {
|
|
||||||
/* Met le focus sur le champ user
|
|
||||||
* du formulaire de connexion */
|
|
||||||
$('#id_username').focus();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
|
@ -1,25 +1,59 @@
|
||||||
{% extends "user/base_user.html" %}
|
{% extends "user/base_user.html" %}
|
||||||
|
{% load widget_tweaks %}
|
||||||
|
|
||||||
{% load bootstrap %}
|
{% load bootstrap %}
|
||||||
|
|
||||||
{% block section_title %}{{ sec_title }}{% endblock %}
|
{% block page_title %}{{ page_title }}{% endblock %}
|
||||||
|
|
||||||
|
{% block page_size %}col-lg-8{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if form.errors %}
|
<!-- BASIC FORM ELELEMNTS -->
|
||||||
<p class="text-danger">{% block user_error %}{% endblock %}</p>
|
<div class="row">
|
||||||
{% endif %}
|
<div class="col-lg-12">
|
||||||
<form class="form-horizontal" method="post" action="{%block action_name%}{%endblock%}">
|
<div class="form-panel">
|
||||||
{% csrf_token %}
|
<h4 class="mb"><i class="fa fa-angle-right"></i> Formulaire</h4>
|
||||||
<fieldset>
|
{% if form.errors %}
|
||||||
{% for field in form %}
|
<p class="text-danger">{% block user_error %}{% endblock %}</p>
|
||||||
{{ field | bootstrap }}
|
{% endif %}
|
||||||
{% endfor %}
|
<form class="form-horizontal style-form" method="post" action="{%block action_name%}{%endblock%}">
|
||||||
</fieldset>
|
{% csrf_token %}
|
||||||
<div class="form-action">
|
<fieldset>
|
||||||
<button type="submit" class="btn btn-primary pull-right">
|
{% for field in form %}
|
||||||
{{ button }}
|
{% if field.errors %}
|
||||||
</button>
|
<div class="form-group error">
|
||||||
{% block extra_form_input %}{% endblock %}
|
<label class="col-sm-2 control-label">{{ field.label }}</label>
|
||||||
|
<div class="controls col-sm-10">{{ field }}
|
||||||
|
<span class="help-inline">
|
||||||
|
{% for error in field.errors %}{{ error }}{% endfor %}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-2 control-label">{{ field.label }}</label>
|
||||||
|
<div class="col-sm-10 controls">{{ field | attr:"class:form-control" }}
|
||||||
|
{% if field.help_text %}
|
||||||
|
<p class="help-inline"><small>{{ field.help_text | safe }}</small></p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</fieldset>
|
||||||
|
<div class="form-action">
|
||||||
|
<div class=text-right>
|
||||||
|
<button type="submit" class="btn btn-theme">
|
||||||
|
{{ button }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
{% block extra_form_input %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div><!-- col-lg-12-->
|
||||||
|
</div><!-- /row -->
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
/* Met le focus sur le premier champ input
|
/* Met le focus sur le premier champ input
|
||||||
|
|
91
user/urls.py
91
user/urls.py
|
@ -1,7 +1,7 @@
|
||||||
from django.conf.urls import url, include
|
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.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from event.views import Index #TODO : mettre le vrai home
|
from event.views import Index # TODO : mettre le vrai home
|
||||||
from user.views import CreateUser
|
from user.views import CreateUser
|
||||||
|
|
||||||
app_name = 'user'
|
app_name = 'user'
|
||||||
|
@ -11,78 +11,67 @@ urlpatterns = [
|
||||||
# LOGIN
|
# LOGIN
|
||||||
url('^login/$',
|
url('^login/$',
|
||||||
auth_views.login,
|
auth_views.login,
|
||||||
{ 'template_name': 'user/login.html',
|
{'template_name': 'user/login.html',
|
||||||
'extra_context': {
|
'extra_context': {
|
||||||
'sec_title' : 'Connexion',
|
'page_title': 'Connexion',
|
||||||
'button' : 'Se connecter',
|
'button': 'Se connecter',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
name='login',
|
name='login',
|
||||||
),
|
),
|
||||||
# LOGOUT
|
# LOGOUT
|
||||||
url('^logout/$',
|
url('^logout/$',
|
||||||
auth_views.logout,
|
auth_views.logout,
|
||||||
#TODO : mettre le vrai home
|
# TODO : mettre le vrai home
|
||||||
{ 'next_page': reverse_lazy('event:index'),
|
{'next_page': reverse_lazy('event:index'),
|
||||||
},
|
},
|
||||||
name='logout',),
|
name='logout',),
|
||||||
# PASSWORD_CHANGE
|
# PASSWORD_CHANGE
|
||||||
url('^password_change/$',
|
url('^password_change/$',
|
||||||
auth_views.password_change,
|
auth_views.password_change,
|
||||||
{ 'template_name': 'user/change_pass.html',
|
{'template_name': 'user/change_pass.html',
|
||||||
#TODO : mettre le vrai home
|
# TODO : mettre le vrai home
|
||||||
'post_change_redirect': reverse_lazy('event:index'),
|
'post_change_redirect': reverse_lazy('event:index'),
|
||||||
'extra_context': {
|
'extra_context': {
|
||||||
'sec_title' : 'Changement de mot de passe',
|
'page_title': 'Changement de mot de passe',
|
||||||
'button' : 'Modifier',
|
'button': 'Modifier',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
name='password_change'),
|
name='password_change'),
|
||||||
# url('^password_change/done/$', name='password_change_done'),
|
# url('^password_change/done/$', name='password_change_done'),
|
||||||
# RESET PASSWORD
|
# RESET PASSWORD
|
||||||
url('^password_reset/$',
|
url('^password_reset/$',
|
||||||
auth_views.password_reset,
|
auth_views.password_reset,
|
||||||
{ 'template_name' : 'user/password_reset.html',
|
{'template_name': 'user/password_reset.html',
|
||||||
'email_template_name': 'email_password_reset.html',
|
'email_template_name': 'email_password_reset.html',
|
||||||
'subject_template_name': 'subject_password_reset.txt',
|
'subject_template_name': 'subject_password_reset.txt',
|
||||||
'post_reset_redirect': reverse_lazy('user:password_reset_done'),
|
'post_reset_redirect': reverse_lazy('user:password_reset_done'),
|
||||||
'extra_context': {
|
'extra_context': {
|
||||||
'sec_title' : 'Demande de nouveau mot de passe',
|
'page_title': 'Demander un nouveau mot de passe',
|
||||||
'button' : 'Envoyer'
|
'button': 'Envoyer'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
name='password_reset'),
|
name='password_reset'),
|
||||||
# PASS RESET DONE
|
# PASS RESET DONE
|
||||||
url('^password_reset/done/$',
|
url('^password_reset/done/$',
|
||||||
#TODO : mettre le vrai home
|
# TODO : mettre le vrai home
|
||||||
Index.as_view(),
|
Index.as_view(),
|
||||||
name='password_reset_done'),
|
name='password_reset_done'),
|
||||||
# PASS RESET CONFIRM
|
# PASS RESET CONFIRM
|
||||||
url('^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
|
url('^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
|
||||||
auth_views.password_reset_confirm,
|
auth_views.password_reset_confirm,
|
||||||
{
|
{
|
||||||
'template_name': 'user/user_form.html',
|
'template_name': 'user/user_form.html',
|
||||||
'post_reset_redirect' : reverse_lazy('user:password_reset_complete'),
|
'post_reset_redirect': reverse_lazy('user:password_reset_complete'),
|
||||||
'extra_context': {
|
'extra_context': {
|
||||||
'sec_title' : 'Changer de mot de passe',
|
'page_title': 'Changer de mot de passe',
|
||||||
'button' : 'Changer'
|
'button': 'Changer'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
name='password_reset_confirm'),
|
name='password_reset_confirm'),
|
||||||
# PASS RESET COMPLETE
|
# PASS RESET COMPLETE
|
||||||
url('^reset/done/$',
|
url('^reset/done/$',
|
||||||
#TODO : mettre le vrai home
|
# TODO : mettre le vrai home
|
||||||
Index.as_view(),
|
Index.as_view(),
|
||||||
name='password_reset_complete'),
|
name='password_reset_complete'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# Inclu les vues suivantes :
|
|
||||||
|
|
||||||
# ^login/$ [name='login']
|
|
||||||
# ^logout/$ [name='logout']
|
|
||||||
# ^password_change/$ [name='password_change']
|
|
||||||
# ^password_change/done/$ [name='password_change_done']
|
|
||||||
# ^password_reset/$ [name='password_reset']
|
|
||||||
# ^password_reset/done/$ [name='password_reset_done']
|
|
||||||
# ^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$ [name='password_reset_confirm']
|
|
||||||
# ^reset/done/$ [name='password_reset_complete']
|
|
||||||
|
|
|
@ -11,5 +11,5 @@ class CreateUser(SuccessMessageMixin, CreateView):
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
ctx = super(CreateUser, self).get_context_data(**kwargs)
|
ctx = super(CreateUser, self).get_context_data(**kwargs)
|
||||||
ctx['button'] = 'Créer'
|
ctx['button'] = 'Créer'
|
||||||
ctx['sec_title'] = "Création d'utilisateur"
|
ctx['page_title'] = "Création d'utilisateur"
|
||||||
return ctx
|
return ctx
|
||||||
|
|
|
@ -1,298 +0,0 @@
|
||||||
/*
|
|
||||||
* Index
|
|
||||||
*/
|
|
||||||
html {
|
|
||||||
height : 100% ;
|
|
||||||
}
|
|
||||||
|
|
||||||
body{
|
|
||||||
display : flex;
|
|
||||||
flex-direction: column;
|
|
||||||
height : 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
header, footer {
|
|
||||||
flex: 0 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#principal {
|
|
||||||
flex : 1 0 auto ;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.pad_list_last_modif {
|
|
||||||
font-style : italic ;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.pad_list_title {
|
|
||||||
font-weight : bold ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.strong-banner {
|
|
||||||
padding-top : 10px;
|
|
||||||
padding-bottom : 10px ;
|
|
||||||
background-color : #869C98;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-header {
|
|
||||||
margin-top : 0px ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar {
|
|
||||||
margin-bottom : 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.soft-banner h1 {
|
|
||||||
margin : 0px ;
|
|
||||||
padding : 15px 0px 10px 0px ;
|
|
||||||
color : white ;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h1 {
|
|
||||||
border-bottom : 7px solid #DB4437 ;
|
|
||||||
padding-bottom : 5px ;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h2 {
|
|
||||||
border-bottom : 2px solid #DB4437 ;
|
|
||||||
padding-bottom : 5px ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.soft-banner {
|
|
||||||
background-color : #B1D0C8;
|
|
||||||
}
|
|
||||||
|
|
||||||
main,
|
|
||||||
aside {
|
|
||||||
padding-top : 10px ;
|
|
||||||
padding-bottom : 10px ;
|
|
||||||
}
|
|
||||||
|
|
||||||
aside {
|
|
||||||
margin-top : 25px ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row-eq-height {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
.navbar-nav {
|
|
||||||
float : right ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-inverse {
|
|
||||||
background-color : transparent ;
|
|
||||||
border-style : none ;
|
|
||||||
}
|
|
||||||
|
|
||||||
aside {
|
|
||||||
background-color : #F1F1F1 ;
|
|
||||||
border-style : solid ;
|
|
||||||
border-width : 3px 0px 0px 0px;
|
|
||||||
border-color : #DADADA ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-collapse {
|
|
||||||
padding : 0px ;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color : #D81138 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover,
|
|
||||||
a:active,
|
|
||||||
a:focus {
|
|
||||||
color : #D81138 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
hr {
|
|
||||||
border-top : 1px solid #D1D1D1 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-brand {
|
|
||||||
padding : 0px ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-inverse .navbar-nav > li > a {
|
|
||||||
color : white ;
|
|
||||||
text-transform : uppercase ;
|
|
||||||
font-family : 'Teko', sans-serif;
|
|
||||||
font-size : x-large;
|
|
||||||
font-weight : 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-inverse .navbar-nav > .active > a,
|
|
||||||
.navbar-inverse .navbar-nav > .active > a:hover,
|
|
||||||
.navbar-inverse .navbar-nav > .active > a:focus {
|
|
||||||
color : #DB7E76 ;
|
|
||||||
background-color : transparent ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-inverse .navbar-nav > li > a:hover,
|
|
||||||
.navbar-inverse .navbar-nav > li > a:focus {
|
|
||||||
color : #EFB0AA ;
|
|
||||||
background : transparent ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.copyrights {
|
|
||||||
font-family : 'Nunito', sans-serif;
|
|
||||||
color : #D5B091 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-inverse .navbar-toggle {
|
|
||||||
border-color : #DB7E76 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-inverse .navbar-toggle:hover,
|
|
||||||
.navbar-inverse .navbar-toggle:focus {
|
|
||||||
background-color : #DB7E76 ;
|
|
||||||
border-color : #DB4437 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-collapse {
|
|
||||||
border-top: 0px solid transparent ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-inverse .navbar-nav > .open > a,
|
|
||||||
.navbar-inverse .navbar-nav > .open > a:focus,
|
|
||||||
.navbar-inverse .navbar-nav > .open > a:hover {
|
|
||||||
background-color: #DB7E76 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.soft-banner a,
|
|
||||||
.soft-banner a:hover {
|
|
||||||
color : white ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bottom-banner {
|
|
||||||
padding-top : 15px ;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bottom-banner ul {
|
|
||||||
list-style-type: none ;
|
|
||||||
padding-left: 0px;
|
|
||||||
padding-top: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Messages
|
|
||||||
*
|
|
||||||
.message-info {
|
|
||||||
color : #31708f;
|
|
||||||
background-color: #d9edf7;
|
|
||||||
border-color : #bce8f1;
|
|
||||||
}
|
|
||||||
.message-success {
|
|
||||||
color : #3c763d;
|
|
||||||
background-color: #dff0d8;
|
|
||||||
border-color : #d6e9c6;
|
|
||||||
}
|
|
||||||
.message-warning {
|
|
||||||
color : #8a6d3b;
|
|
||||||
background-color: #fcf8e3;
|
|
||||||
border-color : #faebcc;
|
|
||||||
}
|
|
||||||
.message-error {
|
|
||||||
color : #a94442;
|
|
||||||
background-color: #f2dede;
|
|
||||||
border-color : #ebccd1;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Formulaires
|
|
||||||
*/
|
|
||||||
|
|
||||||
.form-horizontal .form-group {
|
|
||||||
margin-right: 0px;
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #DB4437;
|
|
||||||
border-color: #B6443A;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary:focus,
|
|
||||||
.btn-primary.focus {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #286090;
|
|
||||||
border-color: #B6443A;
|
|
||||||
}
|
|
||||||
.btn-primary:hover {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #DB7E76;
|
|
||||||
border-color: #B6443A;
|
|
||||||
}
|
|
||||||
.btn-primary:active,
|
|
||||||
.btn-primary.active,
|
|
||||||
.open > .dropdown-toggle.btn-primary {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #B45951;
|
|
||||||
border-color: #B6443A;
|
|
||||||
}
|
|
||||||
.btn-primary:active:hover,
|
|
||||||
.btn-primary.active:hover,
|
|
||||||
.open > .dropdown-toggle.btn-primary:hover,
|
|
||||||
.btn-primary:active:focus,
|
|
||||||
.btn-primary.active:focus,
|
|
||||||
.open > .dropdown-toggle.btn-primary:focus,
|
|
||||||
.btn-primary:active.focus,
|
|
||||||
.btn-primary.active.focus,
|
|
||||||
.open > .dropdown-toggle.btn-primary.focus {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #B45951;
|
|
||||||
border-color: #B6443A;
|
|
||||||
}
|
|
||||||
.btn-primary:active,
|
|
||||||
.btn-primary.active,
|
|
||||||
.open > .dropdown-toggle.btn-primary {
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.btn-primary.disabled:hover,
|
|
||||||
.btn-primary[disabled]:hover,
|
|
||||||
fieldset[disabled] .btn-primary:hover,
|
|
||||||
.btn-primary.disabled:focus,
|
|
||||||
.btn-primary[disabled]:focus,
|
|
||||||
fieldset[disabled] .btn-primary:focus,
|
|
||||||
.btn-primary.disabled.focus,
|
|
||||||
.btn-primary[disabled].focus,
|
|
||||||
fieldset[disabled] .btn-primary.focus {
|
|
||||||
background-color: #B45951;
|
|
||||||
border-color: #B6443A;
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea:focus,
|
|
||||||
input[type="text"]:focus,
|
|
||||||
input[type="password"]:focus,
|
|
||||||
input[type="datetime"]:focus,
|
|
||||||
input[type="datetime-local"]:focus,
|
|
||||||
input[type="date"]:focus,
|
|
||||||
input[type="month"]:focus,
|
|
||||||
input[type="time"]:focus,
|
|
||||||
input[type="week"]:focus,
|
|
||||||
input[type="number"]:focus,
|
|
||||||
input[type="email"]:focus,
|
|
||||||
input[type="url"]:focus,
|
|
||||||
input[type="search"]:focus,
|
|
||||||
input[type="tel"]:focus,
|
|
||||||
input[type="color"]:focus,
|
|
||||||
.uneditable-input:focus,
|
|
||||||
.form-control:focus {
|
|
||||||
border-color: rgba(219, 126, 118, 0.8);
|
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(219, 118, 118, 0.6);
|
|
||||||
outline: 0 none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
input.slug-suggest {
|
|
||||||
color : #999894;
|
|
||||||
}*/
|
|
Loading…
Reference in a new issue