settings.py 17.6 KB
Newer Older
1 2 3 4
# -*- coding:utf-8 -*
#
# Copyright 2016,2017
# - Skia <skia@libskia.so>
Sli's avatar
Sli committed
5
# - Sli <antoine@bartuccio.fr>
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
# http://ae.utbm.fr.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License a published by the Free Software
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Sofware Foundation, Inc., 59 Temple
# Place - Suite 330, Boston, MA 02111-1307, USA.
#
#

Skia's avatar
Skia committed
26 27 28 29 30 31 32 33 34 35 36 37 38 39
"""
Django settings for sith project.

Generated by 'django-admin startproject' using Django 1.8.6.

For more information on this file, see
https://docs.djangoproject.com/en/1.8/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.8/ref/settings/
"""

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
Skia's avatar
Skia committed
40
import sys
Skia's avatar
Skia committed
41
import binascii
Sli's avatar
Sli committed
42 43
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
Skia's avatar
Skia committed
44
from django.utils.translation import ugettext_lazy as _
Skia's avatar
Skia committed
45 46 47

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

Sli's avatar
Sli committed
48
os.environ["HTTPS"] = "off"
Skia's avatar
Skia committed
49 50 51 52 53

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
Sli's avatar
Sli committed
54
SECRET_KEY = "(4sjxvhz@m5$0a$j0_pqicnc$s!vbve)z+&++m%g%bjhlz4+g2"
Skia's avatar
Skia committed
55 56

# SECURITY WARNING: don't run with debug turned on in production!
Skia's avatar
Skia committed
57
DEBUG = False
Sli's avatar
Sli committed
58
INTERNAL_IPS = ["127.0.0.1"]
Skia's avatar
Skia committed
59

Sli's avatar
Sli committed
60
ALLOWED_HOSTS = ["*"]
Skia's avatar
Skia committed
61 62 63 64


# Application definition

65
SITE_ID = 4000
66

Skia's avatar
Skia committed
67
INSTALLED_APPS = (
Sli's avatar
Sli committed
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "django.contrib.sites",
    "django_jinja",
    "rest_framework",
    "ajax_select",
    "haystack",
    "captcha",
    "core",
    "club",
    "subscription",
    "accounting",
    "counter",
    "eboutic",
    "launderette",
    "api",
    "rootplace",
    "sas",
    "com",
    "election",
    "forum",
    "stock",
    "trombi",
    "matmat",
Skia's avatar
Skia committed
96 97 98
)

MIDDLEWARE_CLASSES = (
Sli's avatar
Sli committed
99 100 101 102 103 104 105 106 107 108
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.auth.middleware.SessionAuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.locale.LocaleMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    "django.middleware.security.SecurityMiddleware",
    "core.middleware.AuthenticationMiddleware",
Skia's avatar
Skia committed
109 110
)

Sli's avatar
Sli committed
111
ROOT_URLCONF = "sith.urls"
Skia's avatar
Skia committed
112 113 114 115 116 117 118 119 120 121 122

