|
1 | 1 | import datetime
|
2 | 2 | import os
|
| 3 | +from typing import List |
3 | 4 | from django.http import JsonResponse
|
4 | 5 | from django.contrib.auth import get_user_model
|
5 | 6 |
|
@@ -344,19 +345,26 @@ def post(self, request, *args, **kwargs):
|
344 | 345 |
|
345 | 346 | return Response({"ok": f"succesfully set attendence for {len(usernames)} students"}, status=status.HTTP_200_OK)
|
346 | 347 |
|
| 348 | + |
347 | 349 | class GetScheduleView(generics.GenericAPIView):
|
348 | 350 | authentication_classes = [JWTAuthentication]
|
349 | 351 | permission_classes = [IsStudent]
|
350 | 352 |
|
351 |
| - def get(self, request, *args, **kwargs): |
| 353 | + def get(self, request, year, week): |
| 354 | + if not year.isdigit() or int(year) < 1970: |
| 355 | + return Response({"error": f"invalid year parameter"}, status=status.HTTP_400_BAD_REQUEST) |
| 356 | + if not week.isdigit() or int(week) < 0 or int(week) > 52: |
| 357 | + return Response({"error": f"invalid week parameter"}, status=status.HTTP_400_BAD_REQUEST) |
| 358 | + |
352 | 359 | user = User.objects.all().filter(username=request.user.username)[0]
|
353 |
| - courses = user.get_enrolled_courses() |
| 360 | + courses : List[Course] = user.get_enrolled_courses() |
354 | 361 | all_lectures = []
|
355 |
| - for course in courses: |
356 |
| - lectures_obj = course.get_lectures() |
| 362 | + for course in courses: |
| 363 | + lectures_obj = course.get_lectures_week(int(year), int(week)) |
357 | 364 | lectures = LectureSerializer(lectures_obj, many=True)
|
358 | 365 | for i, lecture_obj in enumerate(lectures_obj):
|
359 | 366 | att = lecture_obj.get_attendence_user(user)
|
| 367 | + lectures.data[i]["course"] = lecture_obj.course.course_name |
360 | 368 | lectures.data[i]["attended_student"] = att.attended_student if att is not None else False
|
361 | 369 | lectures.data[i]["attended_teacher"] = att.attended_teacher if att is not None else False
|
362 | 370 | all_lectures += lectures.data
|
|
0 commit comments