From ced4184ca3914fca574773e4503a26c6f04bce36 Mon Sep 17 00:00:00 2001 From: Yoan Le Clanche Date: Mon, 27 Jun 2022 16:15:10 +0200 Subject: [PATCH] Cache get_courses function --- teleforma/views/core.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 4007bab9..22c22426 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -101,9 +101,17 @@ def format_courses(courses, course=None, queryset=None, types=None): def get_courses(user, date_order=False, num_order=False, num_courses=False, period=None): + cache_key = f"get_courses-{user.id}-{date_order}-{num_order}-{num_courses}-{period.id}" + cached_value = cache.get(cache_key) + if cached_value: + return cache.get(cache_key) + if settings.TELEFORMA_E_LEARNING_TYPE == 'CRFPA': from teleforma.views.crfpa import get_crfpa_courses - return get_crfpa_courses(user, date_order, num_order, period) + result = get_crfpa_courses(user, date_order, num_order, period) + # cache for one hour + cache.set(cache_key, result, 60 * 60) + return result elif settings.TELEFORMA_E_LEARNING_TYPE == 'AE': from teleforma.views.ae import get_ae_courses -- 2.39.5