TEMPLATES = [
    {
        "NAME": "jinja2",
        "BACKEND": "django_jinja.backend.Jinja2",
        "APP_DIRS": True,
        "OPTIONS": {
            "match_extension": ".jinja",
            "app_dirname": "templates",
            "newstyle_gettext": True,
            "context_processors": [
Krophil's avatar
Krophil committed
123 124 125 126 127 128 129 130
                "django.contrib.auth.context_processors.auth",
                "django.template.context_processors.debug",
                "django.template.context_processors.i18n",
                "django.template.context_processors.media",
                "django.template.context_processors.static",
                "django.template.context_processors.tz",
                "django.contrib.messages.context_processors.messages",
            ],
Skia's avatar
Skia committed
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
            "extensions": [
                "jinja2.ext.do",
                "jinja2.ext.loopcontrols",
                "jinja2.ext.with_",
                "jinja2.ext.i18n",
                "jinja2.ext.autoescape",
                "django_jinja.builtins.extensions.CsrfExtension",
                "django_jinja.builtins.extensions.CacheExtension",
                "django_jinja.builtins.extensions.TimezoneExtension",
                "django_jinja.builtins.extensions.UrlsExtension",
                "django_jinja.builtins.extensions.StaticFilesExtension",
                "django_jinja.builtins.extensions.DjangoFiltersExtension",
            ],
            "filters": {
                "markdown": "core.templatetags.renderer.markdown",
Skia's avatar
Skia committed
146
                "phonenumber": "core.templatetags.renderer.phonenumber",
Skia's avatar
Skia committed
147 148 149 150 151 152
            },
            "globals": {
                "can_edit_prop": "core.views.can_edit_prop",
                "can_edit": "core.views.can_edit",
                "can_view": "core.views.can_view",
                "settings": "sith.settings",
Skia's avatar
Skia committed
153
                "Launderette": "launderette.models.Launderette",
Skia's avatar
Skia committed
154
                "Counter": "counter.models.Counter",
155
                "ProductType": "counter.models.ProductType",
Skia's avatar
Skia committed
156
                "timezone": "django.utils.timezone",
157
                "get_sith": "com.views.sith",
Sli's avatar
Sli committed
158
                "scss": "core.templatetags.renderer.scss",
Skia's avatar
Skia committed
159 160 161 162 163 164 165
            },
            "bytecode_cache": {
                "name": "default",
                "backend": "django_jinja.cache.BytecodeCache",
                "enabled": False,
            },
            "autoescape": True,
Skia's avatar
Skia committed
166
            "auto_reload": True,
Skia's avatar
Skia committed
167
            "translation_engine": "django.utils.translation",
Sli's avatar
Sli committed
168
        },
Skia's avatar
Skia committed
169 170
    },
    {
Sli's avatar
Sli committed
171 172 173 174 175 176 177 178 179 180
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [],
        "APP_DIRS": True,
        "OPTIONS": {
            "context_processors": [
                "django.template.context_processors.debug",
                "django.template.context_processors.request",
                "django.contrib.auth.context_processors.auth",
                "django.contrib.messages.context_processors.messages",
            ]
Skia's avatar
Skia committed
181 182 183 184
        },
    },
]

Skia's avatar
Skia committed
185
HAYSTACK_CONNECTIONS = {
Sli's avatar
Sli committed
186 187 188 189
    "default": {
        "ENGINE": "haystack.backends.whoosh_backend.WhooshEngine",
        "PATH": os.path.join(os.path.dirname(__file__), "whoosh_index"),
    }
Krophil's avatar
Krophil committed
190
}
Skia's avatar
Skia committed
191

Sli's avatar
Sli committed
192
HAYSTACK_SIGNAL_PROCESSOR = "core.search_indexes.UserOnlySignalProcessor"
193

Krophil's avatar
Krophil committed
194 195
SASS_PRECISION = 8

Sli's avatar
Sli committed
196
WSGI_APPLICATION = "sith.wsgi.application"
Skia's avatar
Skia committed
197 198 199 200 201 202


# Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases

DATABASES = {
Sli's avatar
Sli committed
203 204 205
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": os.path.join(BASE_DIR, "db.sqlite3"),
Skia's avatar
Skia committed
206 207 208 209 210 211 212
    }
}


# Internationalization
# https://docs.djangoproject.com/en/1.8/topics/i18n/

Sli's avatar
Sli committed
213
LANGUAGE_CODE = "fr-FR"
Skia's avatar
Skia committed
214

Sli's avatar
Sli committed
215
LANGUAGES = [("en", _("English")), ("fr", _("French"))]
Skia's avatar
Skia committed
216

Sli's avatar
Sli committed
217
TIME_ZONE = "Europe/Paris"
Skia's avatar
Skia committed
218 219 220 221 222 223 224

USE_I18N = True

USE_L10N = True

USE_TZ = True

Sli's avatar
Sli committed
225
LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),)
Skia's avatar
Skia committed
226

227 228
PHONENUMBER_DEFAULT_REGION = "FR"

Krophil's avatar
Krophil committed
229 230 231
# Whether to use CDNs (True) or local ressources (False) for JS and CSS
EXTERNAL_RES = True

Skia's avatar
Skia committed
232
# Medias
Sli's avatar
Sli committed
233 234
MEDIA_ROOT = "./data/"
MEDIA_URL = "/data/"
Skia's avatar
Skia committed
235 236 237 238

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/

