diff --git a/equipment/models.py b/equipment/models.py
index e93cbd3..9233787 100644
--- a/equipment/models.py
+++ b/equipment/models.py
@@ -47,7 +47,7 @@ class EquipmentAttribution(models.Model):
equipment = models.ForeignKey(AbstractEquipment)
activity = models.ForeignKey(Activity)
amount = models.PositiveSmallIntegerField(_("Quantité attribuée"))
- remarks = models.TextField("Remarques concernant l'attribution")
+ remarks = models.TextField(_("Remarques concernant l'attribution"))
class Meta:
verbose_name = _("attribution de matériel")
@@ -60,7 +60,7 @@ class EquipmentAttribution(models.Model):
class EquipmentRemark(models.Model):
- remark = models.TextField("Remarque sur le matériel")
+ remark = models.TextField(_("Remarque sur le matériel"))
equipment = models.ForeignKey(
AbstractEquipment,
related_name="remarks",
diff --git a/evenementiel/settings/common.py b/evenementiel/settings/common.py
index 691730d..b5620bb 100644
--- a/evenementiel/settings/common.py
+++ b/evenementiel/settings/common.py
@@ -44,7 +44,7 @@ BASE_DIR = os.path.dirname(
INSTALLED_APPS = [
'equipment.apps.EquipmentConfig',
'event.apps.EventConfig',
- 'user.apps.UserConfig',
+ 'users.apps.UsersConfig',
'shared.apps.SharedConfig',
'django.contrib.admin',
'django.contrib.auth',
diff --git a/evenementiel/urls.py b/evenementiel/urls.py
index df8afe0..d83241d 100644
--- a/evenementiel/urls.py
+++ b/evenementiel/urls.py
@@ -8,7 +8,7 @@ from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^event/', include('event.urls')),
- url(r'^user/', include('user.urls')),
+ url(r'^user/', include('users.urls')),
url(r'^', include('shared.urls')),
]
diff --git a/event/models.py b/event/models.py
index 7723796..aaad757 100644
--- a/event/models.py
+++ b/event/models.py
@@ -66,14 +66,14 @@ class ActivityTag(models.Model):
)
color_regex = RegexValidator(
regex=r'^#(?:[0-9a-fA-F]{3}){1,2}$',
- message="La chaîne de caractère rentrée n'est pas"
- "une couleur en hexadécimal.",
+ message=_("La chaîne de caractère rentrée n'est pas"
+ " une couleur en hexadécimal."),
)
color = models.CharField(
_('Couleur'),
max_length=7,
validators=[color_regex],
- help_text="Rentrer une couleur en hexadécimal",
+ help_text=_("Rentrer une couleur en hexadécimal"),
)
class Meta:
diff --git a/provisioning/bootstrap.sh b/provisioning/bootstrap.sh
index 15f76d6..6526c86 100644
--- a/provisioning/bootstrap.sh
+++ b/provisioning/bootstrap.sh
@@ -28,7 +28,7 @@ function fill_template {
# ---
# System packages
-apt-get update && apt-get upgrade
+apt-get update && apt-get upgrade -y
apt-get install -y python3-pip python3-dev python3-venv libpq-dev postgresql \
postgresql-contrib libjpeg-dev nginx redis-server
diff --git a/shared/templates/base.html b/shared/templates/base.html
index ac763ba..fe950b6 100644
--- a/shared/templates/base.html
+++ b/shared/templates/base.html
@@ -1,5 +1,6 @@
{% extends "base_html.html" %}
{% load staticfiles %}
+{% load i18n %}
{% block title %}GestionÉvènementiel{% block sub_title %}{% endblock %}{% endblock %}
@@ -12,7 +13,7 @@
{% if user.is_authenticated %}
{{ user.username }}
{% else %}
- non connecté·e
+ {% trans "non connecté·e" %}
{% endif %}
@@ -20,35 +21,35 @@
{% block sidenav %}
{% if not user.is_authenticated %}
-
+
- Se connecter
+ {% trans "Se connecter" %}
-
+
- Créer un compte
+ {% trans "Créer un compte" %}
-
+
- Mot de passe oublié
+ {% trans "Mot de passe oublié" %}
{% endif %}
{% if user.is_authenticated %}
-
+
- Changer de mot de passe
+ {% trans "Changer de mot de passe" %}
-
+
- Se déconnecter
+ {% trans "Se déconnecter" %}
{% endif %}
@@ -66,4 +67,3 @@
{% endblock %}
-
diff --git a/shared/templates/base_error.html b/shared/templates/base_error.html
index 841b576..88fb504 100644
--- a/shared/templates/base_error.html
+++ b/shared/templates/base_error.html
@@ -1,5 +1,3 @@
{% extends "base.html" %}
-{% block page_title %}Erreur !{% endblock %}
-
-
+{% block page_title %}{% trans "Erreur !" %}{% endblock %}
diff --git a/shared/templates/base_footer.html b/shared/templates/base_footer.html
index 331c9e4..ca69991 100644
--- a/shared/templates/base_footer.html
+++ b/shared/templates/base_footer.html
@@ -1,5 +1,8 @@
+{% load i18n %}
diff --git a/shared/templates/base_nav.html b/shared/templates/base_nav.html
index 57a059a..65a0f67 100644
--- a/shared/templates/base_nav.html
+++ b/shared/templates/base_nav.html
@@ -1,3 +1,4 @@
+{% load i18n %}
{% if user.is_authenticated %}
-
@@ -67,12 +68,12 @@
@@ -80,7 +81,7 @@
{% else %}
-
-
+
{% endif %}
diff --git a/shared/templates/home.html b/shared/templates/home.html
index ec425b7..ee3e655 100644
--- a/shared/templates/home.html
+++ b/shared/templates/home.html
@@ -1,6 +1,7 @@
{% extends "base.html" %}
+{% load i18n %}
-{% block page_title %}Acceuil{% endblock %}
+{% block page_title %}{% trans "Accueil" %}{% endblock %}
{% block content %}
Bonjours, je suis une maison
diff --git a/shared/urls.py b/shared/urls.py
index f591c4a..1ffb7e5 100644
--- a/shared/urls.py
+++ b/shared/urls.py
@@ -3,5 +3,5 @@ from .views import Home
app_name = 'shared'
urlpatterns = [
- url(r'$', Home.as_view(), name='home'),
+ url(r'^$', Home.as_view(), name='home'),
]
diff --git a/user/apps.py b/user/apps.py
deleted file mode 100644
index 35048d4..0000000
--- a/user/apps.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from django.apps import AppConfig
-
-
-class UserConfig(AppConfig):
- name = 'user'
diff --git a/user/migrations/0001_initial.py b/user/migrations/0001_initial.py
deleted file mode 100644
index 04a012f..0000000
--- a/user/migrations/0001_initial.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9.6 on 2016-06-14 22:17
-from __future__ import unicode_literals
-
-from django.conf import settings
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- initial = True
-
- dependencies = [
- migrations.swappable_dependency(settings.AUTH_USER_MODEL),
- ]
-
- operations = [
- migrations.CreateModel(
- name='Profil',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
- ],
- ),
- ]
diff --git a/user/migrations/0002_auto_20160616_1803.py b/user/migrations/0002_auto_20160616_1803.py
deleted file mode 100644
index 4193a65..0000000
--- a/user/migrations/0002_auto_20160616_1803.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9.6 on 2016-06-16 16:03
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('user', '0001_initial'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='profil',
- name='modif_pad',
- field=models.BooleanField(default=False, verbose_name='Modifier tous les pads'),
- ),
- migrations.AddField(
- model_name='profil',
- name='read_kholle',
- field=models.BooleanField(default=False, verbose_name='Lecture de khôlles'),
- ),
- migrations.AddField(
- model_name='profil',
- name='write_kholle',
- field=models.BooleanField(default=False, verbose_name='Écriture de khôlles'),
- ),
- migrations.AddField(
- model_name='profil',
- name='write_pad',
- field=models.BooleanField(default=False, verbose_name='Écrire des pads'),
- ),
- ]
diff --git a/user/migrations/0003_auto_20160623_1603.py b/user/migrations/0003_auto_20160623_1603.py
deleted file mode 100644
index 401255c..0000000
--- a/user/migrations/0003_auto_20160623_1603.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9.6 on 2016-06-23 14:03
-from __future__ import unicode_literals
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('user', '0002_auto_20160616_1803'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='profil',
- name='modif_pad',
- ),
- migrations.RemoveField(
- model_name='profil',
- name='read_kholle',
- ),
- migrations.RemoveField(
- model_name='profil',
- name='write_kholle',
- ),
- migrations.RemoveField(
- model_name='profil',
- name='write_pad',
- ),
- ]
diff --git a/user/migrations/0004_auto_20160623_1808.py b/user/migrations/0004_auto_20160623_1808.py
deleted file mode 100644
index d2c52e2..0000000
--- a/user/migrations/0004_auto_20160623_1808.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9.6 on 2016-06-23 16:08
-from __future__ import unicode_literals
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('user', '0003_auto_20160623_1603'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='profil',
- name='user',
- ),
- migrations.DeleteModel(
- name='Profil',
- ),
- ]
diff --git a/user/migrations/__init__.py b/user/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/user/templates/user/change_pass.html b/user/templates/user/change_pass.html
deleted file mode 100644
index ff663aa..0000000
--- a/user/templates/user/change_pass.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{% extends "user/user_form.html" %}
-
-{% block action_name %}{% url 'user:password_change' %}{% endblock %}
-{% block user_error %}Une erreur s'est produite, veuillez réessayer.{% endblock %}
diff --git a/user/templates/user/password_reset.html b/user/templates/user/password_reset.html
deleted file mode 100644
index 799ab8e..0000000
--- a/user/templates/user/password_reset.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{% extends "user/user_form.html" %}
-
-{% block action_name %}{% url 'user:password_reset' %}{% endblock %}
-{% block user_error %}L'identitfiant et le mot de passe ne correspondent pas !{% endblock %}
diff --git a/user/templates/user/subject_password_reset.txt b/user/templates/user/subject_password_reset.txt
deleted file mode 100644
index 68bd26c..0000000
--- a/user/templates/user/subject_password_reset.txt
+++ /dev/null
@@ -1 +0,0 @@
-[Qwann.fr] Réinitialisation du mot de passe
diff --git a/user/__init__.py b/users/__init__.py
similarity index 100%
rename from user/__init__.py
rename to users/__init__.py
diff --git a/user/admin.py b/users/admin.py
similarity index 100%
rename from user/admin.py
rename to users/admin.py
diff --git a/users/apps.py b/users/apps.py
new file mode 100644
index 0000000..4ce1fab
--- /dev/null
+++ b/users/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class UsersConfig(AppConfig):
+ name = 'users'
diff --git a/user/forms.py b/users/forms.py
similarity index 100%
rename from user/forms.py
rename to users/forms.py
diff --git a/user/models.py b/users/models.py
similarity index 100%
rename from user/models.py
rename to users/models.py
diff --git a/users/templates/users/change_pass.html b/users/templates/users/change_pass.html
new file mode 100644
index 0000000..d022018
--- /dev/null
+++ b/users/templates/users/change_pass.html
@@ -0,0 +1,4 @@
+{% extends "users/user_form.html" %}
+
+{% block action_name %}{% url 'users:password_change' %}{% endblock %}
+{% block user_error %}Une erreur s'est produite, veuillez réessayer.{% endblock %}
diff --git a/user/templates/user/email_password_reset.html b/users/templates/users/email_password_reset.html
similarity index 74%
rename from user/templates/user/email_password_reset.html
rename to users/templates/users/email_password_reset.html
index d9dbd1a..8bdaf45 100644
--- a/user/templates/user/email_password_reset.html
+++ b/users/templates/users/email_password_reset.html
@@ -1,6 +1,6 @@
Bonjour,
Quelqu'un a demandé à réinitialiser le mot de passe pour le compte utilisateur de qwann.fr utilisant l'adresse mail : {{ email }}. Pour réinitialiser le mot de passe, veuillez suivre le lien suivant :
-{{ protocol}}://qwann.fr{% url 'user:password_reset_confirm' uidb64=uid token=token %}
+{{ protocol}}://qwann.fr{% url 'users:password_reset_confirm' uidb64=uid token=token %}
Merci de ne pas répondre à ce mail.
diff --git a/user/templates/user/login.html b/users/templates/users/login.html
similarity index 66%
rename from user/templates/user/login.html
rename to users/templates/users/login.html
index 5cdbef5..90b2fed 100644
--- a/user/templates/user/login.html
+++ b/users/templates/users/login.html
@@ -1,6 +1,6 @@
-{% extends "user/user_form.html" %}
+{% extends "users/user_form.html" %}
-{% block action_name %}{% url 'user:login' %}{% endblock %}
+{% block action_name %}{% url 'users:login' %}{% endblock %}
{% block user_error %}L'identitfiant et le mot de passe ne correspondent pas !{% endblock %}
{% block extra_form_input %}
diff --git a/users/templates/users/password_reset.html b/users/templates/users/password_reset.html
new file mode 100644
index 0000000..2847c99
--- /dev/null
+++ b/users/templates/users/password_reset.html
@@ -0,0 +1,4 @@
+{% extends "users/user_form.html" %}
+
+{% block action_name %}{% url 'users:password_reset' %}{% endblock %}
+{% block user_error %}L'identitfiant et le mot de passe ne correspondent pas !{% endblock %}
diff --git a/users/templates/users/subject_password_reset.txt b/users/templates/users/subject_password_reset.txt
new file mode 100644
index 0000000..a0be86b
--- /dev/null
+++ b/users/templates/users/subject_password_reset.txt
@@ -0,0 +1 @@
+[Évenementiel] Réinitialisation du mot de passe
diff --git a/user/templates/user/user_form.html b/users/templates/users/user_form.html
similarity index 100%
rename from user/templates/user/user_form.html
rename to users/templates/users/user_form.html
diff --git a/user/tests.py b/users/tests.py
similarity index 100%
rename from user/tests.py
rename to users/tests.py
diff --git a/user/urls.py b/users/urls.py
similarity index 62%
rename from user/urls.py
rename to users/urls.py
index 13898b9..6933001 100644
--- a/user/urls.py
+++ b/users/urls.py
@@ -1,55 +1,56 @@
from django.conf.urls import url
from django.contrib.auth import views as auth_views
from django.core.urlresolvers import reverse_lazy
+from django.utils.translation import ugettext_lazy as _
from shared.views import Home
-from user.views import CreateUser
+from users.views import CreateUser
-app_name = 'user'
+app_name = 'users'
urlpatterns = [
# CREATE USER
- url('^create/$', CreateUser.as_view(), name='create_user'),
+ url(r'^create/$', CreateUser.as_view(), name='create_user'),
# LOGIN
- url('^login/$',
+ url(r'^login/$',
auth_views.login,
- {'template_name': 'user/login.html',
+ {'template_name': 'users/login.html',
'extra_context': {
- 'page_title': 'Connexion',
- 'button': 'Se connecter',
+ 'page_title': _('Connexion'),
+ 'button': _('Se connecter'),
},
},
name='login',
),
# LOGOUT
- url('^logout/$',
+ url(r'^logout/$',
auth_views.logout,
name='logout',),
# PASSWORD_CHANGE
- url('^password_change/$',
+ url(r'^password_change/$',
auth_views.password_change,
- {'template_name': 'user/change_pass.html',
+ {'template_name': 'users/change_pass.html',
'post_change_redirect': reverse_lazy('shared:home'),
'extra_context': {
- 'page_title': 'Changement de mot de passe',
- 'button': 'Modifier',
+ 'page_title': _('Changement de mot de passe'),
+ 'button': _('Modifier'),
},
},
name='password_change'),
# url('^password_change/done/$', name='password_change_done'),
# RESET PASSWORD
- url('^password_reset/$',
+ url(r'^password_reset/$',
auth_views.password_reset,
- {'template_name': 'user/password_reset.html',
+ {'template_name': 'users/password_reset.html',
'email_template_name': 'email_password_reset.html',
'subject_template_name': 'subject_password_reset.txt',
- 'post_reset_redirect': reverse_lazy('user:password_reset_done'),
+ 'post_reset_redirect': reverse_lazy('users:password_reset_done'),
'extra_context': {
- 'page_title': 'Demander un nouveau mot de passe',
- 'button': 'Envoyer'
+ 'page_title': _('Demander un nouveau mot de passe'),
+ 'button': _('Envoyer')
},
},
name='password_reset'),
# PASS RESET DONE
- url('^password_reset/done/$',
+ url(r'^password_reset/done/$',
Home.as_view(),
name='password_reset_done'),
# PASS RESET CONFIRM
@@ -62,13 +63,13 @@ urlpatterns = [
'user:password_reset_complete'
),
'extra_context': {
- 'page_title': 'Changer de mot de passe',
- 'button': 'Changer'
+ 'page_title': _('Changer de mot de passe'),
+ 'button': _('Changer')
},
},
name='password_reset_confirm'),
# PASS RESET COMPLETE
- url('^reset/done/$',
+ url(r'^reset/done/$',
Home.as_view(),
name='password_reset_complete'),
]
diff --git a/user/views.py b/users/views.py
similarity index 87%
rename from user/views.py
rename to users/views.py
index 1860113..0746591 100644
--- a/user/views.py
+++ b/users/views.py
@@ -1,11 +1,11 @@
-from user.forms import CreateUserForm
+from .forms import CreateUserForm
from django.views.generic.edit import CreateView
from django.contrib.messages.views import SuccessMessageMixin
from django.core.urlresolvers import reverse_lazy
class CreateUser(SuccessMessageMixin, CreateView):
- template_name = 'user/user_form.html'
+ template_name = 'users/user_form.html'
form_class = CreateUserForm
success_url = reverse_lazy('shared:home')
success_message = "Votre compte utilisateur a été correctement créé !"