Пример #1
0
 def patch(self, request):
     profile = self.get_object(pk=request.user.id)
     serializer = CustomUserSerializer(profile, request.data, partial=True)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status.HTTP_200_OK)
     return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)
Пример #2
0
class AllPersonalBookingSerializer(ModelSerializer):
    gym_member = CustomUserSerializer()
    gym_trainer = CustomUserSerializer()

    class Meta:
        model = PersonalTraining
        fields = "__all__"
Пример #3
0
 def post(self, request, format='json'):
     serializer = CustomUserSerializer(data=request.data)
     if serializer.is_valid():
         user = serializer.save()
         if user:
             json = serializer.data
             return Response(json, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #4
0
class EgovernmentRequestExtendedSerializer(serializers.ModelSerializer):

    user = CustomUserSerializer(many=False)
    approver = CustomUserSerializer(many=False)

    class Meta:
        model = EgovernmentRequest
        fields = '__all__'
Пример #5
0
def user_register(request):
    with transaction.atomic():
        serializer = CustomUserSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = serializer.save()

        Account.generate(user)

        return Response(status=status.HTTP_201_CREATED)
class NotificationSerializer(serializers.ModelSerializer):
    notification_for = CustomUserSerializer(source="user",
                                            read_only=True,
                                            many=False)
    created_by = CustomUserSerializer(source="auther",
                                      read_only=True,
                                      many=False)
    post_data = PostSerializer(source="post", read_only=True, many=False)

    class Meta:
        model = Notification
        fields = '__all__'
Пример #7
0
    def post(self, request):
        serializer = CustomUserSerializer(data=request.data)
        current_user = request.user

        if not request.data:
            return Response({"error": "Missing message body in request"},
                            status=status.HTTP_400_BAD_REQUEST)

        if serializer.is_valid():
            serializer.update(current_user)
            return Response({'success': 'User profile updated successfully!'},
                            status=status.HTTP_200_OK)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #8
0
    def test_creates_a_user(self):
        data = {"email": "*****@*****.**", "password": "******"}

        user_count = len(get_user_model().objects.exclude(email=settings.ANONYMOUS_USER_NAME))
        self.assertEqual(user_count, 0)

        serializer = CustomUserSerializer(data=data)
        self.assertTrue(serializer.is_valid())
        serializer.save()

        user_count = len(get_user_model().objects.exclude(email=settings.ANONYMOUS_USER_NAME))
        self.assertEqual(user_count, 1)

        user = get_user_model().objects.exclude(email=settings.ANONYMOUS_USER_NAME).first()
        self.assertEqual("*****@*****.**", user.email)
Пример #9
0
    def deactivate(self, request, *args, **kwargs):
        user = self.get_object()
        user.is_active = False
        user.save()

        serializer = CustomUserSerializer(user, many=False)
        return Response(serializer.data)
class InviteUserSerializer(serializers.ModelSerializer):
    user_invited = CustomUserSerializer(source="user", read_only=True)
    group_data = GroupSerializer(source="group", read_only=True)

    class Meta:
        model = InviteUser
        fields = '__all__'
class JoiningRequestSerializer(serializers.ModelSerializer):
    request_by = CustomUserSerializer(source="user", read_only=True)
    group_data = GroupSerializer(source="group", read_only=True)

    class Meta:
        model = JoiningRequest
        fields = '__all__'
Пример #12
0
class TopicSerializer(serializers.ModelSerializer):
    user = CustomUserSerializer(read_only=True)
    posts = PostSerializer(many=True, read_only=True)

    class Meta:
        model = Topic
        fields ='__all__'
class FeedSerializer(serializers.ModelSerializer):
    user = CustomUserSerializer(many=False)
    meta_data = serializers.SerializerMethodField()

    class Meta:
        model = Post
        fields = '__all__'

    def get_meta_data(self, obj):
        rated_by_logged_in = PostRank.objects.filter(
            ranker=self.context.get('request').user, post=obj.id).first()
        if rated_by_logged_in is not None:
            post_rank_serializer = PostRankSerializer(rated_by_logged_in,
                                                      many=False)
            rating_by_login = post_rank_serializer.data.get('rank')
        else:
            rating_by_login = 0
        ratings = PostRank.objects.filter(post=obj.id)
        votes = ratings.count()
        average_rank = None
        if ratings.exists():
            average_rank = ratings.last().average_rank
        ratings = {
            "rating_by_login": rating_by_login,
            "votes": votes,
            "average_rating": average_rank
        }
        comments_count = PostComment.objects.filter(post=obj.id).count()
        views_count = PostView.objects.filter(post=obj.id).count()
        counts = {"comments_count": comments_count, "views_count": views_count}
        return {"ratings": ratings, "counts": counts}
Пример #14
0
class TrainerDetailSerializer(ModelSerializer):
    user = CustomUserSerializer(read_only=True)
    specialities = TrainerSpecialtySerializer(many=True, read_only=True)

    class Meta:
        model = TrainerProfile
        fields = '__all__'
Пример #15
0
class FollowerListSerializer(serializers.ModelSerializer):
    following = CustomUserSerializer(many=False)
    meta_data = serializers.SerializerMethodField()

    class Meta:
        model = UserRelationship
        fields = "__all__"

    def get_meta_data(self, obj):
        is_following = False
        follower = UserRelationship.objects.filter(
            follower=obj.following.id,
            following=self.context.get("request").user.id)
        if follower.exists():
            is_following = True
        user_types = UserType.objects.filter(user=obj.follower.id)
        user_types_serializer = UserTypeSerializer(user_types, many=True)
        user_types = []
        try:
            user_profile = UserDetail.objects.get(user=obj.following.id)
            user_profile_serializer = UserDetailSerializer(user_profile,
                                                           many=False)
            user_profile_data = user_profile_serializer.data
        except UserDetail.DoesNotExist:
            user_profile_data = None
        for type in user_types_serializer.data:
            user_types.append(type['user_type'])
        return {
            "is_following": is_following,
            "user_types": user_types,
            "user_profile": user_profile_data
        }
Пример #16
0
class CommentSerializer(serializers.HyperlinkedModelSerializer):
    author = CustomUserSerializer(read_only=True)
    author_pk = serializers.PrimaryKeyRelatedField(
        queryset=CustomUser.objects.all(), source="author", write_only=True)

    class Meta:
        model = Comment
        fields = [
            "url",
            "id",
            "author",
            "author_pk",
            "content",
            "date_pub_timestamp",
            "to_post",
            "likes_count",
        ]

    def is_liked_by_user(self, comment):
        user = self.context["request"].user
        print(user)
        return comment.is_liked_by_user(user)

    def get_fields(self):
        fields = super(CommentSerializer, self).get_fields()
        fields["is_liked_by_user"] = serializers.SerializerMethodField(
            "is_liked_by_user")
        return fields
Пример #17
0
    def approve_egov(self, request, *args, **kwargs):
        user = self.get_object()
        user.user_type = 'EG'
        user.save()

        serializer = CustomUserSerializer(user)
        return Response(serializer.data)
class BookLoanCreateRequestSerializer(serializers.ModelSerializer):
    """
    BookLoanCreateRequestSerializer serializes book loan request,
    restricts user to pass status field in the request. Default
    status of a loan is 'PENDING'
    """
    borrower = CustomUserSerializer(read_only=True,
                                    default=serializers.CurrentUserDefault())

    class Meta:
        model = BookLoan
        fields = '__all__'
        extra_kwargs = {
            'created_at': {
                'read_only': True
            },
            'due_date': {
                'read_only': True
            },
            'returned_date': {
                'read_only': True
            },
            'borrower': {
                'read_only': True
            },
            'status': {
                'read_only': True
            },
        }
Пример #19
0
def studentSingle(request,pk):
    try:
        student = CustomUser.objects.get(id=pk)
        serializer = CustomUserSerializer(student, many=False)
        return Response(serializer.data)
    except:
        raise Exception("An error occured")
Пример #20
0
def studentList(request):
    try:
        students = CustomUser.objects.filter(is_student=True)
        serializer = CustomUserSerializer(students, many=True)
        return Response(serializer.data)
    except:
        raise Exception("An error occured")
Пример #21
0
class PostSerializer(serializers.ModelSerializer):
    created_by = CustomUserSerializer(source="user", read_only=True)
    meta_data = serializers.SerializerMethodField()

    class Meta:
        model = Post
        fields = "__all__"

    def get_meta_data(self, obj):
        rated_by_logged_in = PostRank.objects.filter(
            ranker=self.context.get('request').user, post=obj.id).first()
        if rated_by_logged_in is not None:
            post_rank_serializer = PostRankSerializer(rated_by_logged_in,
                                                      many=False)
            rating_by_login = post_rank_serializer.data.get('rank')
        else:
            rating_by_login = 0
        post_rating = PostRank.objects.filter(post=obj.id)
        avg_rating = 0
        if post_rating.exists():
            avg_rating = post_rating.last().average_rank
        post_views = PostView.objects.filter(post=obj.id).count()
        votes = post_rating.count()
        ratings = {
            "rating_by_login": rating_by_login,
            "votes": votes,
            "average_rating": avg_rating
        }
        return {
            "avg_rating": avg_rating,
            "post_views": post_views,
            "ratings": ratings
        }
Пример #22
0
class SearchProfileSerializer(serializers.ModelSerializer):

    user = CustomUserSerializer(required=True)
    gender = serializers.CharField(source='get_gender_display')

    class Meta:
        model = Profile
        fields = ['id', 'user', 'about', 'location', 'birth_date', 'gender']
Пример #23
0
class ListVoteSerializer(serializers.ModelSerializer):
    user = CustomUserSerializer(read_only=True)
    election = ElectionSerializerWithoutCandidates(read_only=True)
    candidate = CandidateSerializer(read_only=True)

    class Meta:
        model = Vote
        fields = ('id', 'user', 'election', 'candidate')
Пример #24
0
class ScoreSerializer(serializers.ModelSerializer):

    ratings = serializers.FloatField(required=False, allow_null=True)
    sitter = CustomUserSerializer(read_only=True)

    class Meta:
        model = Score
        fields = ['sitter', 'ratings', 'overall']
Пример #25
0
class DocumentRequestExtendedSerializer(serializers.ModelSerializer):

    user = CustomUserSerializer(many=False)
    document_request_item = DocumentRequestItemSerializer(many=True)

    class Meta:
        model = DocumentRequest
        fields = '__all__'
class GroupMemberSerializer(serializers.ModelSerializer):
    member_user = CustomUserSerializer(source="member", read_only=True)

    # group_data = GroupSerializer(source="group", read_only=True)

    class Meta:
        model = GroupMembers
        fields = '__all__'
Пример #27
0
class ChatMediaSerializer(serializers.ModelSerializer):
    created_by = CustomUserSerializer(source="user",
                                      many=False,
                                      read_only=True)

    class Meta:
        model = ChatMedia
        fields = '__all__'
Пример #28
0
def user_detail(request, pk):
    try:
        user = CustomUser.objects.get(pk=pk)

        # find a single user with an id
        if request.method == 'GET':
            user_serializer = CustomUserSerializer(user)
            return JsonResponse(user_serializer.data)

        # update a user by the id in the request
        elif request.method == 'PUT':
            user_data = JSONParser().parse(request)
            user_serializer = CustomUserSerializer(user, data=user_data)

            if user_serializer.is_valid():
                user_serializer.save()
                return JsonResponse(user_serializer.data)

            return JsonResponse(user_serializer.errors, status=status.HTTP_400_BAD_REQUEST)

        # delete a user with the specified id
        elif request.method == 'DELETE':
            user.delete()
            return JsonResponse({'message': 'User was deleted successfully!'}, status=status.HTTP_204_NO_CONTENT)

    except CustomUser.DoesNotExist:
        return JsonResponse({'message': 'The user does not exist'}, status=status.HTTP_404_NOT_FOUND)
Пример #29
0
    def lol(self, request, *args, **kwargs):

        users = CustomUser.objects.all()
        serializer = CustomUserSerializer(users, many=True)

        for user in users:
            print(user.email, ': ', user.id)

        return Response(serializer.data)
Пример #30
0
    def add_egov_quota(self, request, *args, **kwargs):
        user = self.get_object()

        if user.user_type == 'EG':
            user.egov_quota = 5
        user.save()

        serializer = CustomUserSerializer(user)
        return Response(serializer.data)