Sli's avatar
Sli committed
239 240
STATIC_URL = "/static/"
STATIC_ROOT = "./static/"
Skia's avatar
Skia committed
241

Krophil's avatar
Krophil committed
242 243
# Static files finders which allow to see static folder in all apps
STATICFILES_FINDERS = [
Sli's avatar
Sli committed
244 245 246
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
    "core.scss.finder.ScssFinder",
Krophil's avatar
Krophil committed
247 248
]

Skia's avatar
Skia committed
249
# Auth configuration
Sli's avatar
Sli committed
250 251 252 253 254
AUTH_USER_MODEL = "core.User"
AUTH_ANONYMOUS_MODEL = "core.models.AnonymousUser"
LOGIN_URL = "/login"
LOGOUT_URL = "/logout"
LOGIN_REDIRECT_URL = "/"
Krophil's avatar
Krophil committed
255 256
DEFAULT_FROM_EMAIL = "bibou@git.an"
SITH_COM_EMAIL = "bibou_com@git.an"
Skia's avatar
Skia committed
257 258

# Email
Sli's avatar
Sli committed
259
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
Krophil's avatar
Krophil committed
260 261
EMAIL_HOST = "localhost"
EMAIL_PORT = 25
Skia's avatar
Skia committed
262

Skia's avatar
Skia committed
263 264 265 266
# Below this line, only Sith-specific variables are defined

IS_OLD_MYSQL_PRESENT = False
OLD_MYSQL_INFOS = {
Sli's avatar
Sli committed
267 268 269 270 271 272
    "host": "ae-db",
    "user": "my_user",
    "passwd": "password",
    "db": "ae2-db",
    "charset": "utf8",
    "use_unicode": True,
Krophil's avatar
Krophil committed
273
}
Skia's avatar
Skia committed
274 275


Skia's avatar
Skia committed
276 277
SITH_URL = "my.url.git.an"
SITH_NAME = "Sith website"
Krophil's avatar
Krophil committed
278
SITH_TWITTER = "@ae_utbm"
279

Skia's avatar
Skia committed
280
# AE configuration
Sli's avatar
Sli committed
281 282 283
SITH_MAIN_CLUB_ID = (
    1
)  # TODO: keep only that first setting, with the ID, and do the same for the other clubs
Skia's avatar
Skia committed
284
SITH_MAIN_CLUB = {
Sli's avatar
Sli committed
285 286 287
    "name": "AE",
    "unix_name": "ae",
    "address": "6 Boulevard Anatole France, 90000 Belfort",
Krophil's avatar
Krophil committed
288
}
289 290 291

# Bar managers
SITH_BAR_MANAGER = {
Sli's avatar
Sli committed
292 293 294
    "name": "BdF",
    "unix_name": "bdf",
    "address": "6 Boulevard Anatole France, 90000 Belfort",
Krophil's avatar
Krophil committed
295
}
296

Skia's avatar
Skia committed
297 298
# Launderette managers
SITH_LAUNDERETTE_MANAGER = {
Sli's avatar
Sli committed
299 300 301
    "name": "Laverie",
    "unix_name": "laverie",
    "address": "6 Boulevard Anatole France, 90000 Belfort",
Krophil's avatar
Krophil committed
302
}
Skia's avatar
Skia committed
303

Sli's avatar
Sli committed
304 305 306
# Main root for club pages
SITH_CLUB_ROOT_PAGE = "clubs"

Skia's avatar
Skia committed
307 308
# Define the date in the year serving as reference for the subscriptions calendar
# (month, day)
Krophil's avatar
Krophil committed
309
SITH_START_DATE = (8, 15)  # 15th August
310

311 312 313
# Used to determine the valid promos
SITH_SCHOOL_START_YEAR = 1999

Skia's avatar
Skia committed
314
SITH_GROUP_ROOT_ID = 1
Skia's avatar
Skia committed
315
SITH_GROUP_PUBLIC_ID = 2
316 317 318 319 320 321 322 323 324 325 326
SITH_GROUP_SUBSCRIBERS_ID = 3
SITH_GROUP_OLD_SUBSCRIBERS_ID = 4
SITH_GROUP_ACCOUNTING_ADMIN_ID = 5
SITH_GROUP_COM_ADMIN_ID = 6
SITH_GROUP_COUNTER_ADMIN_ID = 7
SITH_GROUP_BANNED_ALCOHOL_ID = 8
SITH_GROUP_BANNED_COUNTER_ID = 9
SITH_GROUP_BANNED_SUBSCRIPTION_ID = 10
SITH_GROUP_SAS_ADMIN_ID = 11
SITH_GROUP_FORUM_ADMIN_ID = 12

