def pages(self, request, pk=None): _course = get_object_or_404(Course, pk=pk) self.check_object_permissions(request, _course) pages = _course.pages.all() serializer = DocumentSerializer(pages, many=True) page_playlist = playlist.to_array(_course.page_playlist) N = len(page_playlist) ordered_data = [""] * N for i in range(N): ordered_data[i] = serializer.data[page_playlist[i][1]] return Response(ordered_data)
def groups(self, request, pk=None): """ Function to get all the groups in a course """ _course = get_object_or_404(Course, pk=pk) self.check_object_permissions(request, _course) _groups = Group.objects.filter(course=_course) serializer = GroupSerializer(_groups, many=True) _playlist = playlist.to_array(_course.playlist) N = len(_playlist) ordered_data = [""] * N for i in range(N): ordered_data[i] = serializer.data[_playlist[i][1]] return Response(ordered_data)
def concepts(self, request, pk=None): """ Function to get all the concepts in a course """ group = get_object_or_404(Group, pk=pk) self.check_object_permissions(request=request, obj=group.course) concepts = Concept.objects.filter(group=group) serializer = ConceptSerializer(concepts, many=True) if len(serializer.data) == 0: return Response([]) _playlist = playlist.to_array(group.playlist) N = len(_playlist) ordered_data = [""]*N for i in range(N): ordered_data[i] = serializer.data[_playlist[i][1]] return Response(ordered_data)
def concepts(self, request, pk=None): """ Function to get all the concepts in a course """ group = get_object_or_404(Group, pk=pk) self.check_object_permissions(request=request, obj=group.course) concepts = Concept.objects.filter(group=group) serializer = ConceptSerializer(concepts, many=True) if len(serializer.data) == 0: return Response([]) _playlist = playlist.to_array(group.playlist) N = len(_playlist) ordered_data = [""] * N for i in range(N): ordered_data[i] = serializer.data[_playlist[i][1]] return Response(ordered_data)
def published_concepts(self, request, pk=None): """ Function to get all the concepts in a course """ group = get_object_or_404(Group, pk=pk) self.check_object_permissions(request=request, obj=group.course) concepts = Concept.objects.filter(group=group) _playlist = playlist.to_array(group.playlist) N = len(_playlist) ordered_data = [] for i in range(N): concept = concepts[_playlist[i][1]] if concept.is_published: # TODO: check if append does not take O(n) time ordered_data.append(concept) serializer = ConceptSerializer(ordered_data, many=True) return Response(serializer.data)