Ejemplo n.º 1
0
def list_items(request, pk):
    try:
        list = List.objects.get(pk=pk)
    except List.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        ordered_items = list.item_set.all().order_by(Lower('description'))
        serializer = ItemSerializer(ordered_items, many=True)
        return JsonResponse(serializer.data, safe=False)

    if request.method == 'POST':
        data = JSONParser().parse(request)

        if '$' in data['newItemDescription']:
            description = data['newItemDescription'].split('$')[0].strip()
            cost = data['newItemDescription'].split('$')[1]
        else:
            description = data['newItemDescription'].strip()
            cost = 1

        try:
            existing_item = list.item_set.get(description=description)
            if existing_item.done:
                existing_item.toggle_done()

        except:
            list.item_set.create(description=description, cost=cost)

        serializer = ItemSerializer(list.item_set.all(), many=True)
        return JsonResponse(serializer.data, safe=False)
Ejemplo n.º 2
0
    def get(self, request, *args, **kwargs):
        serializerContext = {}
        # las cosas
        # item_objects_cosas = Item.objects.filter(category__number="1").filter(category__number="2").filter(category__number="3").order_by("-created_at")
        item_objects_cosas = Item.objects.filter(
            Q(category__number="1") | Q(category__number="2")
            | Q(category__number="3")).exclude(active=False).order_by("-id")
        serializer_cosas = ItemSerializer(item_objects_cosas, many=True)

        item_objects_habitacion = Item.objects.filter(
            Q(category__number="4") | Q(category__number="5")
            | Q(category__number="6")
            | Q(category__number="7")).exclude(active=False).order_by("-id")
        serializer_habitacion = ItemSerializer(item_objects_habitacion,
                                               many=True)

        item_objects_trabajo = Item.objects.filter(
            Q(category__number="8")
            | Q(category__number="9")).exclude(active=False).order_by("-id")
        serializer_trabajo = ItemSerializer(item_objects_trabajo, many=True)

        item_objects_tienda = Item.objects.filter(
            category__number="10").exclude(active=False).order_by("-id")
        serializer_tienda = ItemSerializer(item_objects_tienda, many=True)

        serializerContext[
            SerializerContextKey.ITEM_OBJECTS_COSAS] = serializer_cosas.data
        serializerContext[SerializerContextKey.
                          ITEM_OBJECTS_HABITACION] = serializer_habitacion.data
        serializerContext[SerializerContextKey.
                          ITEM_OBJECTS_TRABAJO] = serializer_trabajo.data
        serializerContext[
            SerializerContextKey.ITEM_OBJECTS_TIENDA] = serializer_tienda.data
        return Response(serializerContext)
Ejemplo n.º 3
0
    def post(self, request):
        serializer = ItemSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 4
0
 def post(self, request):
     helpCenter = json.loads(request.query_params.get('data', {}))
     serializer = ItemSerializer(data=helpCenter)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 5