Skia's avatar
Skia committed
327

Sli's avatar
Sli committed
328 329 330 331
SITH_CLUB_REFOUND_ID = 89
SITH_COUNTER_REFOUND_ID = 38
SITH_PRODUCT_REFOUND_ID = 5

332 333 334
# Pages
SITH_CORE_PAGE_SYNTAX = "Aide_sur_la_syntaxe"

Skia's avatar
Skia committed
335 336 337
# Forum

SITH_FORUM_PAGE_LENGTH = 30
Sli's avatar
Sli committed
338

Skia's avatar
Skia committed
339 340
# SAS variables
SITH_SAS_ROOT_DIR_ID = 4
Skia's avatar
Skia committed
341

Krophil's avatar
Krophil committed
342 343
SITH_BOARD_SUFFIX = "-bureau"
SITH_MEMBER_SUFFIX = "-membres"
Skia's avatar
Skia committed
344

Sli's avatar
Sli committed
345 346 347
SITH_MAIN_BOARD_GROUP = SITH_MAIN_CLUB["unix_name"] + SITH_BOARD_SUFFIX
SITH_MAIN_MEMBERS_GROUP = SITH_MAIN_CLUB["unix_name"] + SITH_MEMBER_SUFFIX
SITH_BAR_MANAGER_BOARD_GROUP = SITH_BAR_MANAGER["unix_name"] + SITH_BOARD_SUFFIX
Skia's avatar
Skia committed
348

Skia's avatar
Skia committed
349
SITH_PROFILE_DEPARTMENTS = [
Krophil's avatar
Krophil committed
350 351 352 353 354 355 356 357 358 359 360 361 362 363
    ("TC", _("TC")),
    ("IMSI", _("IMSI")),
    ("IMAP", _("IMAP")),
    ("INFO", _("INFO")),
    ("GI", _("GI")),
    ("E", _("E")),
    ("EE", _("EE")),
    ("GESC", _("GESC")),
    ("GMC", _("GMC")),
    ("MC", _("MC")),
    ("EDIM", _("EDIM")),
    ("HUMA", _("Humanities")),
    ("NA", _("N/A")),
]
Skia's avatar
Skia committed
364

Skia's avatar
Skia committed
365
SITH_ACCOUNTING_PAYMENT_METHOD = [
Sli's avatar
Sli committed
366 367 368 369
    ("CHECK", _("Check")),
    ("CASH", _("Cash")),
    ("TRANSFERT", _("Transfert")),
    ("CARD", _("Credit card")),
Krophil's avatar
Krophil committed
370
]
Skia's avatar
Skia committed
371 372

SITH_SUBSCRIPTION_PAYMENT_METHOD = [
Sli's avatar
Sli committed
373 374 375 376 377
    ("CHECK", _("Check")),
    ("CARD", _("Credit card")),
    ("CASH", _("Cash")),
    ("EBOUTIC", _("Eboutic")),
    ("OTHER", _("Other")),
Krophil's avatar
Krophil committed
378
]
Skia's avatar
Skia committed
379

Skia's avatar
Skia committed
380
SITH_SUBSCRIPTION_LOCATIONS = [
Sli's avatar
Sli committed
381 382 383 384
    ("BELFORT", _("Belfort")),
    ("SEVENANS", _("Sevenans")),
    ("MONTBELIARD", _("Montbéliard")),
    ("EBOUTIC", _("Eboutic")),
Krophil's avatar
Krophil committed
385
]
Skia's avatar
Skia committed
386

Sli's avatar
Sli committed
387
SITH_COUNTER_BARS = [(1, "MDE"), (2, "Foyer"), (35, "La Gommette")]
388

Skia's avatar
Skia committed
389
SITH_COUNTER_PAYMENT_METHOD = [
Sli's avatar
Sli committed
390 391 392
    ("CHECK", _("Check")),
    ("CASH", _("Cash")),
    ("CARD", _("Credit card")),
Krophil's avatar
Krophil committed
393
]
Skia's avatar
Skia committed
394

