2222from cms .constants import CERTIFICATE_INDEX_SLUG , INSTRUCTOR_INDEX_SLUG
2323from cms .exceptions import WagtailSpecificPageError
2424from cms .models import Page
25- from courses .constants import HOMEPAGE_CACHE_AGE
2625from courses .models import Course , Program
2726from courses .utils import (
2827 get_enrollable_courseruns_qs ,
@@ -364,7 +363,7 @@ def create_featured_items():
364363 )
365364
366365 if not valid_course_ids :
367- redis_cache .set (cache_key , [], HOMEPAGE_CACHE_AGE )
366+ redis_cache .set (cache_key , [])
368367 return []
369368
370369 enrollable_courses_qs = Course .objects .select_related ("page" ).filter (
@@ -377,7 +376,7 @@ def create_featured_items():
377376 )
378377
379378 if not enrollable_courseruns .exists ():
380- redis_cache .set (cache_key , [], HOMEPAGE_CACHE_AGE )
379+ redis_cache .set (cache_key , [])
381380 return []
382381
383382 self_paced_runs = []
@@ -410,21 +409,20 @@ def create_featured_items():
410409 all_course_ids = self_paced_course_ids + future_course_ids + started_course_ids
411410
412411 if not all_course_ids :
413- redis_cache .set (cache_key , [], HOMEPAGE_CACHE_AGE )
412+ redis_cache .set (cache_key , [])
414413 return []
415414
416415 ordering = Case (
417416 * [When (id = cid , then = pos ) for pos , cid in enumerate (all_course_ids )],
418417 output_field = IntegerField (),
419418 )
420419
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 (
422424 Course .objects .filter (id__in = all_course_ids )
423425 .select_related ("page" )
424426 .prefetch_related ("courseruns" )
425427 .order_by (ordering )
426428 )
427-
428- redis_cache .set (cache_key , featured_courses , HOMEPAGE_CACHE_AGE )
429-
430- return featured_courses
0 commit comments