From 318029dc87b47b6135ab21cbb7b56f5f82b47fec Mon Sep 17 00:00:00 2001 From: Bhargavzz Date: Thu, 17 Oct 2024 17:31:19 +0530 Subject: [PATCH 1/2] Added API folder in iwdModuleV2 --- FusionIIIT/Fusion/urls.py | 4 + .../iwdModuleV2/api/serializers.py | 190 ++++++++++ .../applications/iwdModuleV2/api/urls.py | 36 ++ .../applications/iwdModuleV2/api/views.py | 349 ++++++++++++++++++ 4 files changed, 579 insertions(+) create mode 100644 FusionIIIT/applications/iwdModuleV2/api/serializers.py create mode 100644 FusionIIIT/applications/iwdModuleV2/api/urls.py create mode 100644 FusionIIIT/applications/iwdModuleV2/api/views.py diff --git a/FusionIIIT/Fusion/urls.py b/FusionIIIT/Fusion/urls.py index 837bf776a..e5035b508 100755 --- a/FusionIIIT/Fusion/urls.py +++ b/FusionIIIT/Fusion/urls.py @@ -37,6 +37,10 @@ url(r'^__debug__/', include(debug_toolbar.urls)), url(r'^research_procedures/', include('applications.research_procedures.urls')), url(r'^accounts/', include('allauth.urls')), + + + url(r'^api/', include('applications.iwdModuleV2.api.urls')), + url(r'^eis/', include('applications.eis.urls')), diff --git a/FusionIIIT/applications/iwdModuleV2/api/serializers.py b/FusionIIIT/applications/iwdModuleV2/api/serializers.py new file mode 100644 index 000000000..2b6f6c37a --- /dev/null +++ b/FusionIIIT/applications/iwdModuleV2/api/serializers.py @@ -0,0 +1,190 @@ +from rest_framework import serializers +from applications.iwdModuleV2.models import * + +class PageOneDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PageOneDetails + fields = '__all__' + + +class PageTwoDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PageTwoDetails + fields = '__all__' + + +class PageThreeDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PageThreeDetails + fields = '__all__' + + +class AESDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = AESDetails + fields = '__all__' + + +class CorrigendumTableSerializer(serializers.ModelSerializer): + class Meta: + model = CorrigendumTable + fields = '__all__' + + +class AddendumSerializer(serializers.ModelSerializer): + class Meta: + model = Addendum + fields = '__all__' + + +class PreBidDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PreBidDetails + fields = '__all__' + + +class NoOfTechnicalBidTimesSerializer(serializers.ModelSerializer): + class Meta: + model = NoOfTechnicalBidTimes + fields = '__all__' + + +class TechnicalBidDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = TechnicalBidDetails + fields = '__all__' + + +class TechnicalBidContractorDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = TechnicalBidContractorDetails + fields = '__all__' + + +class FinancialBidDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = FinancialBidDetails + fields = '__all__' + + +class FinancialContractorDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = FinancialContractorDetails + fields = '__all__' + + +class LetterOfIntentDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = LetterOfIntentDetails + fields = '__all__' + + +class WorkOrderFormSerializer(serializers.ModelSerializer): + class Meta: + model = WorkOrderForm + fields = '__all__' + + +class AgreementSerializer(serializers.ModelSerializer): + class Meta: + model = Agreement + fields = '__all__' + + +class MilestonesSerializer(serializers.ModelSerializer): + class Meta: + model = Milestones + fields = '__all__' + + +class ExtensionOfTimeDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = ExtensionOfTimeDetails + fields = '__all__' + + +class ProjectsSerializer(serializers.ModelSerializer): + class Meta: + model = Projects + fields = '__all__' + + +class WorkOrderFormSerializer(serializers.ModelSerializer): + class Meta: + model = WorkOrderForm + fields = '__all__' # or list specific fields here + +class AgreementSerializer(serializers.ModelSerializer): + class Meta: + model = Agreement + fields = '__all__' # or list specific fields here + +class MilestonesSerializer(serializers.ModelSerializer): + class Meta: + model = Milestones + fields = '__all__' # or list specific fields here + +class PageThreeDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PageThreeDetails + fields = '__all__' # or list specific fields here + +class ExtensionOfTimeDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = ExtensionOfTimeDetails + fields = '__all__' # or list specific fields here + +class AESDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = AESDetails + fields = '__all__' # or list specific fields here + +class FinancialBidDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = FinancialBidDetails + fields = '__all__' # or list specific fields here + +class TechnicalBidDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = TechnicalBidDetails + fields = '__all__' # or list specific fields here + +class FinancialContractorDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = FinancialContractorDetails + fields = '__all__' # or list specific fields here + +class TechnicalBidContractorDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = TechnicalBidContractorDetails + fields = '__all__' # or list specific fields here + +class PreBidDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PreBidDetails + fields = '__all__' # or list specific fields here + +class CorrigendumTableSerializer(serializers.ModelSerializer): + class Meta: + model = CorrigendumTable + fields = '__all__' # or list specific fields here + +class AddendumSerializer(serializers.ModelSerializer): + class Meta: + model = Addendum + fields = '__all__' # or list specific fields here + +class LetterOfIntentDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = LetterOfIntentDetails + fields = '__all__' # or list specific fields here + +class PageOneDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PageOneDetails + fields = '__all__' # or list specific fields here + +class PageTwoDetailsSerializer(serializers.ModelSerializer): + class Meta: + model = PageTwoDetails + fields = '__all__' # or list specific fields here \ No newline at end of file diff --git a/FusionIIIT/applications/iwdModuleV2/api/urls.py b/FusionIIIT/applications/iwdModuleV2/api/urls.py new file mode 100644 index 000000000..1e96232ef --- /dev/null +++ b/FusionIIIT/applications/iwdModuleV2/api/urls.py @@ -0,0 +1,36 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('dashboard/', views.dashboard, name='dashboard'), + path('page1-1/', views.page1_1, name='page1_1'), + path('aes-form/', views.AESForm, name='AESForm'), + path('page2-1/', views.page2_1, name='page2_1'), + path('corrigendum-input/', views.corrigendumInput, name='corrigendumInput'), + path('addendum-input/', views.addendumInput, name='addendumInput'), + path('pre-bid-form/', views.PreBidForm, name='PreBidForm'), + path('no-of-entries-technical-bid/', views.noOfEntriesTechnicalBid, name='noOfEntriesTechnicalBid'), + path('technical-bid-form/', views.TechnicalBidForm, name='TechnicalBidForm'), + path('no-of-entries-financial-bid/', views.noOfEntriesFinancialBid, name='noOfEntriesFinancialBid'), + path('letter-of-intent/', views.letterOfIntent, name='letterOfIntent'), + path('work-order-form/', views.workOrderForm, name='workOrderForm'), + path('agreement-input/', views.AgreementInput, name='AgreementInput'), + path('milestones-form/', views.milestonesForm, name='milestonesForm'), + path('page3-1/', views.page3_1, name='page3_1'), + path('extension-of-time-form/', views.ExtensionOfTimeForm, name='ExtensionOfTimeForm'), + path('page1-view/', views.page1View, name='page1View'), + path('page2-view/', views.page2View, name='page2View'), + path('aes-view/', views.AESView, name='AESView'), + path('financial-bid-view/', views.financialBidView, name='financialBidView'), + path('technical-bid-view/', views.technicalBidView, name='technicalBidView'), + path('pre-bid-details-view/', views.preBidDetailsView, name='preBidDetailsView'), + path('corrigendum-view/', views.corrigendumView, name='corrigendumView'), + path('addendum-view/', views.addendumView, name='addendumView'), + path('letter-of-intent-view/', views.letterOfIntentView, name='letterOfIntentView'), + path('work-order-form-view/', views.workOrderFormView, name='workOrderFormView'), + path('agreement-view/', views.agreementView, name='agreementView'), + path('milestone-view/', views.milestoneView, name='milestoneView'), + path('page3-view/', views.page3View, name='page3View'), + path('extension-form-view/', views.extensionFormView, name='extensionFormView'), +] + diff --git a/FusionIIIT/applications/iwdModuleV2/api/views.py b/FusionIIIT/applications/iwdModuleV2/api/views.py new file mode 100644 index 000000000..ebee4a721 --- /dev/null +++ b/FusionIIIT/applications/iwdModuleV2/api/views.py @@ -0,0 +1,349 @@ +from rest_framework.decorators import api_view +from rest_framework.response import Response +from rest_framework import status +from applications.globals.models import HoldsDesignation +from applications.iwdModuleV2.models import * +from .serializers import * + +@api_view(['GET']) +def dashboard(request): + userObj = request.user + userDesignationObjects = HoldsDesignation.objects.filter(user=userObj) + eligible = any(p.designation.name == 'Admin IWD' for p in userDesignationObjects) + return Response({'eligible': eligible}) + +@api_view(['POST']) +def page1_1(request): + if request.method == 'POST': + project_id = request.data.get('name') + request.session['projectId'] = project_id + project = Projects(id=project_id) + project.save() + + serializer = PageOneDetailsSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(id=project) # Assign the project instance + return Response({'message': 'Page One Details Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +def AESForm(request): + if request.method == 'POST': + serializer = AESDetailsSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=request.session['projectId'])) + return Response({'message': 'AES Details Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +def page2_1(request): + if request.method == 'POST': + request.session['projectId'] = request.data.get('id') + serializer = PageTwoDetailsSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(id=Projects.objects.get(id=request.session['projectId'])) + return Response({'message': 'Page Two Details Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +def corrigendumInput(request): + if request.method == 'POST': + existingObject = CorrigendumTable.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + if existingObject.count() == 1: + existingObject.delete() + + serializer = CorrigendumTableSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=request.session['projectId'])) + return Response({'message': 'Corrigendum Input Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +def addendumInput(request): + if request.method == 'POST': + existingObject = Addendum.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + if existingObject.count() == 1: + existingObject.delete() + + serializer = AddendumSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=request.session['projectId'])) + return Response({'message': 'Addendum Input Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +def PreBidForm(request): + if request.method == 'POST': + existingObject = PreBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + if existingObject.count() == 1: + existingObject.delete() + + serializer = PreBidDetailsSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=request.session['projectId'])) + return Response({'message': 'PreBid Form Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +def noOfEntriesTechnicalBid(request): + if request.method == 'POST': + existingObject = NoOfTechnicalBidTimes.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + if existingObject.count() == 1: + existingObject.delete() + + serializer = NoOfTechnicalBidTimesSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=request.session['projectId'])) + return Response({'message': 'Number of Entries for Technical Bid Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +def TechnicalBidForm(request): + if request.method == 'POST': + numberOfTechnicalBidTimes = NoOfTechnicalBidTimes.objects.get(key=Projects.objects.get(id=request.session['projectId'])).number + existingObject = TechnicalBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + if existingObject.count() == 1: + existingObject.delete() + + serializer = TechnicalBidDetailsSerializer(data=request.data) + if serializer.is_valid(): + technical_bid = serializer.save(key=Projects.objects.get(id=request.session['projectId'])) + + TechnicalBidContractorDetails.objects.filter(key=technical_bid).all().delete() + for w in range(numberOfTechnicalBidTimes): + contractor_serializer = TechnicalBidContractorDetailsSerializer(data={ + 'key': technical_bid, + 'name': request.data.get(f'{w}name'), + 'description': request.data.get(f'{w}Description'), + }) + if contractor_serializer.is_valid(): + contractor_serializer.save() + + return Response({'message': 'Technical Bid Form Saved!'}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST', 'GET']) +def noOfEntriesFinancialBid(request): + project_id = request.session['projectId'] + objectTechnicalBid = TechnicalBidDetails.objects.get(key=Projects.objects.get(id=project_id)) + objects = TechnicalBidContractorDetails.objects.filter(key=objectTechnicalBid) + + listOfContractors = [t.name for t in objects] + + if request.method == 'POST': + existingObject = FinancialBidDetails.objects.filter(key=Projects.objects.get(id=project_id)) + if existingObject.count() == 1: + existingObject.delete() + + serializer = FinancialBidDetailsSerializer(data=request.data) + if serializer.is_valid(): + financial_bid = serializer.save(key=Projects.objects.get(id=project_id)) + for contractor in listOfContractors: + contractor_serializer = FinancialContractorDetailsSerializer(data={ + 'key': financial_bid, + 'name': contractor, + 'totalCost': request.data[contractor + 'totalCost'], + 'estimatedCost': request.data[contractor + 'estimatedCost'], + 'percentageRelCost': request.data[contractor + 'percentageRelCost'], + 'perFigures': request.data[contractor + 'perFigures'], + }) + if contractor_serializer.is_valid(): + contractor_serializer.save() + return Response({"message": "Financial bid details saved successfully."}, status=status.HTTP_201_CREATED) + + return Response({'list': listOfContractors}, status=status.HTTP_200_OK) + +@api_view(['POST', 'GET']) +def letterOfIntent(request): + if request.method == 'POST': + existingObject = LetterOfIntentDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + if existingObject.count() == 1: + existingObject.delete() + + serializer = LetterOfIntentDetailsSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=request.session['projectId'])) + return Response({"message": "Letter of Intent saved successfully."}, status=status.HTTP_201_CREATED) + + return Response({}, status=status.HTTP_200_OK) + + +@api_view(['POST', 'GET']) +def workOrderForm(request): + project_id = request.session.get('projectId') + if request.method == 'POST': + existingObject = WorkOrderForm.objects.filter(key=Projects.objects.get(id=project_id)) + if existingObject.exists(): + existingObject.delete() + + serializer = WorkOrderFormSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=project_id)) + return Response({"message": "Work order saved successfully."}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + return Response({}, status=status.HTTP_200_OK) + +@api_view(['POST', 'GET']) +def AgreementInput(request): + project_id = request.session.get('projectId') + if request.method == 'POST': + existingObject = Agreement.objects.filter(key=Projects.objects.get(id=project_id)) + if existingObject.exists(): + existingObject.delete() + + serializer = AgreementSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=project_id)) + return Response({"message": "Agreement saved successfully."}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + return Response({}, status=status.HTTP_200_OK) + +@api_view(['POST', 'GET']) +def milestonesForm(request): + project_id = request.session.get('projectId') + if request.method == 'POST': + serializer = MilestonesSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=project_id)) + return Response({"message": "Milestone saved successfully."}, status=status.HTTP_201_CREATED) + + Milestones.objects.filter(key=Projects.objects.get(id=project_id)).delete() + return Response({}, status=status.HTTP_200_OK) + + +@api_view(['POST', 'GET']) +def page3_1(request): + if request.method == 'POST': + request.session['projectId'] = request.data['id'] + serializer = PageThreeDetailsSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(id=Projects.objects.get(id=request.session['projectId'])) + return Response({"message": "Page 3 details saved successfully."}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + return Response({}, status=status.HTTP_200_OK) + +@api_view(['POST', 'GET']) +def ExtensionOfTimeForm(request): + project_id = request.session.get('projectId') + if request.method == 'POST': + serializer = ExtensionOfTimeDetailsSerializer(data=request.data) + if serializer.is_valid(): + serializer.save(key=Projects.objects.get(id=project_id)) + return Response({"message": "Extension of Time details saved successfully."}, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + return Response({}, status=status.HTTP_200_OK) + +@api_view(['POST']) +def page1View(request): + request.session['projectId'] = request.data['id'] + projectPageOne = PageOneDetails.objects.get(id=Projects.objects.get(id=request.session['projectId'])) + return Response({'x': projectPageOne}, status=status.HTTP_200_OK) + +@api_view(['POST']) +def page2View(request): + projectPageTwo = PageTwoDetails.objects.get(id=Projects.objects.get(id=request.session['projectId'])) + return Response({'x': projectPageTwo}, status=status.HTTP_200_OK) + +@api_view(['GET']) +def AESView(request): + objects = AESDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + serializer = AESDetailsSerializer(objects, many=True) + return Response({'AES': serializer.data}, status=status.HTTP_200_OK) + +@api_view(['GET']) +def financialBidView(request): + elements = [] + objects = FinancialBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + for f in objects: + contractorObjects = FinancialContractorDetails.objects.filter(key=f) + for w in contractorObjects: + obj = [f.sNo, f.description, w.name, w.estimatedCost, w.percentageRelCost, w.perFigures, w.totalCost] + elements.append(obj) + return Response({'financial': elements}, status=status.HTTP_200_OK) + +@api_view(['GET']) +def technicalBidView(request): + elements = [] + objects = TechnicalBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + for f in objects: + contractorObjects = TechnicalBidContractorDetails.objects.filter(key=f) + for w in contractorObjects: + obj = [f.sNo, f.requirements, w.name, w.description] + elements.append(obj) + return Response({'technical': elements}, status=status.HTTP_200_OK) + +@api_view(['GET']) +def preBidDetailsView(request): + preBidObjects = PreBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + serializer = PreBidDetailsSerializer(preBidObjects, many=True) + return Response({'preBidDetails': serializer.data}, status=status.HTTP_200_OK) + +@api_view(['GET']) +def corrigendumView(request): + try: + corrigendumObject = CorrigendumTable.objects.get(key=Projects.objects.get(id=request.session['projectId'])) + serializer = CorrigendumTableSerializer(corrigendumObject) + return Response({'corrigendum': serializer.data}, status=status.HTTP_200_OK) + except CorrigendumTable.DoesNotExist: + return Response({'error': 'Corrigendum not found.'}, status=status.HTTP_404_NOT_FOUND) + +@api_view(['GET']) +def addendumView(request): + try: + addendumObject = Addendum.objects.get(key=Projects.objects.get(id=request.session['projectId'])) + serializer = AddendumSerializer(addendumObject) + return Response({'addendum': serializer.data}, status=status.HTTP_200_OK) + except Addendum.DoesNotExist: + return Response({'error': 'Addendum not found.'}, status=status.HTTP_404_NOT_FOUND) + +@api_view(['GET']) +def letterOfIntentView(request): + try: + letterOfIntentObject = LetterOfIntentDetails.objects.get(key=Projects.objects.get(id=request.session['projectId'])) + serializer = LetterOfIntentDetailsSerializer(letterOfIntentObject) + return Response({'letterOfIntent': serializer.data}, status=status.HTTP_200_OK) + except LetterOfIntentDetails.DoesNotExist: + return Response({'error': 'Letter of Intent not found.'}, status=status.HTTP_404_NOT_FOUND) + +@api_view(['GET']) +def workOrderFormView(request): + try: + workOrderFormObject = WorkOrderForm.objects.get(key=Projects.objects.get(id=request.session['projectId'])) + serializer = WorkOrderFormSerializer(workOrderFormObject) + return Response({'workOrderForm': serializer.data}, status=status.HTTP_200_OK) + except WorkOrderForm.DoesNotExist: + return Response({'error': 'Work Order Form not found.'}, status=status.HTTP_404_NOT_FOUND) + +@api_view(['GET']) +def agreementView(request): + try: + agreementObject = Agreement.objects.get(key=Projects.objects.get(id=request.session['projectId'])) + serializer = AgreementSerializer(agreementObject) + return Response({'agreement': serializer.data}, status=status.HTTP_200_OK) + except Agreement.DoesNotExist: + return Response({'error': 'Agreement not found.'}, status=status.HTTP_404_NOT_FOUND) + +@api_view(['GET']) +def milestoneView(request): + milestoneObjects = Milestones.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + serializer = MilestonesSerializer(milestoneObjects, many=True) + return Response({'milestones': serializer.data}, status=status.HTTP_200_OK) + +@api_view(['GET']) +def page3View(request): + try: + pageThreeDetails = PageThreeDetails.objects.get(key=Projects.objects.get(id=request.session['projectId'])) + serializer = PageThreeDetailsSerializer(pageThreeDetails) + return Response({'pageThreeDetails': serializer.data}, status=status.HTTP_200_OK) + except PageThreeDetails.DoesNotExist: + return Response({'error': 'Page Three Details not found.'}, status=status.HTTP_404_NOT_FOUND) + +@api_view(['GET']) +def extensionFormView(request): + extensionObjects = ExtensionOfTimeDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId'])) + serializer = ExtensionOfTimeDetailsSerializer(extensionObjects, many=True) + return Response({'extension': serializer.data}, status=status.HTTP_200_OK) From 8e25a9fc3f361ef644b64d405c8f8300cf3c0308 Mon Sep 17 00:00:00 2001 From: Bhargavzz Date: Thu, 14 Nov 2024 20:12:55 +0530 Subject: [PATCH 2/2] modified views related to audit document view --- FusionIIIT/applications/iwdModuleV2/api/views.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/FusionIIIT/applications/iwdModuleV2/api/views.py b/FusionIIIT/applications/iwdModuleV2/api/views.py index fda483318..35b775c33 100644 --- a/FusionIIIT/applications/iwdModuleV2/api/views.py +++ b/FusionIIIT/applications/iwdModuleV2/api/views.py @@ -1088,9 +1088,13 @@ def handleProcessedBills(request): @api_view(['GET']) @permission_classes([IsAuthenticated]) def audit_document_view(request): - desg = request.session.get('currentDesignationSelected') + params = request.query_params + desg = params.get('role') + if not desg: + return Response({"error": "Designation not provided"}, status=status.HTTP_400_BAD_REQUEST) + inbox_files = view_inbox(username=request.user, designation=desg, src_module="IWD") - + obj = [ { 'requestId': x['src_object_id'], @@ -1100,9 +1104,10 @@ def audit_document_view(request): } for x in inbox_files ] - + return Response({'data': obj}, status=status.HTTP_200_OK) + @api_view(['POST']) @permission_classes([IsAuthenticated]) def audit_document(request):