395
SITH_COUNTER_BANK = [
Sli's avatar
Sli committed
396 397 398 399 400 401 402 403 404 405
    ("OTHER", "Autre"),
    ("SOCIETE-GENERALE", "Société générale"),
    ("BANQUE-POPULAIRE", "Banque populaire"),
    ("BNP", "BNP"),
    ("CAISSE-EPARGNE", "Caisse d'épargne"),
    ("CIC", "CIC"),
    ("CREDIT-AGRICOLE", "Crédit Agricole"),
    ("CREDIT-MUTUEL", "Credit Mutuel"),
    ("CREDIT-LYONNAIS", "Credit Lyonnais"),
    ("LA-POSTE", "La Poste"),
Krophil's avatar
Krophil committed
406
]
407

Sli's avatar
Sli committed
408
SITH_ECOCUP_CONS = 1152
Sli's avatar
Sli committed
409

Sli's avatar
Sli committed
410
SITH_ECOCUP_DECO = 1151
Sli's avatar
Sli committed
411

Sli's avatar
Sli committed
412
# The limit is the maximum difference between cons and deco possible for a customer
Sli's avatar
Sli committed
413
SITH_ECOCUP_LIMIT = 3
Sli's avatar
Sli committed
414

Sli's avatar
Sli committed
415 416 417
# Defines pagination for cash summary
SITH_COUNTER_CASH_SUMMARY_LENGTH = 50

418
# Defines which product type is the refilling type, and thus increases the account amount
Skia's avatar
Skia committed
419
SITH_COUNTER_PRODUCTTYPE_REFILLING = 3
420

421
# Defines which product is the one year subscription and which one is the six month subscription
Skia's avatar
Skia committed
422 423 424
SITH_PRODUCT_SUBSCRIPTION_ONE_SEMESTER = 1
SITH_PRODUCT_SUBSCRIPTION_TWO_SEMESTERS = 2
SITH_PRODUCTTYPE_SUBSCRIPTION = 2
425

Sli's avatar
Sli committed
426
SITH_CAN_CREATE_SUBSCRIPTIONS = [1]
427

428 429 430
# Number of weeks before the end of a subscription when the subscriber can resubscribe
SITH_SUBSCRIPTION_END = 10

Skia's avatar
Skia committed
431 432
# Subscription durations are in semestres
# Be careful, modifying this parameter will need a migration to be applied
Skia's avatar
Skia committed
433
SITH_SUBSCRIPTIONS = {
Sli's avatar
Sli committed
434 435 436 437 438 439
    "un-semestre": {"name": _("One semester"), "price": 15, "duration": 1},
    "deux-semestres": {"name": _("Two semesters"), "price": 28, "duration": 2},
    "cursus-tronc-commun": {
        "name": _("Common core cursus"),
        "price": 45,
        "duration": 4,
Skia's avatar
Skia committed
440
    },
Sli's avatar
Sli committed
441 442 443 444 445 446 447 448 449 450 451 452
    "cursus-branche": {"name": _("Branch cursus"), "price": 45, "duration": 6},
    "cursus-alternant": {"name": _("Alternating cursus"), "price": 30, "duration": 6},
    "membre-honoraire": {"name": _("Honorary member"), "price": 0, "duration": 666},
    "assidu": {"name": _("Assidu member"), "price": 0, "duration": 2},
    "amicale/doceo": {"name": _("Amicale/DOCEO member"), "price": 0, "duration": 2},
    "reseau-ut": {"name": _("UT network member"), "price": 0, "duration": 1},
    "crous": {"name": _("CROUS member"), "price": 0, "duration": 2},
    "sbarro/esta": {"name": _("Sbarro/ESTA member"), "price": 15, "duration": 2},
    "un-semestre-welcome": {
        "name": _("One semester Welcome Week"),
        "price": 0,
        "duration": 1,
Skia's avatar
Skia committed
453
    },
Sli's avatar
Sli committed
454 455 456 457 458 459
    "deux-mois-essai": {"name": _("Two months for free"), "price": 0, "duration": 0.33},
    "benevoles-euroks": {"name": _("Eurok's volunteer"), "price": 5, "duration": 0.1},
    "six-semaines-essai": {
        "name": _("Six weeks for free"),
        "price": 0,
        "duration": 0.23,
Skia's avatar
Skia committed
460
    },
Sli's avatar
Sli committed
461
    "un-jour": {"name": _("One day"), "price": 0, "duration": 0.00555333}
Krophil's avatar
Krophil committed
462
    # To be completed....
Skia's avatar
Skia committed
463 464
}

