From: Yoan Le Clanche Date: Mon, 27 Jun 2022 14:15:10 +0000 (+0200) Subject: Cache get_courses function X-Git-Tag: 2.7.1~35^2~3 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=ced4184ca3914fca574773e4503a26c6f04bce36;p=teleforma.git Cache get_courses function --- 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