feat!: upgrading get_proctored_exam_results api to DRF ( 32 ) (#35612)

* feat!: upgrading api to DRF
This commit is contained in:
Awais Qureshi
2025-02-19 15:12:39 +05:00
committed by GitHub
parent bdd2bc3cd8
commit 9f5fe30f54
2 changed files with 23 additions and 14 deletions

View File

@@ -1706,22 +1706,31 @@ class GetCourseSurveyResults(DeveloperErrorViewMixin, APIView):
return JsonResponse({"status": success_status})
@transaction.non_atomic_requests
@require_POST
@ensure_csrf_cookie
@cache_control(no_cache=True, no_store=True, must_revalidate=True)
@require_course_permission(permissions.EXAM_RESULTS)
@common_exceptions_400
def get_proctored_exam_results(request, course_id):
@method_decorator(cache_control(no_cache=True, no_store=True, must_revalidate=True), name='dispatch')
@method_decorator(transaction.non_atomic_requests, name='dispatch')
class GetProctoredExamResults(DeveloperErrorViewMixin, APIView):
"""
get the proctored exam resultsreport for the particular course.
get the proctored exam results report for the particular course.
"""
course_key = CourseKey.from_string(course_id)
report_type = _('proctored exam results')
task_api.submit_proctored_exam_results_report(request, course_key)
success_status = SUCCESS_MESSAGE_TEMPLATE.format(report_type=report_type)
return JsonResponse({"status": success_status})
permission_classes = (IsAuthenticated, permissions.InstructorPermission)
permission_name = permissions.EXAM_RESULTS
@method_decorator(ensure_csrf_cookie)
@method_decorator(transaction.non_atomic_requests)
def post(self, request, course_id):
"""
get the proctored exam results report for the particular course.
"""
try:
course_key = CourseKey.from_string(course_id)
report_type = _('proctored exam results')
task_api.submit_proctored_exam_results_report(request, course_key)
success_status = SUCCESS_MESSAGE_TEMPLATE.format(report_type=report_type)
return JsonResponse({"status": success_status})
except (AlreadyRunningError, QueueConnectionError, AttributeError) as error:
# Return a 400 status code with the error message
return JsonResponse({"error": str(error)}, status=400)
@method_decorator(cache_control(no_cache=True, no_store=True, must_revalidate=True), name='dispatch')

View File

@@ -57,7 +57,7 @@ urlpatterns = [
path('show_student_extensions', api.ShowStudentExtensions.as_view(), name='show_student_extensions'),
# proctored exam downloads...
path('get_proctored_exam_results', api.get_proctored_exam_results, name='get_proctored_exam_results'),
path('get_proctored_exam_results', api.GetProctoredExamResults.as_view(), name='get_proctored_exam_results'),
# Grade downloads...
path('list_report_downloads', api.ListReportDownloads.as_view(), name='list_report_downloads'),