Sli's avatar
Sli committed
465 466 467
SITH_CLUB_ROLES = {}

SITH_CLUB_ROLES_ID = {
Sli's avatar
Sli committed
468 469 470 471 472 473 474 475 476
    "President": 10,
    "Vice-President": 9,
    "Treasurer": 7,
    "Communication supervisor": 5,
    "Secretary": 4,
    "IT supervisor": 3,
    "Board member": 2,
    "Active member": 1,
    "Curious": 0,
Sli's avatar
Sli committed
477 478
}

Sli's avatar
Sli committed
479
SITH_CLUB_ROLES = {
Sli's avatar
Sli committed
480 481 482 483 484 485 486 487 488
    10: _("President"),
    9: _("Vice-President"),
    7: _("Treasurer"),
    5: _("Communication supervisor"),
    4: _("Secretary"),
    3: _("IT supervisor"),
    2: _("Board member"),
    1: _("Active member"),
    0: _("Curious"),
Sli's avatar
Sli committed
489
}
Skia's avatar
Skia committed
490 491 492

# This corresponds to the maximum role a user can freely subscribe to
# In this case, SITH_MAXIMUM_FREE_ROLE=1 means that a user can set himself as "Membre actif" or "Curieux", but not higher
Krophil's avatar
Krophil committed
493
SITH_MAXIMUM_FREE_ROLE = 1
Skia's avatar
Skia committed
494 495

# Minutes to timeout the logged barmen
Krophil's avatar
Krophil committed
496
SITH_BARMAN_TIMEOUT = 20
Skia's avatar
Skia committed
497

Skia's avatar
Skia committed
498
# Minutes to delete the last operations
Krophil's avatar
Krophil committed
499
SITH_LAST_OPERATIONS_LIMIT = 10
Skia's avatar
Skia committed
500

501
# Minutes for a counter to be inactive
Krophil's avatar
Krophil committed
502
SITH_COUNTER_MINUTE_INACTIVE = 10
503

Skia's avatar
Skia committed
504
# ET variables
Sli's avatar
Sli committed
505
SITH_EBOUTIC_CB_ENABLED = True
Sli's avatar
Sli committed
506 507 508
SITH_EBOUTIC_ET_URL = (
    "https://preprod-tpeweb.e-transactions.fr/cgi/MYchoix_pagepaiement.cgi"
)
Skia's avatar
Skia committed
509 510 511
SITH_EBOUTIC_PBX_SITE = "4000666"
SITH_EBOUTIC_PBX_RANG = "42"
SITH_EBOUTIC_PBX_IDENTIFIANT = "123456789"
Sli's avatar
Sli committed
512 513 514
SITH_EBOUTIC_HMAC_KEY = binascii.unhexlify(
    "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"
)
Skia's avatar
Skia committed
515
SITH_EBOUTIC_PUB_KEY = ""
Sli's avatar
Sli committed
516
with open("./sith/et_keys/pubkey.pem") as f:
Skia's avatar
Skia committed
517 518
    SITH_EBOUTIC_PUB_KEY = f.read()

Skia's avatar
Skia committed
519
# Launderette variables
Sli's avatar
Sli committed
520 521
SITH_LAUNDERETTE_MACHINE_TYPES = [("WASHING", _("Washing")), ("DRYING", _("Drying"))]
SITH_LAUNDERETTE_PRICES = {"WASHING": 1.0, "DRYING": 0.75}
Skia's avatar
Skia committed
522

