Beispiel #1
0
class Tip_Serializer(serializers.HyperlinkedModelSerializer):
    author = UserDetailSerializer(read_only=True)

    class Meta:
        model = Tip
        fields = ('url', 'id', 'author', 'category', 'title', 'body',
                  'photo_field', 'pub_date')
def custom_jwt_response_handler(token, user=None, request=None):
    return {
        'token': token,
        'user': UserDetailSerializer(user, context={
            'request': request
        }).data
    }
Beispiel #3
0
class PostDetailSerializer(ModelSerializer):
    url = post_detail_url
    user = UserDetailSerializer(read_only=True)
    image = SerializerMethodField()
    html = SerializerMethodField()
    comments = SerializerMethodField()

    class Meta:
        model = Post
        fields = [
            'url',
            'title',
            'slug',
            'image',
            'content',
            'html',
            'user',
            'comments',
        ]

    def get_html(self, obj):
        return obj.get_markdown()

    def get_image(self, obj):
        try:
            image = obj.image.url
        except:
            image = None
        return image

    def get_comments(self, obj):
        c_qs = Comment.objects.filter_by_instance(obj)
        comments = CommentSerializer(c_qs, many=True).data
        return comments
Beispiel #4
0
class AdvertisementInfoSerializer(serializers.ModelSerializer):
    user = UserDetailSerializer()
    store = StoreSerializer()

    class Meta:
        model = Advertisement
        fields = ['id', 'image', 'user', 'store']
Beispiel #5
0
class CommentDetailSerializer(serializers.ModelSerializer):
    user = UserDetailSerializer(read_only=True)
    replies = serializers.SerializerMethodField()
    reply_count = serializers.SerializerMethodField()

    class Meta:
        model = Comment
        fields = [
            'id',
            'user',
            'content',
            'timestamp',
            'reply_count',
            'replies',
        ]
        read_only_fields = [
            'reply_count',
            'replies',
        ]

    def get_replies(self, obj):
        if obj.is_parent:
            return CommentChildSerializer(obj.children(), many=True).data

    def get_reply_count(self, obj):
        if obj.is_parent:
            return obj.children().count()
        return 0
Beispiel #6
0
class CommentDetailSerializer(ModelSerializer):
    replies = SerializerMethodField()
    reply_count = SerializerMethodField()
    user = UserDetailSerializer(read_only=True)
    content_object_url = SerializerMethodField()

    class Meta:
        model = Comment
        fields = [
            'id',
            'user',
            'content',
            'replies',
            'reply_count',
            'timestamp',
            'content_object_url',
        ]
        read_only_fields = ['reply_count', 'replies']

    def get_content_object_url(self, obj):
        try:
            return obj.content_object.get_absolute_url()
        except:
            return None

    def get_replies(self, obj):
        if obj.is_parent:
            return CommentChildSerializer(obj.children(), many=True).data
        return None

    def get_reply_count(self, obj):
        if obj.is_parent:
            return obj.children().count()
        return 0
Beispiel #7
0
class CommentDetailSerializer(ModelSerializer):
    reply_count = SerializerMethodField()
    replies = SerializerMethodField()
    author = UserDetailSerializer(read_only=True)

    class Meta:
        model = Comment
        fields = [
            'id',
            'author',
            'post',
            'content',
            'reply_count',
            'replies',
            'created',
        ]
        read_only_fields = [
            'post',
        ]

    def get_reply_count(self, obj):
        if obj.is_parent:
            return obj.children().count()
        return 0

    def get_replies(self, obj):
        if obj.is_parent:
            return CommentChildSerializer(obj.children(), many=True).data
        return None
Beispiel #8
0
class Comment_Serializer(serializers.HyperlinkedModelSerializer):
    reply_set = RecursiveSerializer(many=True, read_only=True)
    author = UserDetailSerializer()

    class Meta:
        model = Comment
        fields = ('url', 'id', 'author', 'body', 'cocktail', 'date', 'parent',
                  'reply_set')
