Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @list_route(methods=["post"],url_path="check")
- def check(self,request):
- serializer = self.get_serializer(data=request.data)
- serializer.is_valid(raise_exception=True)
- student = Information.objects.filter(student_id=serializer.data["student_id"],is_active=True).first()
- if not student:
- return Response("ไม่พบข้อมูลบัณฑิต", status=status.HTTP_404_NOT_FOUND)
- from datetime import datetime
- if serializer.data["check"] == 1:
- practice = Practice.objects.filter(
- day=serializer.data['day'],
- period=serializer.data['period'],
- place=serializer.data['place']
- ).first()
- if not practice:
- return Response({'สถานที่ ช่วงเวลา หรือ วันซ้อม ไม่สอดคล้อง'}, status=status.HTTP_400_BAD_REQUEST)
- if not (student.order >= practice.order_first and student.order <= practice.order_last):
- target = Practice.objects.filter(order_first__lte=student.order, order_last__gte=student.order).first()
- message = "ท่านเข้าซ้อมผิด กรุณาเข้าซ้อม ณ " + target.place + " ใน" + target.day + " " + target.period
- return Response({message}, status=status.HTTP_400_BAD_REQUEST)
- if not student.first_check:
- student.first_check = True
- student.first_stamp = datetime.now()
- student.save()
- elif serializer.data["check"] == 2:
- if not student.second_check:
- if student.first_check:
- student.second_check = True
- student.second_stamp = datetime.now()
- student.save()
- else:
- return Response({'ขาดซ้อมครั้งที่ 1 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
- elif serializer.data["check"] == 3:
- if not student.third_check:
- if (not student.first_check) or (not student.second_check):
- if (not student.first_check) and (not student.second_check):
- return Response({'ขาดซ้อมครั้งที่ 1 และ 2 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
- elif (not student.first_check) and (student.second_check):
- return Response({'ขาดซ้อมครั้งที่ 1 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
- else:
- return Response({'ขาดซ้อมครั้งที่ 2 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
- else:
- student.third_check = True
- student.third_stamp = datetime.now()
- student.save()
- response = StudentSerializer(student).data
- return Response(response)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement