fix: Stop showing course certificate buttons to beta testers (#28416)

Beta testers can’t earn course certificates, so they should not see a “Request Certificate” button or other info describing how they can earn a cert.

MICROBA-992
This commit is contained in:
Christie Rice
2021-08-10 09:06:14 -04:00
committed by GitHub
parent f2bb92bc64
commit cf3a6c16d6
9 changed files with 127 additions and 19 deletions

View File

@@ -44,6 +44,7 @@ from lms.djangoapps.certificates.api import (
)
from lms.djangoapps.certificates.data import CertificateStatuses
from lms.djangoapps.grades.api import CourseGradeFactory
from lms.djangoapps.instructor import access
from lms.djangoapps.verify_student.models import VerificationDeadline
from lms.djangoapps.verify_student.services import IDVerificationService
from lms.djangoapps.verify_student.utils import is_verification_expiring_soon, verification_for_datetime
@@ -465,6 +466,10 @@ def _cert_info(user, enrollment, cert_status):
"""
Implements the logic for cert_info -- split out for testing.
TODO: replace with a method that lives in the certificates app and combines this logic with
openedx.core.djangoapps.certificates.api.can_show_certificate_message and
lms.djangoapps.courseware.views.get_cert_data
Arguments:
user (User): A user.
enrollment (CourseEnrollment): A course enrollment.
@@ -526,6 +531,10 @@ def _cert_info(user, enrollment, cert_status):
if not CourseMode.is_eligible_for_certificate(enrollment.mode, status=status):
return default_info
if course_overview and access.is_beta_tester(user, course_overview.id):
# Beta testers are not eligible for a course certificate
return default_info
status_dict = {
'status': status,
'mode': cert_status.get('mode', None),