Beispiel #9
0
class FoundPostingDetailSerializer(serializers.ModelSerializer):
    thumbnail = serializers.StringRelatedField(many=True)
    user = UserDetailSerializer()

    class Meta:
        model = FoundPosting
        fields = ('id', 'color', 'category', 'created', 'modified', 'content',
                  'status', 'thumbnail', 'user')
Beispiel #10
0
class LikeListSerializer(ModelSerializer):
    user = UserDetailSerializer()

    class Meta:
        model = Post
        fields = [
            'id',
            'user',
        ]
Beispiel #11
0
    def post(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)

        if serializer.is_valid(raise_exception=True):
            user = UserDetailSerializer(serializer.user).data
            serializer.validated_data.update({"user": user})
            return Response(serializer.validated_data, )

        return Response(serializer.errors, status=status.HTTP_404_NOT_FOUND)
Beispiel #12
0
    def test_user_can_view_other_effort(self):
        self.client.force_login(self.user2)

        response = self.client.get(
            reverse('user-detail', kwargs={'pk': self.user.pk}))

        serialized = UserDetailSerializer(self.user)

        self.assertEqual(response.data, serialized.data)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Beispiel #13
0
class CommentChildSerializer(ModelSerializer):
    user = UserDetailSerializer(read_only=True)

    class Meta:
        model = Comment
        fields = [
            'id',
            'user',
            'content',
            'timestamp',
        ]
Beispiel #14
0
 def post(self, request, *args, **kwargs):
     username = request.data.get("username", "")
     password = request.data.get("password", "")
     user = authenticate(request, username=username, password=password)
     if user is not None:
         # login saves the user’s ID in the session,
         # using Django’s session framework.
         login(request, user)
         token_serializer = TokenSerializer(
             data={
                 # using drf jwt utility functions to generate a token
                 "token": jwt_encode_handler(jwt_payload_handler(user))
             })
         token_serializer.is_valid()
         user_serializer = UserDetailSerializer(user)
         if user.is_institution_administrator == True:
             try:
                 related_institution = Institution.objects.get(
                     created_by=user)
                 institution = {
                     "id":
                     related_institution.pk,
                     "institution_status":
                     related_institution.is_institution_active
                 }
             except:
                 institution = {"status": "No institution created yet"}
         elif user.is_loan_officer == True:
             institution_staff = InstitutionStaff.objects.get(user_id=user)
             assigned_institution = Institution.objects.get(
                 id=institution_staff.institution_id.pk)
             institution = {
                 "id":
                 assigned_institution.pk,
                 "institution_status":
                 assigned_institution.is_institution_active
             }
         elif user.is_teller == True:
             institution_staff = InstitutionStaff.objects.get(user_id=user)
             assigned_institution = Institution.objects.get(
                 id=institution_staff.institution_id.pk)
             institution = {
                 "id":
                 assigned_institution.pk,
                 "institution_status":
                 assigned_institution.is_institution_active
             }
         login_data = {
             "user_data": user_serializer.data,
             "token_data": token_serializer.data,
             "institution": institution
         }
         return Response(login_data)
     return Response(status=status.HTTP_404_NOT_FOUND)
Beispiel #15
0
class CommentSerializer(serializers.ModelSerializer):
    user = UserDetailSerializer(read_only=True)

    class Meta:
        model = Comment
        # fields = ('id','user','content','created_at')
        fields = "__all__"
        read_only_fields = (
            'review',
            'like_users',
        )
Beispiel #16
0
class ItineraryDetailSerializer(ModelSerializer):
    city = SerializerMethodField()
    image = SerializerMethodField()
    user = UserDetailSerializer(read_only=True)
    likes = SerializerMethodField()

    def get_image(self, obj):
        """
        If an image was uploaded, we add its url
        """
        try:
            image = obj.image.url
        except:
            image = None
        return image

    def get_city(self, obj):
        return {
            'pk': obj.city.pk,
            'name': obj.city.name,
            'country': obj.city.country,
            'currency': obj.city.currency,
            'language': obj.city.language
        }

    def get_likes(self, obj):
        return obj.likes.count()

    class Meta:
        model = Itinerary
        fields = [
            'pk',
            'title',
            'budget',
            'city',
            'day1_morning',
            'day1_lunch',
            'day1_afternoon',
            'day1_diner',
            'day2_morning',
            'day2_lunch',
            'day2_afternoon',
            'day2_diner',
            'day3_morning',
            'day3_lunch',
            'day3_afternoon',
            'day3_diner',
            'image',
            'likes',
            'number_of_days',
            'user',
            'views',
            'created_date',
        ]
