Exemplo n.º 1
0
    def list(self, request, type=None, *args, **kwargs):
        """
        Get list Location.
        type = 1: get data City.
        type = 2: get data District.
        """
        #type = request.query_params.get('type')
        if (type is None
                or int(type) not in [settings.DISTRICT, settings.CITY]):
            return Response(
                result.resultResponse(
                    False, ValidationError("Type location is required"),
                    MessageCode.FA001.value))
        if (int(type) == settings.DISTRICT):
            queryset = District.objects.filter(is_active=settings.IS_ACTIVE)
        else:
            queryset = City.objects.filter(is_active=settings.IS_ACTIVE)

        page = self.paginate_queryset(queryset)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        if (int(type) == settings.DISTRICT):
            serializer = DistrictSerializer(queryset, many=True)
        else:
            serializer = self.get_serializer(queryset, many=True)
        return Response(
            result.resultResponse(True, serializer.data,
                                  MessageCode.SU001.value))
Exemplo n.º 2
0
 def create(self, request, type=None):
     """
     Create a location.
     type = 1: create new City.
     type = 2: create new District.
     """
     #type = request.data.get('type')
     if (type is None
             or int(type) not in [settings.DISTRICT, settings.CITY]):
         return Response(
             result.resultResponse(
                 False, ValidationError("Type location is required"),
                 MessageCode.FA001.value))
     if (int(type) == settings.DISTRICT):
         serializer = DistrictSerializer(data=request.data)
     else:
         serializer = self.get_serializer(data=request.data)
     if serializer.is_valid():
         self.perform_create(serializer)
         return Response(
             result.resultResponse(True, serializer.data,
                                   MessageCode.SU001.value))
     return Response(
         result.resultResponse(False, serializer.errors,
                               MessageCode.FA001.value))
Exemplo n.º 3
0
    def destroy(self, request, type=None, *args, **kwargs):
        """
        Delete a Location.
        type = 1: delete City.
        type = 2: delete District.
        """

        #type = request.data.get('type')
        if (type is None
                or int(type) not in [settings.DISTRICT, settings.CITY]):
            return Response(
                result.resultResponse(
                    False, ValidationError("Type location is required"),
                    MessageCode.FA001.value))
        if (int(type) == settings.DISTRICT):
            districtID = kwargs['pk']
            district = District.objects.get(pk=districtID)
            self.perform_delete(district)
            queryset = District.objects.filter(is_active=settings.IS_ACTIVE)

        else:
            instance = self.get_object()
            # delete relation
            District.objects.select_related().filter(city=instance).update(
                is_active=settings.IS_INACTIVE)
            instance.is_active = settings.IS_INACTIVE
            instance.updated = datetime.now()
            instance.save()
            queryset = City.objects.filter(is_active=settings.IS_ACTIVE)
        serializer = self.get_serializer(queryset, many=True)
        return Response(
            result.resultResponse(True, serializer.data,
                                  MessageCode.SU001.value))
Exemplo n.º 4
0
    def update(self, request, pk=None, type=None, *args, **kwargs):
        """
        Update a Category.
        type = 1: update Category.
        type = 2: update Sub Category.
        """
        partial = kwargs.pop('partial', False)
        instance = self.get_object()
        # type = request.data.get('type')
        if(type is None or int(type) not in [settings.SUB_CATEGORY, settings.ROOT_CATEGORY]):
            return Response(result.resultResponse(False, ValidationError("Type category is required"), MessageCode.FA001.value))
        if (int(type) == settings.SUB_CATEGORY):
            subCat = SubCategory.objects.get(pk=pk)
            serializer = SubCategorySerializer(subCat, data=request.data, partial=partial)
        else:
            serializer = self.get_serializer(instance, data=request.data, partial=partial)
        if serializer.is_valid():
            self.perform_update(serializer)

            if getattr(instance, '_prefetched_objects_cache', None):
                # If 'prefetch_related' has been applied to a queryset, we need to
                # forcibly invalidate the prefetch cache on the instance.
                instance._prefetched_objects_cache = {}

            serializer = self.get_serializer(self.queryset, many=True)  # return list all Category
            return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))
        return Response(result.resultResponse(False, serializer.errors, MessageCode.FA001.value))
Exemplo n.º 5
0
    def create(self, request, *args, **kwargs):
        """
        Create a household_size attribute.
        """
        serializer = self.get_serializer(data=request.data)
        if serializer.is_valid():
            self.perform_create(serializer)
            headers = self.get_success_headers(serializer.data)

            return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))
        return Response(result.resultResponse(False, serializer.errors, MessageCode.FA001.value))
Exemplo n.º 6
0
    def update(self, request, *args, **kwargs):
        """
        Update a household_size attribute.
        """
        partial = kwargs.pop('partial', False)
        instance = self.get_object()
        serializer = self.get_serializer(instance, data=request.data, partial=partial)
        if serializer.is_valid():
            self.perform_update(serializer)

            if getattr(instance, '_prefetched_objects_cache', None):
                # If 'prefetch_related' has been applied to a queryset, we need to
                # forcibly invalidate the prefetch cache on the instance.
                instance._prefetched_objects_cache = {}

            return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))
        return Response(result.resultResponse(False, serializer.errors, MessageCode.FA001.value))
