2020-07-30 14:49:18 +02:00
|
|
|
from flask import Flask
|
2018-02-23 23:34:06 +01:00
|
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
|
|
from flask_migrate import Migrate
|
|
|
|
from flask_login import LoginManager
|
2020-07-21 21:06:00 +02:00
|
|
|
from flask_mail import Mail
|
2020-09-26 14:48:30 +02:00
|
|
|
from flask_wtf.csrf import CSRFProtect
|
2022-06-15 12:23:58 +02:00
|
|
|
from flask_crontab import Crontab
|
2022-05-05 21:32:54 +02:00
|
|
|
from config import FlaskApplicationSettings, V5Config
|
2019-08-20 18:04:10 +02:00
|
|
|
|
2018-02-23 23:34:06 +01:00
|
|
|
app = Flask(__name__)
|
2022-05-05 20:31:26 +02:00
|
|
|
app.config.from_object(FlaskApplicationSettings)
|
2019-09-05 23:42:47 +02:00
|
|
|
|
2019-12-04 12:22:16 +01:00
|
|
|
# Check security of secret
|
2022-05-05 20:31:26 +02:00
|
|
|
if FlaskApplicationSettings.SECRET_KEY == "a-random-secret-key":
|
2019-12-04 12:22:16 +01:00
|
|
|
raise Exception("Please use a strong secret key!")
|
|
|
|
|
2018-02-23 23:34:06 +01:00
|
|
|
db = SQLAlchemy(app)
|
|
|
|
migrate = Migrate(app, db)
|
2020-07-21 21:06:00 +02:00
|
|
|
mail = Mail(app)
|
2020-09-26 14:48:30 +02:00
|
|
|
csrf = CSRFProtect(app)
|
2022-06-15 12:23:58 +02:00
|
|
|
crontab = Crontab(app)
|
2019-02-02 17:34:41 +01:00
|
|
|
|
2019-12-03 20:32:01 +01:00
|
|
|
login = LoginManager(app)
|
|
|
|
login.login_view = 'login'
|
|
|
|
login.login_message = "Veuillez vous authentifier avant de continuer."
|
|
|
|
|
2020-09-26 14:48:30 +02:00
|
|
|
|
2020-07-30 14:49:18 +02:00
|
|
|
# Register converters (needed for routing)
|
2019-09-05 23:42:47 +02:00
|
|
|
from app.utils.converters import *
|
|
|
|
app.url_map.converters['forum'] = ForumConverter
|
2020-07-16 23:58:21 +02:00
|
|
|
app.url_map.converters['topicpage'] = TopicPageConverter
|
2022-05-19 21:34:23 +02:00
|
|
|
app.url_map.converters['programpage'] = ProgramPageConverter
|
2019-12-03 20:32:01 +01:00
|
|
|
|
2020-07-30 14:49:18 +02:00
|
|
|
# Register routes
|
|
|
|
from app import routes
|
2019-08-20 18:04:10 +02:00
|
|
|
|
2020-08-01 21:26:06 +02:00
|
|
|
# Register filters
|
|
|
|
from app.utils import filters
|
2019-12-04 01:16:16 +01:00
|
|
|
|
2020-07-30 14:49:18 +02:00
|
|
|
# Register processors
|
|
|
|
from app import processors
|
2022-05-05 21:32:54 +02:00
|
|
|
|
2022-06-15 12:23:58 +02:00
|
|
|
# Register scheduled jobs
|
|
|
|
from app import jobs
|
|
|
|
|
2022-05-05 21:32:54 +02:00
|
|
|
# Enable flask-debug-toolbar if requested
|
|
|
|
if V5Config.ENABLE_FLASK_DEBUG_TOOLBAR:
|
|
|
|
from flask_debugtoolbar import DebugToolbarExtension
|
|
|
|
app.config['DEBUG_TB_PROFILER_ENABLED'] = True
|
|
|
|
toolbar = DebugToolbarExtension(app)
|