fix: add integrity signature flag to courseware api

This commit is contained in:
Bianca Severino
2021-11-05 11:47:26 -04:00
parent a7181d263e
commit 9f2dc8606b
3 changed files with 12 additions and 2 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -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