Commit d8a0e419 authored by Maxime Bombar's avatar Maxime Bombar

[] Settings de note-galois

parent eb639391
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Django settings for Django_Client project.
import socket
import platform
import os.path
DEV = True
# Sur quel système la note tourne-t-elle ?
SYSTEM, NODE_NAME, KERNEL, KERNEL_VERSION, _, _ = platform.uname()
if SYSTEM == 'Linux':
DISTRIBUTION, DIST_VERSION, _ = platform.linux_distribution()
#: Charset par défaut
#: Mode de debug
DEBUG = True
#: Debug aussi quand on plante dans le rendering d'un template
#: Adresse mail à qui envoyer des problèmes durant l'exécution
#: Liste des administrateurs et de leur mails
('Report bugs to', REPORT_BUGS_EMAIL)
#: Url racine
NOTE_ROOT_URL = r'/note/'
#: Url de la page de login
#: Chemin absolu du répertoire racine du client django
#: (Le ``os.path.join`` est là pour assurer la présence du trailing slash)
ROOT_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "")
#: From des messages d'erreur
#: A tuple in the same format as ADMINS that specifies who should get broken link notifications when BrokenLinkEmailsMiddleware is enabled.
#: Base de données pour stocker les data django.
#: Dans le cas de la NoteKfet2015, elle n'est utilisé que pour stocker les sessions
#: puisque tout est fait dans le backend.
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'django_client', # Or path to database file if using sqlite3.
'USER': 'note', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
#: Local time zone for this installation. Choices can be found here:
#: although not all choices may be available on all operating systems.
#: On Unix systems, a value of None will cause Django to use the same
#: timezone as the operating system.
#: If running in a Windows environment this must be set to the same as your
#: system time zone.
TIME_ZONE = 'Europe/Paris'
#: Language code for this installation. All choices can be found here:
#: The ID, as an integer, of the current site in the django_site database table.
#: This is used so that application data can hook into specific sites
#: and a single database can manage content for multiple sites.
#: If you set this to False, Django will make some optimizations so as not
#: to load the internationalization machinery.
USE_I18N = True
#: If you set this to False, Django will not format dates, numbers and
#: calendars according to the current locale.
USE_L10N = True
#: If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True
#: Absolute filesystem path to the directory that will hold user-uploaded files.
#: Example: "/home/media/"
#: URL that handles the media served from MEDIA_ROOT. Make sure to use a
#: trailing slash.
#: Examples: "", ""
#: Absolute path to the directory static files should be collected to.
#: Don't put anything in this directory yourself; store your static files
#: in apps' "static/" subdirectories and in STATICFILES_DIRS.
#: Example: "/home/media/"
#STATIC_ROOT = ROOT_PATH + 'static/'
#: URL prefix for static files.
#: Example: ""
STATIC_URL = '/static/'
#: Additional locations of static files
ROOT_PATH + "static/",
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
#: List of finder classes that know how to find static files in
#: various locations.
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
from secrets import SECRET_KEY
#: List of callables that know how to import templates from various sources.
# 'django.template.loaders.eggs.Loader',
#: A tuple of callables that are used to populate the context in RequestContext.
#: These callables take a request object as their argument
#: and return a dictionary of items to be merged into the context.
#: A tuple of middleware classes to use. See `Middleware <>`_.
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
#: A string representing the full Python import path to your root URLconf.
#: For example: "mydjangoapps.urls".
#: Can be overridden on a per-request basis by setting the attribute
#: urlconf on the incoming HttpRequest object.
#: Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'wsgi.application'
#: List of locations of the template source files searched by django.template.loaders.filesystem.Loader, in search order.
ROOT_PATH + "templates/",
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
#: A tuple of strings designating all applications that are enabled in this Django installation.
#: Each string should be a full Python path to a Python package that contains a Django application,
#: as created by `` startapp``.
# Uncomment the next line to enable the admin:
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
#: A sample logging configuration. The only tangible logging
#: performed by this configuration is to send an email to
#: the site admins on every HTTP 500 error when DEBUG=False.
#: See for
#: more details on how to customize your logging configuration.
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
#: ttl des cookies Django en secondes
SESSION_COOKIE_AGE = 60*100 # 100 minutes
### Photos
#: Taille max autorisée pour les photos
MAX_PHOTO_SIZE = 870000 # en bytes (850KB)
#: Dossier où sont stockées les photos temporairement
#: URL par laquelle on accède aux photos
PHOTOS_URL = MEDIA_URL + "photos/"
#: Temps avant de supprimer un fichier de photo temporaire
#: Pendant cet intervalle de temps,
#: la photo pourra être affichée sans être redemandée au serveur NK2015
### Network
#: IP où joindre le serveur NK2015
NK2015_IP = ""
#: Port d'écoute du serveur NK2015
NK2015_PORT = 4242
### Paramètres d'affichage
## Dates
#: Format avec lequel les dates arrivent du serveur NK2015
#: Format d'affichage des dates
DATETIME_RENDERING_FORMAT = "Le %d/%m/%Y à %H:%M:%S" # C'est volontaire si ce n'est pas une chaîne unicode !
#: Année jusqu'à laquelle les dates sont en 20nn
YEAR_1900s_OVER = 69
## Messages d'erreur
ERRMSG_NK2015_DOWN = u"Le Serveur NK2015 est down."
ERRMSG_NK2015_NOT_RESPONDING = u"La connexion avec le serveur NK2015 ne répond pas. Essaye de te reconnecter."
ERRMSG_HELLO_FAILED = u"La version du site utilisée n'est pas supportée par le serveur NK2015."
ERRMSG_UNKOWNERROR = u"Une fucking erreur inconnue s'est produite :"
ERRMSG_IDBDE_INVALID = u'''"%s" n'est pas un identifiant de compte valide.'''
ERRMSG_IDBDE_FAIL = u"Le compte n°%s n'existe pas."
ERRMSG_IDACT_INVALID = u'''"%s" n'est pas un identifiant d'activité valide.'''
ERRMSG_IDACT_FAIL = u"L'activité n°%s n'existe pas."
ERRMSG_IDALIAS_INVALID = u'''"%s" n'est pas un identifiant d'alias valide.'''
ERRMSG_IDINV_INVALID = u'''"%s" n'est pas un identifiant d'invité valide.'''
ERRMSG_IDINV_FAIL = u"L'invité n°%s n'existe pas."
ERRMSG_IDBUTTON_INVALID = u'''"%s" n'est pas un identifiant de bouton valide.'''
ERRMSG_IDBUTTON_FAIL = u"Le bouton n°%s n'existe pas."
ERRMSG_PREID_INVALID = u'''"%s" n'est pas un identifiant de préinscription valide.'''
ERRMSG_PREID_FAIL = u"La préinscription n°%s n'existe pas."
ERRMSG_IDTRANSACTION_INVALID = u'''"%s" n'est pas un identifiant de transaction valide.'''
ERRMSG_IDTRANSACTION_FAIL = u"La transaction n°%s n'existe pas."
ERRMSG_DJANGO_SESSION_EXPIRED = u"Ta session Django a expiré, reconnecte-toi."
ERRMSG_NOSOCKET = u"La connexion avec le serveur NK2015 a été perdue, reconnecte-toi."
ERRMSG_NK2015_SESSION_EXPIRED = u"Ta session NK2015 est invalide ou a expiré, reconnecte-toi."
ERRMSG_NO_ACL_CHGPASS = u"Tu n'as pas le droit de changer le mot de passe d'un autre compte que le tien."
## Messages de succès
SUCCMSG_CHGACT = u"Activité modifiée avec succès."
SUCCMSG_DELACT = u"Activité supprimée avec succès."
SUCCMSG_ADDACT = u"Activité ajoutée avec succès."
SUCCMSG_VALIDACT = u"Activité validée avec succès."
SUCCMSG_DEVALIDACT = u"Activité dévalidée avec succès."
SUCCMSG_DELINV = u"Invité supprimé avec succès."
SUCCMSG_ADDINV = u"Invité ajouté avec succès."
SUCCMSG_ACCOUNT_CHANGED = u"Compte modifié avec succès."
SUCCMSG_ACCOUNT_ADDED = u"Compte ajouté avec succès."
SUCCMSG_ACCOUNT_DELETED = u"Compte supprimé avec succès."
SUCCMSG_ALIAS_ADDED = u"Alias ajouté avec succès."
SUCCMSG_ALIAS_DELETED = u"Alias supprimé avec succès."
SUCCMSG_ALIAS_ALLDELETED = u"Tous les alias supprimés avec succès."
SUCCMSG_PASSWORD_CHANGED = u"Mot de passe modifié avec succès."
SUCCMSG_LOGOUT = u"Tu t'es déconnecté."
SUCCMSG_ADDBUTTON = u"Bouton ajouté avec succès."
SUCCMSG_CHGBUTTON = u"Bouton modifié avec succès."
SUCCMSG_DELBUTTON = u"Bouton supprimé avec succès."
SUCCMSG_PREINSCRIPTION_ADDED = u"Préinscription ajoutée avec succès."
SUCCMSG_PREINSCRIPTION_DELETED = u"Préinscription supprimée avec succès."
SUCCMSG_READHESION = u"Réadhésion effectuée avec succès."
SUCCMSG_PHOTO_UPDATED = u"Photo modifiée avec succès."
SUCCMSG_VALIDATE_TRANSACTION = u"Transaction validée avec succès."
SUCCMSG_DEVALIDATE_TRANSACTION = u"Transaction dévalidée avec succès."
SUCCMSG_RESETPSWD = u"Un mail vous a été envoyé."
### Masques de droits
#: Droits qu'on n'a pas en se connectant en "restricted"
_acl_restricted = ["myself", "wei", "overforced", "transactions_admin", "chgpass", "comptes", "boutons", "admin", "digicode"]
#: Dico recensant les masques de droits : ``keyword`` -> ``("nom à afficher", <masque>)``
#: ils seront proposés dans l'ordre des keywords
'0_all': (u"Tous mes droits", [[], [], False]),
'1_note': (u"Droits note seulement", [_acl_restricted, _acl_restricted, True]),
_acl_masks_keys = ACL_MASKS.keys()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment