From d6beb37d729727f02b70f38b3d67ae75dbefa869 Mon Sep 17 00:00:00 2001 From: Carla Duarte Date: Wed, 3 Feb 2021 14:27:35 -0500 Subject: [PATCH] AA-635: learner dashboard course card image bug --- lms/templates/dashboard.html | 3 ++- .../core/djangoapps/content/course_overviews/models.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lms/templates/dashboard.html b/lms/templates/dashboard.html index 063dea1bcf..5369df1551 100644 --- a/lms/templates/dashboard.html +++ b/lms/templates/dashboard.html @@ -196,8 +196,10 @@ from common.djangoapps.student.models import CourseEnrollment enrollment = CourseEnrollment(user=user, course=CourseOverview.get_from_id(pseudo_key), mode=pseudo_session['type']) # We only show email settings for entitlement cards if the entitlement has an associated enrollment show_email_settings = is_fulfilled_entitlement and (entitlement_session.course_id in show_email_settings_for) + course_overview = enrollment.course_overview else: show_email_settings = (enrollment.course_id in show_email_settings_for) + course_overview = CourseOverview.get_from_id(enrollment.course_id) session_id = enrollment.course_id show_courseware_link = show_courseware_links_for.get(session_id, False) @@ -212,7 +214,6 @@ from common.djangoapps.student.models import CourseEnrollment course_requirements = courses_requirements_not_met.get(session_id) related_programs = inverted_programs.get(six.text_type(entitlement.course_uuid if is_unfulfilled_entitlement else session_id)) show_consent_link = (session_id in consent_required_courses) - course_overview = enrollment.course_overview resume_button_url = resume_button_urls[dashboard_index] %> <%include file='dashboard/_dashboard_course_listing.html' args='course_overview=course_overview, course_card_index=dashboard_index, enrollment=enrollment, is_unfulfilled_entitlement=is_unfulfilled_entitlement, is_fulfilled_entitlement=is_fulfilled_entitlement, entitlement=entitlement, entitlement_session=entitlement_session, entitlement_available_sessions=entitlement_available_sessions, entitlement_expiration_date=entitlement_expiration_date, entitlement_expired_at=entitlement_expired_at, show_courseware_link=show_courseware_link, cert_status=cert_status, can_refund_entitlement=can_refund_entitlement, can_unenroll=can_unenroll, credit_status=credit_status, show_email_settings=show_email_settings, course_mode_info=course_mode_info, is_paid_course=is_paid_course, verification_status=course_verification_status, course_requirements=course_requirements, dashboard_index=dashboard_index, share_settings=share_settings, user=user, related_programs=related_programs, display_course_modes_on_dashboard=display_course_modes_on_dashboard, show_consent_link=show_consent_link, enterprise_customer_name=enterprise_customer_name, resume_button_url=resume_button_url, partner_managed_enrollment=partner_managed_enrollment' /> diff --git a/openedx/core/djangoapps/content/course_overviews/models.py b/openedx/core/djangoapps/content/course_overviews/models.py index 92922d5d1a..61eb0cd3b9 100644 --- a/openedx/core/djangoapps/content/course_overviews/models.py +++ b/openedx/core/djangoapps/content/course_overviews/models.py @@ -372,8 +372,14 @@ class CourseOverview(TimeStampedModel): # Regenerate the thumbnail images if they're missing (either because # they were never generated, or because they were flushed out after # a change to CourseOverviewImageConfig. - if course_overview and not hasattr(course_overview, 'image_set'): - CourseOverviewImageSet.create(course_overview) + if course_overview: + if hasattr(course_overview, 'image_set'): + image_set = course_overview.image_set + if not image_set.small_url or not image_set.large_url: + CourseOverviewImageSet.objects.filter(course_overview=course_overview).delete() + CourseOverviewImageSet.create(course_overview) + else: + CourseOverviewImageSet.create(course_overview) return course_overview or cls.load_from_module_store(course_id)