0
 def put(self, request, itemId):
     item = self.get_object(itemId)
     serializer = ItemSerializer(item, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 6
0
 def put(self, request, pk, format=None):
     item = self.get_object(pk)
     serializer = ItemSerializer(item, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 7
0
 def post(self, request):
     serializer = ItemSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         response_data = {}
         response_data["success"] = "True"
         response_data["message"] = "Settings updated successfully."
         return Response(response_data, status=status.HTTP_200_OK)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 8
0
    def test_item_serializer(self):
        items = Item.objects.all()
        serializer = ItemSerializer(data=list(items), many=True)
        serializer.is_valid()
        logging.info('Serializer data: %s' % serializer.data)

        expected_response = full_category_expected_response().get('subcategories')
        expected_response = expected_response[0].get('items')
        logging.info('Expected response: %s' % expected_response)

        self.assertEqual(serializer.data, expected_response)
Ejemplo n.º 9
0
 def get(self, request, *args, **kwargs):
     serializerContext = {}
     item_objects = Item.objects.all().exclude(
         active=False).order_by("-created_at")
     serializer = ItemSerializer(item_objects, many=True)
     serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data
     return Response(serializerContext)
Ejemplo n.º 10
0
 def create_item(data):
     item = Item()
     item.hook = self
     item.owner = self.owner
     item.feed = self.feed
     item.data = demjson.encode(data)
     item.save()
     from api.serializers import ItemSerializer
     data = demjson.encode(ItemSerializer(item).data)
     Group("notif-{}".format(str(self.owner.id))).send({
         "text": data,
     })
     return item
Ejemplo n.º 11
0
def item_list(request):
    """
    List all code snippets, or create a new snippet.
    """
    if request.method == 'GET':
        items = Item.objects.all()
        serializer = ItemSerializer(items, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = ItemSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 12
0
    def get(self, request, *args, **kwargs):
        serializerContext = {}
        # ユーザー認証されていないときは、ログインページにつなぐ
        if request.auth is None:
            return Response({"result": "fail"})
            # Android端末では"ログインして下さい"を表示させる。

        # 自分が作成した記事を表示する
        item_objects = Item.objects.filter(
            user=request.user).order_by("-created_at")
        if item_objects.count() > 0:
            item_objects_serializer = ItemSerializer(item_objects, many=True)
            print("maji??")
            # print(item_objects_serializer.data)
            return Response({"itemSerializer": item_objects_serializer.data})
        else:
            print("koko??")
            return Response({"itemSerializer": "jeje"})
Ejemplo n.º 13
0
    def get(self, request, *args, **kwargs):

        # アクセスユーザーの制限
        token = getTokenFromHeader(self)
        requestUser = getUserByToken(token)
        if requestUser is None:
            return Response({"result": "fail"})

        favItemObjects = Item.objects.filter(
            favorite_users=requestUser).exclude(active=False)
        serializer = ItemSerializer(favItemObjects, many=True)

        # serializerContextに表示するデータを格納
        serializerContext = {}
        serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data

        # 成功した場合のレスポンスを返す
        return Response(serializerContext)
Ejemplo n.º 14
0
def list_item_hide(request, list_id, item_id):
    try:
        list = List.objects.get(pk=list_id)
    except List.DoesNotExist:
        return HttpResponse(status=404)

    item = list.item_set.get(pk=item_id)

    if item.done:
        item.active = False
    else:
        item.done = True

    item.save()

    #serializer = ItemSerializer(item)
    #return JsonResponse(serializer.data, safe=False)
    serializer = ItemSerializer(list.item_set.all(), many=True)
    return JsonResponse(serializer.data, safe=False)
Ejemplo n.º 15
0
def item_list(request, pk=0):
    """
    List all code item, or create a new sitem.
    """
    if request.method == 'GET':
        items = Item.objects.all()
        if int(pk) > 0:
            items = Item.objects.filter(pk=pk)
        serializer = ItemSerializer(items, many=True)
        return JsonResponse(serializer.data, safe=False)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = ItemSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
Ejemplo n.º 16
0
    def get(self, request, *args, **kwargs):
        """機能

        endpoint: 'api/items/category/<int:pk>/items/list/local/'
        name: -
        """
        """テスト項目
        """

        token = getTokenFromHeader(self)
        userObj = getUserByToken(token)
        profileObj = Profile.objects.get(user=userObj)

        category_number = self.kwargs["pk"]
        # print(category_number)
        categoryObj = Category.objects.get(number=category_number)
        itemObjects = Item.objects.filter(category=categoryObj).filter(
            adm1=profileObj.adm1).exclude(active=False).order_by("-created_at")
        serializer = ItemSerializer(itemObjects, many=True)
        serializerContext = {}
        serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data
        return Response(serializerContext)
Ejemplo n.º 17
0
def item_detail(request, pk):
    """
    Retrieve, update or delete a code snippet.
    """
    try:
        item = Item.objects.get(pk=pk)
    except Item.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        serializer = ItemSerializer(item)
        return Response(serializer.data)

    elif request.method == 'PUT':
        serializer = ItemSerializer(item, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        item.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
 def get_item(self, obj):
     return ItemSerializer(obj.item).data
Ejemplo n.º 19
0
    def get(self, request, *args, **kwargs):
        """機能
        endpointに対応する記事データを返す

        endpoint: "api/items/<int:pk>/"
        name: "item_detail"

        必要なオブジェクト
        item_obj, profile_obj, solicitudes_objects, direct_messages_objects
        ItemContactに関しては最新の5コメントしか表示しない仕様である。

        """
        """テスト項目
        済 ItemオブジェクトがResponseとして返される
        済 endpoint内のintに対応するidの記事データが返される
        済 ItemContactオブジェクトがItemオブジェクトのプロパティとしてResponseで返される
        済 UserオブジェクトがItemオブジェクトのプロパティとしてResponseで返される
        済 SolicitudオブジェクトがItemオブジェクトのプロパティとしてResponseで返される
        """

        pk = self.kwargs["pk"]
        item_obj = Item.objects.get(id=pk)
        item_obj_serializer = ItemSerializer(item_obj)
        user_obj = item_obj.user
        profile_obj = Profile.objects.get(user=item_obj.user)
        profile_obj_serializer = ProfileSerializer(profile_obj)
        solicitudes_objects = item_obj.solicitudes.all()
        solicitudSerializer = SolicitudSerializer(solicitudes_objects,
                                                  many=True)
        item_contact_objects = item_obj.item_contacts.all().order_by(
            "-timestamp")[:5]
        item_contact_objects_serializer = ItemContactSerializer(
            item_contact_objects, many=True)
        direct_messages_objects = DirectMessage.objects.filter(item=item_obj)

        # 共通のデータをserializer_contextに格納する
        serializer_context = {}
        serializer_context["item_obj_serializer"] = item_obj_serializer.data
        serializer_context[
            "profile_obj_serializer"] = profile_obj_serializer.data

        token = getTokenFromHeader(self)
        accessUser = getUserByToken(token)

        # serializer_context[SerializerContextKey.BTN_CHOICE]を設定
        if accessUser == None:
            serializer_context[SerializerContextKey.
                               BTN_CHOICE] = BtnChoice.ANONYMOUS_USER_ACCESS

        elif accessUser == user_obj and solicitudes_objects.count() == 0:
            serializer_context[
                SerializerContextKey.BTN_CHOICE] = BtnChoice.NO_SOLICITUDES

        elif accessUser == user_obj and solicitudes_objects.count(
        ) != 0 and direct_messages_objects.count() == 0:
            serializer_context[
                SerializerContextKey.BTN_CHOICE] = BtnChoice.SELECT_SOLICITUDES

        elif accessUser == user_obj and direct_messages_objects.count() != 0:
            serializer_context[
                SerializerContextKey.BTN_CHOICE] = BtnChoice.GO_TRANSACTION

        elif accessUser != user_obj and solicitudes_objects.filter(
                applicant=Profile.objects.get(user=accessUser)).count(
                ) == 0 and direct_messages_objects.filter(
                    item=item_obj).count() == 0:
            serializer_context[
                SerializerContextKey.BTN_CHOICE] = BtnChoice.SOLICITAR

        elif accessUser != user_obj and solicitudes_objects.filter(
                applicant=Profile.objects.get(user=accessUser)).count(
                ) != 0 and direct_messages_objects.count() == 0:
            serializer_context[
                SerializerContextKey.BTN_CHOICE] = BtnChoice.SOLICITADO

        elif accessUser != user_obj and direct_messages_objects.filter(
                participant=Profile.objects.get(user=accessUser)).count() == 1:
            serializer_context[
                SerializerContextKey.BTN_CHOICE] = BtnChoice.GO_TRANSACTION

        elif accessUser != user_obj and direct_messages_objects.filter(
                participant=Profile.objects.get(user=accessUser)).count() == 0:
            serializer_context[
                SerializerContextKey.BTN_CHOICE] = BtnChoice.CANNOT_TRANSACTION

        # データを送信
        return Response(serializer_context)
Ejemplo n.º 20
0
 def get(self, request, itemId):
     item = self.get_object(itemId)
     serializer = ItemSerializer(item)
     return Response(serializer.data)
Ejemplo n.º 21
0
    def patch(self, request, *args, **kwargs):
        """
        endpoint: /api/items/<int:pk>/
        name: -
        """
        """テスト項目
        タイトルのみの変更の場合にはタイトルが変更される。
        カテゴリーだけの変更の場合にはカテゴリーの変更が反映される。

        """
        pk = self.kwargs["pk"]
        item_obj = Item.objects.get(id=pk)

        print("ここ通っている???")
        print(request.data)

        strJsonData = request.data["jsonData"]
        jsonData = json.loads(strJsonData)

        # categoryName = jsonData.pop("category")["name"]
        # print("CATEGORY_NAME" + categoryName)
        # category_obj = Category.objects.get(name=categoryName)

        imagesData = request.FILES
        # print("IMAGES_DATA    :   ", imagesData)

        isChanged = self.isChangedCategoryValue(item_obj, jsonData)
        if isChanged is True:
            category_obj = Category.objects.get(
                number=jsonData["category"]["number"])
            item_obj.category = category_obj
            item_obj.save()

        serializer = ItemSerializer(item_obj, data=jsonData, partial=True)
        print("is_valid? : ", serializer.is_valid())
        if serializer.is_valid():
            serializer.save()

            itemId = serializer.instance.id
            url = getItemDetailUrl(itemId)

            if len(request.FILES.keys()) == 0:
                return Response({"result": "success", "detail": url})

            # if len(request.FILES.keys()) > 0:
            print("TRUEが🐸")
            # item_objに画像データを追加修正する。
            try:
                serializer.instance.image1 = imagesData[
                    SerializerContextKey.IMAGE1]
                # item_obj.image1 = imagesData[SerializerContextKey.IMAGE1]
            except:
                pass
            try:
                serializer.instance.image2 = imagesData[
                    SerializerContextKey.IMAGE2]
                # item_obj.image2 = imagesData[SerializerContextKey.IMAGE2]
            except:
                pass
            try:
                serializer.instance.image3 = imagesData[
                    SerializerContextKey.IMAGE3]
                # item_obj.image3 = imagesData[SerializerContextKey.IMAGE3]
            except:
                pass

            serializer.instance.save()
            return Response({"result": "success", "detail": url})

        return Response({"result": "success", "detail": url})
Ejemplo n.º 22
0
 def get(self, request):
     helpCenters = Item.objects.all()
     serializer = ItemSerializer(helpCenters, many=True)
     return Response(serializer.data)
Ejemplo n.º 23
0
    def post(self, request, *args, **kwargs):

        # ① user_objを取得
        token = getTokenFromHeader(self)
        user_obj = getUserByToken(token)
        # print(token)

        # ② category_objを取得
        # print("REQUEST_DATA")
        # print(request.data)
        strJsonData = request.data["jsonData"]
        jsonData = json.loads(strJsonData)
        # print(jsonData)

        categoryNumber = jsonData.pop("category")["number"]
        # print("CATEGORY_NAME" + categoryNumber)
        category_obj = Category.objects.get(number=categoryNumber)
        jsonData["category"] = category_obj.id

        # ③ title, description, adm0, adm1, adm2を取得
        # serializer.is_valid()がTrueのとき各要素を取得する

        imagesData = request.FILES
        # print("IMAGES_DATA    :   ", imagesData)

        serializer = ItemSerializer(data=jsonData)

        if serializer.is_valid():
            print("SERIALIZER.IS_VALID : TRUE")

            item_obj = Item.objects.create(
                title=jsonData["title"],
                user=user_obj,
                description=jsonData["description"],
                price=jsonData["price"],
                category=category_obj,
                adm0=jsonData["adm0"],
                adm1=jsonData["adm1"],
                adm2=serializer.validated_data["adm2"])

            try:
                point = jsonData["point"]
                item_obj.point = point
                item_obj.save()
            except:
                pass
            try:
                radius = jsonData["radius"]
                item_obj.radius = radius
                item_obj.save()
            except:
                pass

            url = getItemDetailUrl(item_obj.id)

            #print("ItemObject生成成功")

            if len(request.FILES.keys()) > 0:
                print("TRUEが🐸")
                #item_objに画像データを追加修正する。
                try:
                    item_obj.image1 = imagesData[SerializerContextKey.IMAGE1]
                except:
                    pass
                try:
                    item_obj.image2 = imagesData[SerializerContextKey.IMAGE2]
                except:
                    pass
                try:
                    item_obj.image3 = imagesData[SerializerContextKey.IMAGE3]
                except:
                    pass

                item_obj.save()
                return Response({"result": "success", "detail": url})

            return Response({"result": "success", "detail": url})

        elif serializer.is_valid() == False:
            print("SERIALIZER.IS_VALID : False")
            for ele in serializer:
                print(ele)

            return Response({"result": "fail"})
Ejemplo n.º 24
0
    def get(self, request, *args, **kwargs):
        """機能

        endpoint: 'api/items/category/<int:pk>/items/list/'
        name: -
        """
        """テスト項目
        """
        category_number = self.kwargs["pk"]
        if category_number == 999:
            return redirect('api:item_home_list')
        elif category_number == 500:
            # 500 --- Las Cosas...(1,2,3) dar o donar, busca donante, quiere avisarのカテゴリを一括にしたもの / categories.models.py 参照すること
            itemObjects = Item.objects.filter(
                Q(category__number="1") | Q(category__number="2")
                | Q(category__number="3")).exclude(
                    active=False).order_by("-id")
            serializer = ItemSerializer(itemObjects, many=True)
            serializerContext = {}
            serializerContext[
                SerializerContextKey.ITEM_OBJECTS] = serializer.data
            return Response(serializerContext)

        elif category_number == 600:
            # 600 --- Habitacion...(4,5,6,7) buscar habitacion, alquilar habitacion, dar pencionado, busco pencionista
            itemObjects = Item.objects.filter(
                Q(category__number="4") | Q(category__number="5")
                | Q(category__number="6") | Q(category__number="7")).exclude(
                    active=False).order_by("-id")
            serializer = ItemSerializer(itemObjects, many=True)
            serializerContext = {}
            serializerContext[
                SerializerContextKey.ITEM_OBJECTS] = serializer.data
            return Response(serializerContext)

        elif category_number == 700:
            # 700 --- trabajo ...(8,9) buscar empleo, buscar trabajador
            itemObjects = Item.objects.filter(
                Q(category__number="8") | Q(category__number="9")).exclude(
                    active=False).order_by("-id")
            serializer = ItemSerializer(itemObjects, many=True)
            serializerContext = {}
            serializerContext[
                SerializerContextKey.ITEM_OBJECTS] = serializer.data
            return Response(serializerContext)

        elif category_number == 800:
            # 800 ___ Empresas y Servicios ...(10) publicidad de Enpresas y Servicios
            itemObjects = Item.objects.filter(category__number="10").exclude(
                active=False).order_by("-id")
            serializer = ItemSerializer(itemObjects, many=True)
            serializerContext = {}
            serializerContext[
                SerializerContextKey.ITEM_OBJECTS] = serializer.data
            return Response(serializerContext)

        # print(category_number)
        categoryObj = Category.objects.get(number=category_number)
        itemObjects = Item.objects.filter(category=categoryObj).exclude(
            active=False).exclude(active=False).order_by("-created_at")
        serializer = ItemSerializer(itemObjects, many=True)
        serializerContext = {}
        serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data
        return Response(serializerContext)
Ejemplo n.º 25
0
 def get(self, request, format=None):
     items = Item.objects.all()
     itemsSerializer = ItemSerializer(items, many=True)
     return Response(itemsSerializer.data)
Ejemplo n.º 26
0
 def get(self, request, kind, format=None):
     items = Item.objects.filter(kind__name=kind)
     serializer = ItemSerializer(items, many=True)
     return Response(serializer.data)
Ejemplo n.º 27
0
 def post(self, request, format=None):
     serializer = ItemSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 28
0
 def get(self, request):
     items = Item.objects.filter(user=request.user)
     serializer = ItemSerializer(items, many=True)
     return Response({'items': serializer.data})
Ejemplo n.º 29
0
 def get(self, request, pk, format=None):
     item = self.get_object(pk)
     serializer = ItemSerializer(item)
     return Response(serializer.data)
Ejemplo n.º 30
0
 def list(self, request, *args, **kwargs):
     items = Item.objects.all()
     serializer = ItemSerializer(items, many=True)
     return Response(serializer.data)