Beispiel #17
0
class CommentChildSerializer(ModelSerializer):
    author = UserDetailSerializer()

    class Meta:
        model = Comment
        fields = [
            'id',
            'author',
            'content',
            'created',
        ]
Beispiel #18
0
class RecommendationDetailSerializer(ModelSerializer):
    city = SerializerMethodField()
    comments = SerializerMethodField()
    delete_url = recommendation_delete_url
    image = SerializerMethodField()
    url = recommendation_url
    update_url = recommendation_update_url
    user = UserDetailSerializer(read_only=True)

    def get_image(self, obj):
        """
        If an image was uploaded, we add its url
        """
        # TODO: the media upload doesn't work !!!!
        try:
            image = obj.image.url;
        except:
            image = None
        return image

    def get_comments(self, obj):
        comments_qs = Comment.objects.filter_by_instance(obj)
        comments = CommentSerializer(comments_qs, many=True).data
        return comments

    def get_city(self, obj):
        return {
            'name': obj.city.name,
            'country': obj.city.country,
            'currency': obj.city.currency,
            'language': obj.city.language
        }

    class Meta:
        model = Recommendation
        fields = [
            'title',
            'budget',
            'city',
            'comments',
            'content_day1',
            'content_day2',
            'content_day3',
            'image',
            'likes',
            'number_of_days',
            'user',
            'views',
            'created_date',
            'url',
            'update_url',
            'delete_url',
        ]
Beispiel #19
0
def get_user_view(request: Request) -> Response:
    """[summary]

    Arguments:
        request {Request} -- [description]
    
    Schma:
        GET:
        
        POST:

    Raises:
        PermissionError: [description]
        ConnectionRefusedError: [description]
    
    Returns:
        Response -- [description]
    """
    serializer: Serializer
    if request.method == "GET":
        queryset = get_user_model().objects.all()
        serializer = UserDetailSerializer(queryset, many=True)
        raise PermissionError("error", "try Get or post")
        return Response(serializer.data)
    if request.method == "POST":
        serializer = UserCreateSerializer(data=request.data,
                                          status=status.HTTP_200_OK)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
    raise ConnectionRefusedError()
Beispiel #20
0
class ReviewSerializer(serializers.ModelSerializer):
    user = UserDetailSerializer(read_only=True)
    movie = MovieDetailSerializer(read_only=True)
    comment_set = CommentSerializer(read_only=True, many=True)
    comment_count = serializers.IntegerField(source='comment_set.count',
                                             read_only=True)

    class Meta:
        model = Review
        fields = "__all__"
        # exclude = ('like_users','funny_users','helpful_users')
        read_only_fields = ('movie', 'user', 'like_users', 'funny_users',
                            'helpful_users')
class PostListSerializer(ModelSerializer):
    url = post_detail_url
    user = UserDetailSerializer(read_only=True)

    class Meta:
        model = Post
        fields = [
            'url',
            'title',
            'content',
            'user',
            'publish',
        ]
class PostDetailSerializer(serializers.ModelSerializer):
    user = UserDetailSerializer(read_only=True)
    comments = serializers.SerializerMethodField()

    class Meta:
        model = Post
        fields = [
            'user', 'id', 'title', 'slug', 'content', 'publish', 'comments'
        ]

    def get_comments(self, obj):
        c_qs = Comment.objects.filter_by_instance(obj)
        comments = CommentListSerializer(c_qs, many=True).data
        return comments
Beispiel #23
0
class RecommendationsListSerializer(ModelSerializer):
    url = recommendation_url
    user = UserDetailSerializer(read_only=True)

    class Meta:
        model = Recommendation
        fields = [
            'title',
            'city',
            'likes',
            'number_of_days',
            'slug',
            'url',
            'user',
            'views'
        ]
