Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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)
Beispiel #5
0
 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)
Beispiel #6
0
 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)
Beispiel #7
0
 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)
Beispiel #8
0
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')
Beispiel #9
0
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()