22
22
from cms .constants import CERTIFICATE_INDEX_SLUG , INSTRUCTOR_INDEX_SLUG
23
23
from cms .exceptions import WagtailSpecificPageError
24
24
from cms .models import Page
25
- from courses .constants import HOMEPAGE_CACHE_AGE
26
25
from courses .models import Course , Program
27
26
from courses .utils import (
28
27
get_enrollable_courseruns_qs ,
@@ -364,7 +363,7 @@ def create_featured_items():
364
363
)
365
364
366
365
if not valid_course_ids :
367
- redis_cache .set (cache_key , [], HOMEPAGE_CACHE_AGE )
366
+ redis_cache .set (cache_key , [])
368
367
return []
369
368
370
369
enrollable_courses_qs = Course .objects .select_related ("page" ).filter (
@@ -377,7 +376,7 @@ def create_featured_items():
377
376
)
378
377
379
378
if not enrollable_courseruns .exists ():
380
- redis_cache .set (cache_key , [], HOMEPAGE_CACHE_AGE )
379
+ redis_cache .set (cache_key , [])
381
380
return []
382
381
383
382
self_paced_runs = []
@@ -410,21 +409,20 @@ def create_featured_items():
410
409
all_course_ids = self_paced_course_ids + future_course_ids + started_course_ids
411
410
412
411
if not all_course_ids :
413
- redis_cache .set (cache_key , [], HOMEPAGE_CACHE_AGE )
412
+ redis_cache .set (cache_key , [])
414
413
return []
415
414
416
415
ordering = Case (
417
416
* [When (id = cid , then = pos ) for pos , cid in enumerate (all_course_ids )],
418
417
output_field = IntegerField (),
419
418
)
420
419
421
- featured_courses = list (
420
+ # Store only course IDs to avoid pickling issues and ensure fresh data on retrieval
421
+ redis_cache .set (cache_key , all_course_ids )
422
+
423
+ return list (
422
424
Course .objects .filter (id__in = all_course_ids )
423
425
.select_related ("page" )
424
426
.prefetch_related ("courseruns" )
425
427
.order_by (ordering )
426
428
)
427
-
428
- redis_cache .set (cache_key , featured_courses , HOMEPAGE_CACHE_AGE )
429
-
430
- return featured_courses
0 commit comments