def add_document(self, request, pk=None): concept = get_object_or_404(Concept, pk=pk) self.check_object_permissions(request, concept.group.course) serializer = DocumentSerializer(data=request.DATA) if serializer.is_valid(): document = Document(title=serializer.data['title'], description=serializer.data['description']) document.save() concept.playlist = typed_playlist.append(document.id, concept.playlist, 2) concept.pages.add(document) concept.save() return Response(document.to_dict()) else: content = serializer.errors return Response(content, status.HTTP_400_BAD_REQUEST)
def test_get_valid_single_document(self): response = client.get( reverse('doc-detail', kwargs={'pk': self.pdf_doc.pk})) document = Document.objects.get(pk=self.pdf_doc.pk) serializer = DocumentSerializer(document) self.assertEqual(response.data, serializer.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_all_documents(self): # get API response response = client.get(reverse('doc-list')) # get data from db documents = Document.objects.all() serializer = DocumentSerializer(documents, many=True) self.assertEqual(response.data, serializer.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def add_page(self, request, pk=None): _course = get_object_or_404(Course, pk=pk) self.check_object_permissions(request, _course) serializer = DocumentSerializer(data=request.DATA) if serializer.is_valid(): document = Document(title=serializer.data['title'], is_heading=True, description=serializer.data['description']) document.save() _course.pages.add(document) _course.page_playlist = playlist.append(document.id, _course.page_playlist) _course.save() return Response(DocumentSerializer(document).data) else: content = serializer.errors return Response(content, status.HTTP_400_BAD_REQUEST)
def add_document(self, request, pk=None): concept = get_object_or_404(Concept, pk=pk) self.check_object_permissions(request, concept.group.course) serializer = DocumentSerializer(data=request.DATA) if serializer.is_valid(): document = Document( title=serializer.data['title'], description=serializer.data['description'] ) document.save() concept.playlist = typed_playlist.append(document.id, concept.playlist, 2) concept.pages.add(document) concept.save() return Response(document.to_dict()) else: content = serializer.errors return Response(content, status.HTTP_400_BAD_REQUEST)
def add_page(self, request, pk=None): _course = get_object_or_404(Course, pk=pk) self.check_object_permissions(request, _course) serializer = DocumentSerializer(data=request.DATA) if serializer.is_valid(): document = Document( title=serializer.data['title'], is_heading=True, description=serializer.data['description'] ) document.save() _course.pages.add(document) _course.page_playlist = playlist.append( document.id, _course.page_playlist) _course.save() return Response(DocumentSerializer(document).data) else: content = serializer.errors return Response(content, status.HTTP_400_BAD_REQUEST)
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)
class ConceptSerializer(serializers.ModelSerializer): """ Serializer for Concept """ videos = VideoSerializer(many=True) quizzes = QuizSerializer(many=True) pages = DocumentSerializer(many=True) class Meta: """ Defining model """ model = models.Concept fields = ('id', 'title', 'description', 'image', 'playlist', 'is_published')
class ConceptDataSerializer(serializers.Serializer): """ Selrializer to send the data required for the concept page """ id = serializers.IntegerField() title = serializers.CharField(default='title_not_specified') description = serializers.CharField(default='description_not_provided') group = serializers.IntegerField(default=0) group_title = serializers.CharField(default='group_not_spefified') course = serializers.IntegerField(default=0) course_title = serializers.CharField(default='course_not_specified') playlist = ConceptDataPlaylistSerializer(many=True) current_video = serializers.IntegerField(default=-1) group_playlist = GroupPlaylistSerializer(many=True) course_playlist = GroupPlaylistSerializer(many=True) title_document = DocumentSerializer()