def create(self, request):
     serializer = self.serializer_class(data=request.data,
                                        context={"request": request})
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data["user"]
     token, created = Token.objects.get_or_create(user=user)
     user_serializer = UserSerializer(user)
     return Response({"token": token.key, "user": user_serializer.data})
예제 #2
0
class SubscriptionSerializer(serializers.ModelSerializer):
    user = UserSerializer(read_only=True)
    plan = PlanSerializer(read_only=True)

    # app = AppSerializer(read_only=True)
    class Meta:
        model = Subscription
        fields = '__all__'
        read_only_fields = ["id", "user", "created_at", "updated_at"]
예제 #3
0
 def create(self, request):
     serializer = self.serializer_class(
         data=request.data,
         context={'request': request}
     )
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data['user']
     token, created = Token.objects.get_or_create(user=user)
     user_serializer = UserSerializer(user)
     return Response({'error_code':200, error_message:'', 'token': token.key, 'user': user_serializer.data})
예제 #4
0
 def post(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data
     token, created = Token.objects.get_or_create(user=user)
     return Response({
         "user":
         UserSerializer(user, context=self.get_serializer_context()).data,
         "token":
         token.key
     })
예제 #5
0
class SchoolBuildingSerializer(serializers.ModelSerializer):
    inspector_detail = UserSerializer(source="inspectors",
                                      read_only=True,
                                      many=True)
    cleaners_detail = UserSerializer(source="cleaners",
                                     read_only=True,
                                     many=True)
    building_admins_detail = UserSerializer(source="building_admins",
                                            read_only=True,
                                            many=True)

    district_name = serializers.CharField(source="district.name",
                                          read_only=True)
    total_rooms = serializers.IntegerField(read_only=True)
    total_area = serializers.IntegerField(read_only=True)
    total_sections = serializers.IntegerField(read_only=True)
    estimated_time_to_clean = serializers.DurationField(read_only=True)
    image = Base64ImageField()
    grade = serializers.SerializerMethodField(read_only=True)

    class Meta:
        model = SchoolBuilding
        fields = '__all__'

    def get_grade(self, obj):
        inspection = ParameterResult.objects.filter(
            inspection__room__section__school_id=obj.pk,
            inspection__created__date=timezone.now().date())
        inspection_status_one = inspection.filter(status=1).count()
        inspection_status_zero = inspection.filter(status=0).count()
        grade = 'N/A'
        try:
            if (inspection_status_zero > 0) or (inspection_status_one > 0):
                grade = round(
                    (inspection_status_one /
                     (inspection_status_zero + inspection_status_one)) * 100,
                    2)
                return f"{grade}%"
        except:
            pass
        return grade
예제 #6
0
파일: viewsets.py 프로젝트: totop716/ugg
 def post(self, request):
     data = request.query_params
     username = data.get('username')
     password = data.get('password')
     user = User.objects.filter(Q(username=username))
     if (len(user) > 0):
         if user[0].check_password(password):
             serializer = UserSerializer(user, many=True)
             return Response({"user": serializer.data})
         else:
             return Response({"error": "Password is not correct!"})
     else:
         return Response(
             {"error": "The user with current username does not exist!"})
예제 #7
0
class EmployeeInDistrictSerializer(serializers.ModelSerializer):
    employee_detail = UserSerializer(source="employee",
                                     read_only=True,
                                     many=False)
    is_user = serializers.SerializerMethodField(read_only=True)

    class Meta:
        model = EmployeeInDistrict
        fields = '__all__'

    def get_is_user(self, obj):
        if obj.employee.id in obj.district.admins.all().values_list("id",
                                                                    flat=True):
            return True
        return False
예제 #8
0
class DistrictSerializer(serializers.ModelSerializer):
    admin_detail = UserSerializer(source="admins", read_only=True, many=True)
    logo = Base64ImageField()
    buildings = serializers.IntegerField(read_only=True)
    rooms = serializers.IntegerField(read_only=True)
    sq_feet = serializers.IntegerField(read_only=True)

    class Meta:
        model = District
        fields = '__all__'

    def validate(self, attrs):
        request = self.context.get("request")
        user = getattr(request, "user", None)
        validated_data = super(DistrictSerializer, self).validate(attrs)
        if not user.is_superuser:
            raise serializers.ValidationError({
                "district":
                "You don't have permission to perform this action."
            })
        return validated_data
예제 #9
0
 def create(self, request):
     serializer = self.serializer_class(
         data=request.data, context={"request": request}
     )
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data["user"]
     token, created = Token.objects.get_or_create(user=user)
     user_serializer = UserSerializer(user)
     data = copy.deepcopy(user_serializer.data)
     if data.get("role") == User.INSPECTOR:
         school = SchoolBuilding.objects.filter(inspectors=user.pk).first()
         if school:
             data["district_id"] = school.district.pk
             data["building_id"] = school.pk
     if data.get("role") == User.ADMIN:
         district = District.objects.filter(admins=user.pk).first()
         if district:
             data["district_id"] = district.pk
     if data.get("role") == User.BUILDING_ADMIN:
         school = SchoolBuilding.objects.filter(building_admins=user.pk).first()
         if school:
             data["building_id"] = school.pk
             data["district_id"] = school.district.pk
     return Response({"token": token.key, "user": data})