FIX: views formating

This commit is contained in:
Omma 2024-08-19 11:14:42 +03:30
parent ccbc538f9c
commit 1e0ffd9b2d
3 changed files with 48 additions and 180 deletions

View file

@ -17,6 +17,7 @@ class Well(models.Model):
null=True, null=True,
blank=True, blank=True,
) )
subscriptionـcode = models.CharField( subscriptionـcode = models.CharField(
verbose_name='کد اشتراک', verbose_name='کد اشتراک',
max_length=100, max_length=100,
@ -61,6 +62,13 @@ class Well(models.Model):
blank=True, blank=True,
) )
log_of = models.IntegerField(
verbose_name='لاگ شده از',
null=True,
blank=False,
default = 0
)
province = models.IntegerField( province = models.IntegerField(
# Province, # Province,
# on_delete=models.SET_NULL, # on_delete=models.SET_NULL,
@ -82,6 +90,7 @@ class Well(models.Model):
null=True, null=True,
blank=True, blank=True,
) )
class Meta: class Meta:
verbose_name = 'چاه' verbose_name = 'چاه'
verbose_name_plural = 'چاه‌ها' verbose_name_plural = 'چاه‌ها'

View file

@ -5,8 +5,8 @@ urlpatterns = [
path('<int:obj_id>/', send_well_by_well_id, name = 'send_well'), path('<int:obj_id>/', send_well_by_well_id, name = 'send_well'),
path('', send_wells, name='send_wells'), path('', send_wells, name='send_wells'),
path('create/', create_well, name='create_well'), path('create/', create_well, name='create_well'),
path('delete/<int:obj_id>/', delete_well_by_well_id, name='delete_well'), path('<int:obj_id>/delete/', delete_well_by_well_id, name='delete_well'),
path('update/<int:obj_id>/', update_well_by_well_id, name='update_well'), path('<int:obj_id>/update/', update_well_by_well_id, name='update_well'),
path('edit/<int:obj_id>/', edit_well_by_well_id, name = 'edit_well' ), path('<int:obj_id>/edit/', edit_well_by_well_id, name = 'edit_well' ),
] ]

View file

