fix: add integrity signature flag to courseware api
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user