From a9fe8bec47d346851a05b22a9e4f71a6f2bd44b3 Mon Sep 17 00:00:00 2001
From: Benjamin Bertrand <benjamin.bertrand@esss.se>
Date: Fri, 29 Dec 2017 22:21:16 +0100
Subject: [PATCH] Add flask-caching extension

---
 app/extensions.py | 2 ++
 app/factory.py    | 3 ++-
 app/settings.py   | 2 ++
 environment.yml   | 1 +
 4 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/app/extensions.py b/app/extensions.py
index 275ab26..707534c 100644
--- a/app/extensions.py
+++ b/app/extensions.py
@@ -21,6 +21,7 @@ from flask_jwt_extended import JWTManager
 from flask_debugtoolbar import DebugToolbarExtension
 from flask_redis import FlaskRedis
 from flask_session import Session
+from flask_caching import Cache
 
 
 convention = {
@@ -43,3 +44,4 @@ jwt = JWTManager()
 toolbar = DebugToolbarExtension()
 redis_store = FlaskRedis()
 fsession = Session()
+cache = Cache()
diff --git a/app/factory.py b/app/factory.py
index 7c39384..9d92c2c 100644
--- a/app/factory.py
+++ b/app/factory.py
@@ -14,7 +14,7 @@ from flask import Flask
 from whitenoise import WhiteNoise
 from . import settings, models
 from .extensions import (db, migrate, login_manager, ldap_manager, bootstrap,
-                         admin, mail, jwt, toolbar, redis_store, fsession)
+                         admin, mail, jwt, toolbar, redis_store, fsession, cache)
 from .admin.views import (AdminModelView, ItemAdmin, UserAdmin, GroupAdmin, TokenAdmin,
                           NetworkAdmin)
 from .main.views import bp as main
@@ -99,6 +99,7 @@ def create_app(config=None):
     redis_store.init_app(app)
     app.config['SESSION_REDIS'] = redis_store
     fsession.init_app(app)
+    cache.init_app(app)
 
     admin.init_app(app)
     admin.add_view(GroupAdmin(models.Group, db.session))
diff --git a/app/settings.py b/app/settings.py
index 19cf032..2812fae 100644
--- a/app/settings.py
+++ b/app/settings.py
@@ -28,6 +28,8 @@ JWT_ACCESS_TOKEN_EXPIRES = timedelta(hours=12)
 
 SESSION_TYPE = 'redis'
 REDIS_URL = 'redis://redis:6379/0'
+CACHE_TYPE = 'redis'
+CACHE_REDIS_URL = 'redis://redis:6379/1'
 
 LDAP_HOST = 'esss.lu.se'
 LDAP_BASE_DN = 'DC=esss,DC=lu,DC=se'
diff --git a/environment.yml b/environment.yml
index 787b1e2..09af0d3 100644
--- a/environment.yml
+++ b/environment.yml
@@ -80,6 +80,7 @@ dependencies:
   - dominate==2.3.1
   - email-validator==1.0.2
   - git+https://github.com/beenje/flask-bootstrap@4.0.0-beta.3.dev1
+  - flask-caching==1.3.3
   - flask-jwt-extended==3.4.0
   - flask-ldap3-login==0.9.13
   - flask-redis==0.3.0
-- 
GitLab