@ -13,112 +13,61 @@ import requests
from .models import Well from .models import Well
from .serializers import WellSerializer from .serializers import WellSerializer
# Create your views here.
@api_view(['POST']) @api_view(['POST'])
def create_well(request): def create_well(request):
try: try:
# return JsonResponse({ data = json.loads(request.body.decode('utf-8'))
# "message": "Duplicate Record", instance = Well.objects.get(
# "status": 409, license_code=data["license_code"])
# }, if instance:
# status = 409 return Response(
# ) {"message":f'{data["license_code"]} already exists'},
#if another formatting in request, try this: status=status.HTTP_409_CONFLICT
''' )
data = request.POST serializer = WellSerializer(data=data)
new_well = data.dict() # change querydict to dict
'''
data = request.body.decode('utf-8')
serializer = WellSerializer(data=json.loads(data))
#serializer = WellSerializer(data=request.data)
if serializer.is_valid(): if serializer.is_valid():
serializer.save() serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(
serializer.data,
status=status.HTTP_201_CREATED
)
else: else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(
serializer.errors,
status=status.HTTP_400_BAD_REQUEST
)
except Exception as e: except Exception as e:
print(e) print(e)
return Response({"error": "Internal Server Error"}, status=500) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
# data = request.body.decode('utf-8')
# serializer = WellSerializer(data=json.loads(data))
# if serializer.is_valid():
# serializer.save()
# return JsonResponse(
# {
# "status": 200,
# "message": "OK",
# "created": serializer.data,
# },
# status = 200
# )
# #Response(serializer.data, status=status.HTTP_201_CREATED)
# else:
# return JsonResponse(
# {
# "status": 400,
# "message": "Bad Request",
# },
# status = 400
# )
# new_well = json.loads(request.body.decode('utf-8'))
# created_well = Well.objects.create(**new_well)
# return JsonResponse({"data":[
# {
# "error": "OK",
# "created": new_well,
# "well_id": created_well.id
# },
# ]},
# status = 200
# )
@api_view(['GET']) @api_view(['GET'])
def send_well_by_well_id(request, obj_id): def send_well_by_well_id(request, obj_id):
try: try:
#well = Well.objects.filter(id=obj_id).values()[0] well = Well.objects.filter(id=obj_id).first()
#serialized_data = serializers.serialize('json', [well])
well = Well.objects.filter(id=obj_id).last()
if well is None: if well is None:
return Response({"error": "Not Found"}, status=404) return Response({"error": "Not Found"}, status=status.HTTP_404_NOT_FOUND)
serializer = WellSerializer(well) serializer = WellSerializer(well)
return Response(serializer.data) return Response(serializer.data, status=status.HTTP_200_OK)
# return JsonResponse(
# {"well": serializer.data},
# status = 200
# )
except Exception as ex: except Exception as ex:
print(ex) print(ex)
return Response({"error": "Internal Server Error"}, status=500) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@api_view(['GET']) @api_view(['GET'])
def send_wells(request): def send_wells(request):
try: try:
print("sending wells")
# to do: add owner # to do: add owner
''' # to do: add filter
raw_body = request.body # to do: add log_type=0
users = json.loads(raw_body.decode('utf-8'))["data"] # to do: add no return data
result = []
for well in wells:
for user in users:
if well["owner_id"] == user["id"]:
well_info = well.copy()
well_info.pop("owner_id", None)
well_info["user_info"] = user
result.append(well_info)
break
'''
wells = Well.objects.all() wells = Well.objects.all()
serializer = WellSerializer(wells, many=True) serializer = WellSerializer(wells, many=True)
return Response(serializer.data) return Response(serializer.data, status=status.HTTP_200_OK)
return JsonResponse({"data": list(wells)},status=200) except Exception as ex:
except Exception as e: print(ex)
print(e) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
return Response({"error": "Bad Request"}, status=400)
@csrf_exempt
@api_view(['DELETE']) @api_view(['DELETE'])
def delete_well_by_well_id(request, obj_id): def delete_well_by_well_id(request, obj_id):
try: try:
@ -132,26 +81,6 @@ def delete_well_by_well_id(request, obj_id):
print(e) print(e)
return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
# try:
# instance = Well.objects.get(id=obj_id, log_type=0)
# instance.log_type = 1
# instance.save()
# return JsonResponse({"data":[
# {
# "well": instance.license_code,
# "error": "OK",
# },
# ]},
# status = 200
# )
# except Exception as e:
# print(e)
# return JsonResponse({"data":[
# {"error": "Bad Request"}
# ]},
# status = 400
# )
@api_view(['PUT']) @api_view(['PUT'])
def update_well_by_well_id(request, obj_id): def update_well_by_well_id(request, obj_id):
try: try:
@ -161,7 +90,8 @@ def update_well_by_well_id(request, obj_id):
data = json.loads(request.body.decode('utf-8')) data = json.loads(request.body.decode('utf-8'))
data["log_type"] = 0 data["log_type"] = 0
serializer = WellSerializer(data=data) serializer = WellSerializer(data=data)
if serializer.is_valid(): if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK) return Response(serializer.data, status=status.HTTP_200_OK)
else: else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@ -170,43 +100,8 @@ def update_well_by_well_id(request, obj_id):
except Exception as e: except Exception as e:
print(e) print(e)
return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
# try:
# instance = Well.objects.order_by('-pk').get(pk=obj_id)
# instance.log_type = 2
# instance.save()
# new_well = json.loads(request.body.decode('utf-8'))
# created_well = Well.objects.create(**new_well)
# return JsonResponse({"data":[
# {
# "error": "OK",
# "created": new_well,
# "well_id": created_well.id
# },
# ]},
# status = 200
# )
# except Exception as e: @api_view(['PUT'])
# if isinstance(e, IntegrityError):
# return JsonResponse({"data":[
# {
# "error": "Conflict",
# "message": "Duplicate Record",
# "status": 409,
# }
# ]},
# status = 409
# )
# print(e)
# return JsonResponse({"data":[
# {"error": "Bad Request",
# "status": 400
# },
# ]},
# status = 400
# )
@csrf_exempt
def edit_well_by_well_id(request, obj_id): def edit_well_by_well_id(request, obj_id):
try: try:
instance = Well.objects.get(id=obj_id, log_type=0) instance = Well.objects.get(id=obj_id, log_type=0)
@ -215,7 +110,9 @@ def edit_well_by_well_id(request, obj_id):
data = json.loads(request.body.decode('utf-8')) data = json.loads(request.body.decode('utf-8'))
data["log_type"] = 0 data["log_type"] = 0
serializer = WellSerializer(data=data) serializer = WellSerializer(data=data)
if serializer.is_valid(): if serializer.is_valid():
serializer["log_of"] = instance.id
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK) return Response(serializer.data, status=status.HTTP_200_OK)
else: else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@ -223,42 +120,4 @@ def edit_well_by_well_id(request, obj_id):
return Response({"error": "Not Found"}, status=status.HTTP_404_NOT_FOUND) return Response({"error": "Not Found"}, status=status.HTTP_404_NOT_FOUND)
except Exception as e: except Exception as e:
print(e) print(e)
return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
# try:
# instance = Well.objects.order_by('-pk').get(pk=obj_id)
# instance.log_type = 3
# instance.save()
# new_well = json.loads(request.body.decode('utf-8'))
# created_well = Well.objects.create(**new_well)
# return JsonResponse({"data":[
# {
# "error": "OK",
# "created": new_well,
# "well_id": created_well.id
# },
# ]},
# status = 200
# )
# except Exception as e:
# if isinstance(e, IntegrityError):
# return JsonResponse({"data":[
# {
# "error": "Conflict",
# "message": "Duplicate Record",
# "status": 409,
# }
# ]},
# status = 409
# )
# print(e)
# return JsonResponse({"data":[
# {"error": "Bad Request",
# "status": 400
# },
# ]},
# status = 400
# )