def get(self, request, pk, access_level, format=None): user = FilterSecurity(request) if access_level == user.get_my_access(): queryset = user.get_my_students().filter(pk=pk) elif access_level == user.get_all_access(): queryset = user.get_accessible_students().filter(pk=pk) serializer = StudentDetailSerializer(queryset, many=True) return Response(serializer.data)
def get(self, request, access_level, format=None): user = FilterSecurity(request) if access_level == user.get_my_access(): queryset = user.get_my_programs() elif access_level == user.get_all_access(): queryset = user.get_accessible_programs() serializer = ProgramSerializer(queryset, many=True) return Response(serializer.data)
def get(self, request, pk, access_level, format=None): user = FilterSecurity(request) if access_level == user.get_my_access(): queryset = user.get_my_programs().filter(pk=pk) elif access_level == user.get_all_access(): queryset = user.get_accessible_programs().filter(pk=pk) serializer = ProgramDetailSerializer(queryset, many=True, context={"access": access_level}) return Response(serializer.data)
def to_representation(self, program_obj): user = FilterSecurity(self.context.get('request')) current_user = user.get_user() accessible_students = user.get_accessible_students() my_students = user.get_my_students() access_level = self.context.get("access", False) representation = super().to_representation(program_obj) representation["programId"] = representation.pop("id") representation["programName"] = program_obj.name representation["noteSet"] = NoteSerializer( program_obj.notes.filter(user=current_user), many=True).data if access_level == user.get_all_access(): representation["gradeSet"] = GradeSerializer( program_obj.grade_set.filter(student__in=accessible_students), many=True, read_only=True).data representation["attendanceSet"] = AttendanceSerializer( program_obj.attendance_set.filter( student__in=accessible_students), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( program_obj.behavior_set.filter( student__in=accessible_students), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( program_obj.student_set.filter(pk__in=accessible_students), many=True, read_only=True).data if access_level == user.get_my_access(): representation["gradeSet"] = GradeSerializer( program_obj.grade_set.filter(student__in=my_students), many=True, read_only=True).data representation["attendanceSet"] = AttendanceSerializer( program_obj.attendance_set.filter(student__in=my_students), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( program_obj.behavior_set.filter(student__in=my_students), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( program_obj.student_set.filter(pk__in=my_students), many=True, read_only=True).data return representation
def to_representation(self, course_obj): user = FilterSecurity(self.context.get('request')) current_user = user.get_user() accessible_students = user.get_accessible_students() my_students = user.get_my_students() access_level = self.context.get("access", False) representation = super().to_representation(course_obj) representation["courseId"] = representation.pop("id") representation["courseName"] = course_obj.name representation["schoolId"] = course_obj.school.id representation["schoolName"] = course_obj.school.name representation["courseSubject"] = course_obj.subject representation["courseCode"] = course_obj.code representation["noteSet"] = NoteSerializer( course_obj.notes.filter(user=current_user), many=True).data if access_level == user.get_all_access(): representation["gradeSet"] = GradeSerializer(Grade.objects.filter( student_id__in=accessible_students.values("id"), course_id=course_obj.id), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( Behavior.objects.filter( student_id__in=accessible_students.values("id"), course_id=course_obj.id), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( accessible_students.filter(pk__in=Grade.objects.filter( course_id=course_obj.id).values("student")), many=True, read_only=True).data elif access_level == user.get_my_access(): representation["gradeSet"] = GradeSerializer(Grade.objects.filter( student_id__in=my_students.values("id"), course_id=course_obj.id), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( Behavior.objects.filter( student_id__in=my_students.values("id"), course_id=course_obj.id), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( my_students.filter(pk__in=Grade.objects.filter( course_id=course_obj.id).values("student")), many=True, read_only=True).data return representation
def get(self, request, access_level, format=None): user = FilterSecurity(request) if access_level == user.get_my_access(): my_queryset = user.get_my_students() notmy_queryset = user.get_not_my_students() my_serializer = StudentSerializer(my_queryset, many=True) notmy_serializer = StudentSerializer(notmy_queryset, many=True) return Response({ "my_students": my_serializer.data, "notmy_students": notmy_serializer.data })
def to_representation(self, school_obj): user = FilterSecurity(self.context.get('request')) current_user = user.get_user() accessible_students = user.get_accessible_students() my_students = user.get_my_students() accessible_courses = user.get_accessible_courses() my_courses = user.get_my_courses() access_level = self.context.get("access", False) representation = super().to_representation(school_obj) representation["schoolId"] = representation.pop("id") representation["schoolName"] = school_obj.name representation["districtId"] = school_obj.district.id representation["districtName"] = school_obj.district.name representation["noteSet"] = NoteSerializer( school_obj.notes.filter(user=current_user), many=True).data if access_level == user.get_all_access(): representation["gradeSet"] = GradeSerializer(Grade.objects.filter( student_id__in=accessible_students.values("id"), course__school_id=school_obj.id), many=True, read_only=True).data representation["attendanceSet"] = AttendanceSerializer( school_obj.attendance_set.filter( student_id__in=accessible_students.values("id")), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( school_obj.behavior_set.filter( student_id__in=accessible_students.values("id")), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( accessible_students.filter(current_school_id=school_obj.id), many=True, read_only=True).data representation["courseSet"] = CourseSerializer( accessible_courses.filter(school_id=school_obj.id), many=True, read_only=True).data elif access_level == user.get_my_access(): representation["gradeSet"] = GradeSerializer(Grade.objects.filter( student_id__in=my_students.values("id"), course__school_id=school_obj.id), many=True, read_only=True).data representation["attendanceSet"] = AttendanceSerializer( school_obj.attendance_set.filter( student_id__in=my_students.values("id")), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( school_obj.behavior_set.filter( student_id__in=my_students.values("id")), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( my_students.filter(current_school_id=school_obj.id), many=True, read_only=True).data representation["courseSet"] = CourseSerializer( my_courses.filter(school_id=school_obj.id), many=True, read_only=True).data return representation
def to_representation(self, district_obj): user = FilterSecurity(self.context.get('request')) current_user = user.get_user() accessible_schools = user.get_accessible_schools() my_schools = user.get_my_schools() accessible_students = user.get_accessible_students() my_students = user.get_my_students() access_level = self.context.get("access", False) representation = super().to_representation(district_obj) representation["districtId"] = representation.pop("id") representation["districtName"] = district_obj.name representation["state"] = district_obj.state representation["city"] = district_obj.city representation["code"] = district_obj.code representation["noteSet"] = NoteSerializer( district_obj.notes.filter(user=current_user), many=True).data if access_level == user.get_all_access(): representation["schoolSet"] = SchoolSerializer( accessible_schools.filter(district=district_obj.id), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( accessible_students.filter( current_school__district_id=district_obj.id), many=True, read_only=True).data representation["gradeSet"] = GradeSerializer(Grade.objects.filter( student_id__in=accessible_students.values('id'), course__school__district_id=district_obj.id), many=True, read_only=True).data representation["attendanceSet"] = AttendanceSerializer( Attendance.objects.filter( student_id__in=accessible_students.values('id'), school__district_id=district_obj.id), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( Behavior.objects.filter(student_id__in=accessible_students, school__district_id=district_obj.id), many=True, read_only=True).data elif access_level == user.get_my_access(): representation["schoolSet"] = SchoolSerializer( my_schools.filter(district=district_obj.id), many=True, read_only=True).data representation["studentSet"] = StudentSerializer( my_students.filter( current_school__district_id=district_obj.id), many=True, read_only=True).data representation["gradeSet"] = GradeSerializer(Grade.objects.filter( student_id__in=my_students.values('id'), course__school__district_id=district_obj.id), many=True, read_only=True).data representation["attendanceSet"] = AttendanceSerializer( Attendance.objects.filter( student_id__in=my_students.values('id'), school__district_id=district_obj.id), many=True, read_only=True).data representation["behaviorSet"] = BehaviorSerializer( Behavior.objects.filter(student_id__in=my_students, school__district_id=district_obj.id), many=True, read_only=True).data return representation