Beispiel #24
0
class PostDetailSerializer(ModelSerializer):
    user = UserDetailSerializer(read_only=True)
    likes = LikeListSerializer(many=True, read_only=True)

    class Meta:
        model = Post
        fields = [
            'id', 'user', 'title', 'content', 'number_of_likes', 'likes',
            'is_published', 'updated', 'timestamp'
        ]

    def __init__(self, *args, **kwargs):
        fields = kwargs.pop('fields', None)
        super(PostDetailSerializer, self).__init__(*args, **kwargs)
        show_who_liked = self.context['request'].GET.get('likes')
        if not show_who_liked == '1':
            self.fields.pop('likes')
class CommentDetailSerializer(ModelSerializer):
    replies = SerializerMethodField()
    user = UserDetailSerializer(read_only=True)

    @staticmethod
    def get_replies(obj):
        if obj.is_parent:
            return CommentChildSerializer(obj.children(), many=True).data
        else:
            return None

    class Meta:
        model = Comment
        fields = [
            'id',
            'user',
            'content',
            'timestamp',
            'replies',
        ]
Beispiel #26
0
class CommentSerializer(ModelSerializer):
    reply_count = SerializerMethodField()
    author = UserDetailSerializer()

    class Meta:
        model = Comment
        fields = [
            'id',
            'author',
            'post',
            'content',
            'parent',
            'reply_count',
            'created',
        ]

    def get_reply_count(self, obj):
        if obj.is_parent:
            return obj.children().count()
        return 0
Beispiel #27
0
class ItineraryListSerializer(ModelSerializer):
    user = UserDetailSerializer(read_only=True)
    city = SerializerMethodField()

    def get_city(self, obj):
        return {
            'name': obj.city.name,
        }

    class Meta:
        model = Itinerary
        fields = [
            'title',
            'city',
            'image',
            'likes',
            'number_of_days',
            'slug',
            'user',
            'views'
        ]
Beispiel #28
0
class Cocktail_Serializer(serializers.HyperlinkedModelSerializer):
    author = UserDetailSerializer()
    tags = StringListField()
    comments = serializers.StringRelatedField(many=True)
    likes = serializers.StringRelatedField(many=True)

    class Meta:
        model = Cocktail
        fields = ('url', 'id', 'author', 'category', 'title', 'photo_field',
                  'body', 'method', 'pub_date', 'updated_at', 'ingridient',
                  'tags', 'comments', 'likes')

    def create(self, validated_data):
        tags = validated_data.pop('tags')
        instance = super(MyModelSerializer, self).create(validated_data)
        instance.tags.set(*tags)
        return instance

    def update(self, instance, validated_data):
        tags = validated_data.pop('tags')
        instance = super(MyModelSerializer, self).create(validated_data)
        instance.tags.set(*tags)
        return instance
class OrderDetailSerializer(ModelSerializer):
    order_items = SerializerMethodField()
    buyer = UserDetailSerializer(read_only=True)

    def get_order_items(self, obj):
        order_number = obj.pk
        items = OrderItem.objects.filter(order=order_number)
        order = []
        for item in items:
            order.append({
                "name": item.product.name,
                "type": item.product.type,
                "price": item.product.price
            })
        return order

    class Meta:
        model = Order
        fields = [
            'pk',
            'buyer',
            'creation_date',
            'order_items',
        ]
Beispiel #30
0
def review_detail(request, review_id):
    review = get_object_or_404(Review, id=review_id)
    review_list = [review]

    reviewserializer = ReviewSerializer(data=review_list, many=True)

    likedMovie_users = get_user_model().objects.filter(
        review__liked=True, review__movie=review.movie).distinct()
    userSerializer = UserDetailSerializer(data=likedMovie_users, many=True)

    loginUserSerializer = UserDetailSerializer(data=[request.user], many=True)
    print(reviewserializer.is_valid(), userSerializer.is_valid(),
          loginUserSerializer.is_valid())
    context = {
        "0": reviewserializer.data[0],
        "1": userSerializer.data,
        "2": loginUserSerializer.data,
    }

    return Response(context)