|
1 | 1 | # pylint: disable=too-many-ancestors,fixme |
2 | 2 | """DRF Viewsets""" |
3 | 3 | from django.db.models import Avg, Sum |
4 | | -from rest_framework import viewsets |
5 | 4 | from django.http import JsonResponse |
6 | 5 |
|
| 6 | +from rest_framework import viewsets |
| 7 | + |
7 | 8 | from ..models import ( |
8 | 9 | Course, |
9 | 10 | Department, |
@@ -149,19 +150,22 @@ def get_queryset(self): |
149 | 150 | return super().get_queryset().filter(**params).distinct().order_by("-number") |
150 | 151 |
|
151 | 152 |
|
152 | | -def get_section_enrollment(request, course_id): |
153 | | - """Retrieves enrollment data for all sections of a given course.""" |
154 | | - sections = Section.objects.filter(course_id=course_id) |
155 | | - enrollment_data = {} |
| 153 | +class SectionEnrollmentViewSet(viewsets.ViewSet): |
| 154 | + """ViewSet for retrieving section enrollment data.""" |
| 155 | + |
| 156 | + def retrieve(self, request, pk=None): |
| 157 | + """Retrieves enrollment data for all sections of a given course.""" |
| 158 | + sections = Section.objects.filter(course_id=pk) |
| 159 | + enrollment_data = {} |
156 | 160 |
|
157 | | - for section in sections: |
158 | | - section_enrollment = SectionEnrollment.objects.filter(section=section).first() |
159 | | - if section_enrollment: |
160 | | - enrollment_data[section.sis_section_number] = { |
161 | | - 'enrollment_taken': section_enrollment.enrollment_taken, |
162 | | - 'enrollment_limit': section_enrollment.enrollment_limit, |
163 | | - 'waitlist_taken': section_enrollment.waitlist_taken, |
164 | | - 'waitlist_limit': section_enrollment.waitlist_limit |
165 | | - } |
| 161 | + for section in sections: |
| 162 | + section_enrollment = SectionEnrollment.objects.filter(section=section).first() |
| 163 | + if section_enrollment: |
| 164 | + enrollment_data[section.sis_section_number] = { |
| 165 | + 'enrollment_taken': section_enrollment.enrollment_taken, |
| 166 | + 'enrollment_limit': section_enrollment.enrollment_limit, |
| 167 | + 'waitlist_taken': section_enrollment.waitlist_taken, |
| 168 | + 'waitlist_limit': section_enrollment.waitlist_limit |
| 169 | + } |
166 | 170 |
|
167 | | - return JsonResponse({'enrollment_data': enrollment_data}) |
| 171 | + return JsonResponse({'enrollment_data': enrollment_data}) |
0 commit comments