]> git.parisson.com Git - teleforma.git/commitdiff
Cache get_courses function
authorYoan Le Clanche <yoanl@pilotsystems.net>
Mon, 27 Jun 2022 14:15:10 +0000 (16:15 +0200)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Mon, 27 Jun 2022 14:15:10 +0000 (16:15 +0200)
teleforma/views/core.py

index 4007bab9b6d20aadac8af73d457931aad592bc28..22c22426390103566f441f2f6a5e508da5f250d5 100644 (file)
@@ -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