Exemplo n.º 7
0
 def destroy(self, request, *args, **kwargs):
     """
     Delete a contruction attribute.
     """
     instance = self.get_object()
     instance.is_active = settings.IS_INACTIVE
     instance.save()
     queryset = Contruction.objects.filter(is_active=settings.IS_ACTIVE)
     serializer = self.get_serializer(queryset, many=True)
     return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))
Exemplo n.º 8
0
    def create(self, request, type=None):
        """
        Create new a Category.
        type = 1: add new Category.
        type = 2: add new Sub Category.
        """
        # type = request.data.get('type')
        if(type is None or int(type) not in [settings.SUB_CATEGORY, settings.ROOT_CATEGORY]):

            return Response(result.resultResponse(False, ValidationError("Type category is required"), MessageCode.FA001.value))
        if (int(type) == settings.SUB_CATEGORY):
            serializer = SubCategorySerializer(data=request.data)
        else:
            serializer = self.get_serializer(data=request.data)
        if serializer.is_valid():
            self.perform_create(serializer)

            serializer = self.get_serializer(self.queryset, many=True)  # return list all Category
            return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))

        return Response(result.resultResponse(False, serializer.errors, MessageCode.FA001.value))
Exemplo n.º 9
0
    def list(self, request, *args, **kwargs):
        """
        Get list contruction attributes.
        """
        queryset = Contruction.objects.filter(is_active=settings.IS_ACTIVE)

        page = self.paginate_queryset(queryset)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = self.get_serializer(queryset, many=True)
        return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))
Exemplo n.º 10
0
    def update(self, request, type=None, *args, **kwargs):
        """
        Update a location.
        type = 1: update data City.
        type = 2: update data District.
        """
        partial = kwargs.pop('partial', False)
        instance = self.get_object()
        #type = request.data.get('type')
        if (type is None
                or int(type) not in [settings.DISTRICT, settings.CITY]):
            return Response(
                result.resultResponse(
                    False, ValidationError("Type location is required"),
                    MessageCode.FA001.value))
        if (int(type) == settings.DISTRICT):
            districtID = kwargs['pk']
            district = District.objects.get(pk=districtID)
            serializer = DistrictSerializer(district,
                                            data=request.data,
                                            partial=partial)
        else:
            serializer = self.get_serializer(instance,
                                             data=request.data,
                                             partial=partial)
        if serializer.is_valid():
            self.perform_update(serializer)

            if getattr(instance, '_prefetched_objects_cache', None):
                # If 'prefetch_related' has been applied to a queryset, we need to
                # forcibly invalidate the prefetch cache on the instance.
                instance._prefetched_objects_cache = {}

            return Response(
                result.resultResponse(True, serializer.data,
                                      MessageCode.SU001.value))
        return Response(
            result.resultResponse(False, serializer.errors,
                                  MessageCode.FA001.value))
Exemplo n.º 11
0
    def list(self, request, type=None, *args, **kwargs):
        """
        Get list Category.
        type = 1: get data Category.
        type = 2: get data Sub Category.
        """
        # type = request.query_params.get('type')

        if(type is None or int(type) not in [settings.SUB_CATEGORY, settings.ROOT_CATEGORY]):
            return Response(result.resultResponse(False, ValidationError("Type category is required"), MessageCode.FA001.value))

        if (int(type) == settings.SUB_CATEGORY):
            queryset = SubCategory.objects.filter(is_active=settings.IS_ACTIVE)
        else:
            queryset = Category.objects.filter(is_active=settings.IS_ACTIVE)

        page = self.paginate_queryset(queryset)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = self.get_serializer(queryset, many=True)
        return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))
Exemplo n.º 12
0
 def destroy(self, request, type=None, *args, **kwargs):
     """
     Delete a Category.
     type = 1: delete Category.
     type = 2: delete Sub Category.
     """
     # type = request.data.get('type')
     if(type is None or int(type) not in [settings.SUB_CATEGORY, settings.ROOT_CATEGORY]):
         return Response(result.resultResponse(False, ValidationError("Type category is required"), MessageCode.FA001.value))
     if(int(type) == settings.SUB_CATEGORY):
         subCatID = kwargs['pk']
         subCat = SubCategory.objects.get(pk=subCatID)
         self.perform_delete(subCat)
         queryset = SubCategory.objects.filter(is_active=settings.IS_ACTIVE)
     else:
         instance = self.get_object()
         # delete relation
         SubCategory.objects.select_related().filter(category=instance).update(is_active=settings.IS_INACTIVE)
         instance.is_active = settings.IS_INACTIVE
         instance.updated = datetime.now()
         instance.save()
         queryset = Category.objects.filter(is_active=settings.IS_ACTIVE)
     serializer = self.get_serializer(queryset, many=True)
     return Response(result.resultResponse(True, serializer.data, MessageCode.SU001.value))