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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))