Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion FusionIIIT/applications/academic_information/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -929,15 +929,32 @@ def import_calendar(request):
@role_required(['acadadmin'])
def available_courses(request):
"""
GET /api/available-courses/?academic_year=2024-25&semester_type=Odd+Semester
GET /api/available-courses/?academic_year=2024-25&semester_type=Odd+Semester&programme_type=UG
Returns unique courses for which the student has registrations.
"""
year = request.query_params.get('academic_year')
sem = request.query_params.get('semester_type')
programme_type = request.query_params.get('programme_type') # Get programme_type filter
if not year or not sem:
return Response({"detail": "academic_year and semester_type required"}, status=400)

regs = course_registration.objects.filter(session=year, semester_type=sem)

if programme_type:
programme_mapping = {
'UG': ['B.Tech', 'B.Des'],
'PG': ['M.Tech', 'M.Des', 'PhD']
}

if programme_type in programme_mapping:
programmes = programme_mapping[programme_type]
from applications.academic_information.models import Student
student_ids_with_programme = Student.objects.filter(
programme__in=programmes
).values_list('id', flat=True)

regs = regs.filter(student_id__in=student_ids_with_programme)

course_ids = regs.values_list('course_id', flat=True).distinct()
courses = Courses.objects.filter(id__in=course_ids)

Expand Down
1 change: 1 addition & 0 deletions FusionIIIT/applications/examination/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

url(r'^exam_view/', views.exam_view, name='exam_view'),
url(r'^download_template/', views.download_template, name='download_template'),
url(r'^check_course_students/', views.check_course_students, name='check_course_students'),
url(r'^submitGrades/', views.SubmitGradesView.as_view(), name='submitGrades'),
url(r'^upload_grades/', views.UploadGradesAPI.as_view(), name='upload_grades'),
url(r'^update_grades/', views.UpdateGradesAPI.as_view(), name='update_grades'),
Expand Down
Loading