Exemplo n.º 1
0
    def get(self, request, format=None):
        now = datetime.datetime.now()
        compared_time = now - datetime.timedelta(days=2)
        file = File.objects.filter(user=self.request.user,
                                   modified_date__gte=compared_time)

        serializer = FileSerializer(file, many=True)
        return Response(serializer.data, status=status.HTTP_200_OK)
Exemplo n.º 2
0
class EntryMinimalSerializer(serializers.ModelSerializer):
    size = serializers.SerializerMethodField()
    tags = TagMinimalSerializer(Tag, many=True,  read_only=True, required=False)
    people = PersonMinimalSerializer(Person, many=True,  read_only=True, required=False)
    EntryFiles = FileSerializer(File, many=True,  read_only=True, required=False)

    class Meta:
        model = Entry
        fields = '__all__'
        
    def get_size(self, obj):
        return get_obj_size(obj)
Exemplo n.º 3
0
class PostSerializer(serializers.HyperlinkedModelSerializer):
    user = serializers.PrimaryKeyRelatedField(
        read_only=True, default=serializers.CurrentUserDefault())
    category = serializers.SlugRelatedField(slug_field='name',
                                            queryset=Category.objects.all())
    image = serializers.ListField(child=FileSerializer())
    url = serializers.HyperlinkedIdentityField(view_name='app:posts-detail',
                                               lookup_field='slug')
    permission_classes = [IsAuthenticated]
    # comment = CommentSerializer(many=True)
    visited = serializers.SerializerMethodField()

    class Meta:
        model = Post
        fields = ('id', 'title', 'body', 'slug', 'image', 'user', 'draft',
                  'publish', 'category', 'url', 'visited')
        read_only_fields = ('id', 'slug', 'publish', 'url', 'visited')
        write_only_fields = ('title', 'body', 'image', 'draft', 'user')
        lookup_field = 'slug'

    def create(self, validated_data):
        image = validated_data.pop('image')
        post = Post.objects.create(**validated_data)
        for img in image:
            photo = File.objects.create(name=img.name,
                                        filename=img,
                                        mime=img.content_type)
            post.image.add(photo)
        return post

    # def get_comment(self, obj):
    #     result = []
    #     for comment in obj.comment_set.all()[:5]:
    #         obj = dict()
    #         obj['id'] = comment.id
    #         obj['body'] = comment.body
    #         print (comment.parent)
    #         obj['parent'] = comment.parent
    #         result.append(obj)
    #     return result

    def get_visited(self, obj):
        return PostVisited.objects.filter(post=obj.id).count()

    def add_visited(self):
        try:
            visited = PostVisited(user_id=self.data["user"]["id"],
                                  post_id=self.data["id"])
            visited.save()
            return True
        except Exception as e:
            return False
Exemplo n.º 4
0
    def create(self, request, *args, **kwargs):
        new_data = request.data.dict()
        file_name = request.data['file_name']
        is_shared = request.data.get('is_shared', False)
        is_starred = request.data.get('is_starred', False)
        file = request.data['file']
        new_data['file_name'] = file_name
        new_data['is_shared'] = is_shared
        new_data['is_starred'] = is_starred
        new_data['file'] = file
        new_data['user'] = User.objects.get(username=self.request.user).id
        new_query_dict = QueryDict('', mutable=True)
        new_query_dict.update(new_data)
        file_serializer = FileSerializer(data=new_query_dict)

        if file_serializer.is_valid():
            file_serializer.save()
            return Response(file_serializer.data,
                            status=status.HTTP_201_CREATED)
        else:
            return Response(file_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 5
0
class EntryMinimalSerializer(serializers.ModelSerializer):
    tags = TagMinimalSerializer(Tag, many=True, read_only=True, required=False)
    people = PersonMinimalSerializer(Person,
                                     many=True,
                                     read_only=True,
                                     required=False)
    EntryFiles = FileSerializer(File,
                                many=True,
                                read_only=True,
                                required=False)

    class Meta:
        model = Entry
        fields = '__all__'
Exemplo n.º 6
0
    def get(self, request, format=None):
        files = File.objects.filter(user=self.request.user, is_starred=True)

        serializer = FileSerializer(files, many=True)
        return Response(serializer.data, status=status.HTTP_200_OK)