Fichier de configuration
Avertissement
Cette page décrit la structure du fichier de configuration pour django-voting-app. Néanmoins, pour le moment, il est impossible d’éditer n’importe quelle valeur lors de l’installation par docker.
La configuration est fait dans le fichier local_settings.py
. Vous pouvez copier un fichier d’example dpeuis src/django_voting_app/local_settings.example.py
.
cp src/django_voting_app/local_settings.example.py src/django_voting_app/local_settings.py
Ensuite, il faut éditer les valeurs dans le fichier.
Note
Le fichier local_settings.py
est inclus à la fin du fichier de configuration donc il est possible de remplaçer n’importe quelle valeur des paramètres. Néanmoins, nous conseillons d’éditer que les valeurs dans le fichier d’exemple, listées ci-après
Les paramètres relatifs à Django
Pour plus de détails, merci de se référer à la documentation officielle : <https://docs.djangoproject.com/fr/3.0/ref/settings>`_
- SECRET_KEY
Valeur par défaut : ""
Une clé secrète pour une installation précise de Django. Elle est utilisé pour des signatures cryptographiques et doit mise à une valeur unique et aléatoire. Cette valeur doit être gardée secrète.
Avertissement
Django ne démarrera pas sans clé secrète.
- DEBUG
Valeur par défaut : False
Un booléen qui active ou désactive le mode débug. En production, il faut utiliser False
.
- ALLOWED_HOSTS
Valeur par défaut : []
Une liste de chaines de caratères représentant les IPs et domaines sur lesquelsdjango peut tourner.
Avertissement
Django ne démarrera pas si DEBUG=False
et ALLOWED_HOSTS=[]
.
- ADMINS
Valeur par défaut : []
Une liste de tuples représentant les admins au format (nom, mail)
- DATABASES
Valeur par défaut :
{
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
Si vous utilisez une bade de données postgresql, sur la même machine que django-voting-app, ça devrait ressembler à :
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "django-voting-app",
"USER": "django-voting-app",
"PASSWORD": "secret",
"HOST": "localhost",
}
}
- TIME_ZONE
Valeur par défaut : "UTC"
Fuseau horaire du serveur.
- STATIC_ROOT
Valeur par défaut : BASE_DIR / "staticfiles"
Dossier dans lequle les fichiers statics seront copiés. Il faudra faire un alias de /static
vers ce répertoire.
- MEDIA_ROOT
Valeur par défaut : BASE_DIR / "media"
Dossier dans lequel les fichiers media sont stockés. Vous devez faire un alais pour /media
vers ce dossier.
Paramètres de modeltranslations
django-voting-app utilises django-modeltranslation pour traduire les instaces des modèles.
La traduction devrait fonctionner automatiquement sans configuration mais si vous souhaityez faire quelques modifications, il y a quelques paramètres intéressants (voir la documentation officielle pour plus de détails).
django-voting-app supporte les langues suivants :
Anglais (en)
Français (fr)
Pour sélectionner la langue par défaut pour vos modèles, vous pouvez utiliser
- MODELTRANSLATION_DEFAULT_LANGUAGE
Valeur par défaut : "en"
Aussi, si vous voulez utiliser d’autres langues que l’anglaisou le français, vous pouvez modifier le paramètre
- MODELTRANSLATION_LANGUAGES
Valeur par défaut : ["en", "fr"]
Les gens pourront changer vers n’importe quel langage listé dans MODELTRANSLATION_LANGUAGES
même si le langage n’est pas supporté par django-voting-app.
paramètres de django-voting-app
Il y a 3 paramètres pour django-voting-app :
- VOTE_NAME
Valeur par défaut : "Django Voting app"
Ce texte est affiché dans la barre de naviguation et dans l’onglet.
- VOTE_SEE_BEFORE_END
Valeur par défaut : False
Si mis à True, le staff ne peut voir les résultats qu’une fois le vote fini.
- VOTE_LOCAL_LEGALS
Valeur par défaut : chaine de caractère vide
Texte affiché sur la page des mentions légales. Si la valeur est une chaine vide, al section n’est pas affichée.
Liaison avec le LDAP
À la base, cette application a été développée pour être lié au LDAPet faire un système de vote dans une association.
C’est totalement indépendant de django-voting-app mais voilà un example de comment faire.
Installer le paquet django-auth-ldap et le configurer ainsi
# Add the authentication class
AUTHENTICATION_BACKENDS = (
"django.contrib.auth.backends.ModelBackend",
"django_auth_ldap.backend.LDAPBackend",
)
# Uri of the ldap server
AUTH_LDAP_SERVER_URI = "ldap://ldap.example.org"
# Bind user to LDAP
AUTH_LDAP_BIND_DN = "cn=user,dc=ldap,dc=example,dc=org"
AUTH_LDAP_BIND_PASSWORD = "secret"
# Where to find the users
AUTH_LDAP_USER_SEARCH = LDAPSearch(
"cn=Users,dc=ldap,dc=example,dc=org", ldap.SCOPE_SUBTREE, "(uid=%(user)s)"
)
# Here we are making an account active is dialupAccess is True
AUTH_LDAP_USER_ATTR_MAP = {"email": "mail","is_active": "dialupAccess"}
# Copy groups from LDAP
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
"ou=posix,ou=groups,dc=ldap,dc=example,dc=org",
ldap.SCOPE_SUBTREE,
"(objectClass=posixGroup)",
)
AUTH_LDAP_GROUP_TYPE = PosixGroupType()
AUTH_LDAP_MIRROR_GROUPS = True
# Map users of groups to specific roles
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_staff": "cn=staff,ou=posix,ou=groups,dc=ldap,dc=example,dc=org",
"is_superuser": "cn=root,ou=posix,ou=groups,dc=ldap,dc=example,dc=org",
}