diff --git a/openedx/core/djangoapps/courseware_api/serializers.py b/openedx/core/djangoapps/courseware_api/serializers.py index b073f32bd0..71cc692bc5 100644 --- a/openedx/core/djangoapps/courseware_api/serializers.py +++ b/openedx/core/djangoapps/courseware_api/serializers.py @@ -118,6 +118,7 @@ class CourseInfoSerializer(serializers.Serializer): # pylint: disable=abstract- verify_identity_url = AbsoluteURLField() verification_status = serializers.CharField() linkedin_add_to_profile_url = serializers.URLField() + is_integrity_signature_enabled = serializers.BooleanField() user_needs_integrity_signature = serializers.BooleanField() username = serializers.CharField() diff --git a/openedx/core/djangoapps/courseware_api/tests/test_views.py b/openedx/core/djangoapps/courseware_api/tests/test_views.py index b6b1468236..9c86482cc0 100644 --- a/openedx/core/djangoapps/courseware_api/tests/test_views.py +++ b/openedx/core/djangoapps/courseware_api/tests/test_views.py @@ -358,6 +358,8 @@ class CourseApiTestViews(BaseCoursewareTests, MasqueradeMixin): response = self.client.get(self.url) assert response.status_code == 200 courseware_data = response.json() + assert 'is_integrity_signature_enabled' in courseware_data + assert courseware_data['is_integrity_signature_enabled'] is True assert 'user_needs_integrity_signature' in courseware_data assert courseware_data['user_needs_integrity_signature'] == needs_integrity_signature diff --git a/openedx/core/djangoapps/courseware_api/views.py b/openedx/core/djangoapps/courseware_api/views.py index 84ac831cd4..260bcf39be 100644 --- a/openedx/core/djangoapps/courseware_api/views.py +++ b/openedx/core/djangoapps/courseware_api/views.py @@ -45,7 +45,7 @@ from lms.djangoapps.courseware.views.views import get_cert_data from lms.djangoapps.grades.api import CourseGradeFactory from lms.djangoapps.verify_student.services import IDVerificationService from openedx.core.djangoapps.agreements.api import get_integrity_signature -from openedx.core.djangoapps.agreements.toggles import is_integrity_signature_enabled +from openedx.core.djangoapps.agreements.toggles import is_integrity_signature_enabled as integrity_signature_toggle from openedx.core.djangoapps.courseware_api.utils import get_celebrations_dict from openedx.core.djangoapps.programs.utils import ProgramProgressMeter from openedx.core.lib.api.authentication import BearerAuthenticationAllowInactiveUser @@ -313,13 +313,20 @@ class CoursewareMeta: self.overview.display_name, user_certificate.mode, cert_url, certificate=user_certificate, ) + @property + def is_integrity_signature_enabled(self): + """ + Course waffle flag for the integrity signature feature. + """ + return integrity_signature_toggle(self.course_key) + @property def user_needs_integrity_signature(self): """ Boolean describing whether the user needs to sign the integrity agreement for a course. """ if ( - is_integrity_signature_enabled(self.course_key) + integrity_signature_toggle(self.course_key) and not self.is_staff and self.enrollment_object and self.enrollment_object.mode in CourseMode.CERTIFICATE_RELEVANT_MODES