Skip to content

Commit

Permalink
No audit grades in program records (#1747)
Browse files Browse the repository at this point in the history
  • Loading branch information
annagav authored Jul 18, 2023
1 parent c4f0907 commit d8b2172
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
10 changes: 9 additions & 1 deletion courses/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -718,10 +718,18 @@ def to_representation(self, instance):
"grade": None,
"certificate": None,
}
verified_enrollment_course_runs_list = (
models.CourseRunEnrollment.objects.filter(
user=user,
run__course=course,
enrollment_mode=EDX_ENROLLMENT_VERIFIED_MODE,
change_status=None,
).values_list("run__id", flat=True)
)

grade = (
models.CourseRunGrade.objects.filter(
user=user, course_run__course=course
user=user, course_run__in=verified_enrollment_course_runs_list
)
.order_by("-grade")
.first()
Expand Down
14 changes: 12 additions & 2 deletions courses/serializers_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
from flexiblepricing.constants import FlexiblePriceStatus
from flexiblepricing.factories import FlexiblePriceFactory
from main.test_utils import assert_drf_json_equal, drf_datetime
from openedx.constants import EDX_ENROLLMENT_VERIFIED_MODE, EDX_ENROLLMENT_AUDIT_MODE

pytestmark = [pytest.mark.django_db]

Expand Down Expand Up @@ -467,7 +468,12 @@ def test_program_requirement_deletion():
assert list(ProgramRequirement.get_tree(parent=root2)) == expected


def test_learner_record_serializer(mock_context, program_with_empty_requirements):
@pytest.mark.parametrize(
"enrollment_mode", [EDX_ENROLLMENT_VERIFIED_MODE, EDX_ENROLLMENT_AUDIT_MODE]
)
def test_learner_record_serializer(
mock_context, program_with_empty_requirements, enrollment_mode
):
"""Verify that saving the requirements for one program doesn't affect other programs"""

program = program_with_empty_requirements
Expand All @@ -482,7 +488,9 @@ def test_learner_record_serializer(mock_context, program_with_empty_requirements
program.add_requirement(course)
course_run = CourseRunFactory.create(course=course)
course_run_enrollment = CourseRunEnrollmentFactory.create(
run=course_run, user=user
run=course_run,
user=user,
enrollment_mode=enrollment_mode,
)
course_runs.append(course_run)

Expand Down Expand Up @@ -613,6 +621,8 @@ def test_learner_record_serializer(mock_context, program_with_empty_requirements
"reqtype": "Required Courses",
"title": courses[0].title,
}
if enrollment_mode == EDX_ENROLLMENT_AUDIT_MODE:
course_0_payload["grade"] = None
assert user_info_payload == serialized_data["user"]
assert program_requirements_payload == serialized_data["program"]["requirements"]
assert course_0_payload == serialized_data["program"]["courses"][0]
Expand Down

0 comments on commit d8b2172

Please sign in to comment.