Skia's avatar
Skia committed
523
SITH_NOTIFICATIONS = [
Sli's avatar
Sli committed
524 525 526 527 528 529 530 531 532
    ("POSTER_MODERATION", _("A new poster needs to be moderated")),
    ("MAILING_MODERATION", _("A new mailing list needs to be moderated")),
    ("NEWS_MODERATION", _("There are %s fresh news to be moderated")),
    ("FILE_MODERATION", _("New files to be moderated")),
    ("SAS_MODERATION", _("There are %s pictures to be moderated in the SAS")),
    ("NEW_PICTURES", _("You've been identified on some pictures")),
    ("REFILLING", _("You just refilled of %s €")),
    ("SELLING", _("You just bought %s")),
    ("GENERIC", _("You have a notification")),
Krophil's avatar
Krophil committed
533
]
Skia's avatar
Skia committed
534

535 536 537 538
# The keys are the notification names as found in SITH_NOTIFICATIONS, and the
# values are the callback function to update the notifs.
# The callback must take the notif object as first and single argument.
SITH_PERMANENT_NOTIFICATIONS = {
Sli's avatar
Sli committed
539 540
    "NEWS_MODERATION": "com.models.news_notification_callback",
    "SAS_MODERATION": "sas.models.sas_notification_callback",
541 542
}

Skia's avatar
Skia committed
543
SITH_QUICK_NOTIF = {
Sli's avatar
Sli committed
544 545 546 547 548
    "qn_success": _("Success!"),
    "qn_fail": _("Fail!"),
    "qn_weekmail_new_article": _("You successfully posted an article in the Weekmail"),
    "qn_weekmail_article_edit": _("You successfully edited an article in the Weekmail"),
    "qn_weekmail_send_success": _("You successfully sent the Weekmail"),
Krophil's avatar
Krophil committed
549
}
Skia's avatar
Skia committed
550

Sli's avatar
Sli committed
551 552
# Mailing related settings

Sli's avatar
Sli committed
553 554
SITH_MAILING_DOMAIN = "utbm.fr"
SITH_MAILING_FETCH_KEY = "IloveMails"
Sli's avatar
Sli committed
555

Sli's avatar
Sli committed
556
SITH_GIFT_LIST = [("AE Tee-shirt", _("AE tee-shirt"))]
Sli's avatar
Sli committed
557

Sli's avatar
Sli committed
558 559
SENTRY_DSN = ""

Skia's avatar
Skia committed
560 561
try:
    from .settings_custom import *
Sli's avatar
Sli committed
562

Skia's avatar
Skia committed
563
    print("Custom settings imported", file=sys.stderr)
Skia's avatar
Skia committed
564
except:
Skia's avatar
Skia committed
565
    print("Custom settings failed", file=sys.stderr)
Skia's avatar
Skia committed
566 567 568

if DEBUG:
    INSTALLED_APPS += ("debug_toolbar",)
Sli's avatar
Sli committed
569 570 571
    MIDDLEWARE_CLASSES = (
        "debug_toolbar.middleware.DebugToolbarMiddleware",
    ) + MIDDLEWARE_CLASSES
Sli's avatar
Sli committed
572
    DEBUG_TOOLBAR_PANELS = [
Sli's avatar
Sli committed
573 574 575 576 577 578 579 580 581 582 583 584
        "debug_toolbar.panels.versions.VersionsPanel",
        "debug_toolbar.panels.timer.TimerPanel",
        "debug_toolbar.panels.settings.SettingsPanel",
        "debug_toolbar.panels.headers.HeadersPanel",
        "debug_toolbar.panels.request.RequestPanel",
        "debug_toolbar.panels.sql.SQLPanel",
        "debug_toolbar.panels.staticfiles.StaticFilesPanel",
        "sith.toolbar_debug.TemplatesPanel",
        "debug_toolbar.panels.cache.CachePanel",
        "debug_toolbar.panels.signals.SignalsPanel",
        "debug_toolbar.panels.logging.LoggingPanel",
        "debug_toolbar.panels.redirects.RedirectsPanel",
Sli's avatar
Sli committed
585
    ]
Sli's avatar
Sli committed
586
    SASS_INCLUDE_FOLDERS = ["core/static/"]
587

Sli's avatar
Sli committed
588
if "test" in sys.argv:
589
    CAPTCHA_TEST_MODE = True
Sli's avatar
Sli committed
590 591 592 593

if SENTRY_DSN:
    # Connection to sentry
    sentry_sdk.init(dsn=SENTRY_DSN, integrations=[DjangoIntegration()])