Fixed Bugs
This commit is contained in:
parent
4dbd4a65c8
commit
32c6468ade
|
@ -1,10 +1,10 @@
|
||||||
import json
|
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from .utils import *
|
|
||||||
from rest_framework.decorators import api_view
|
|
||||||
import csv
|
import csv
|
||||||
|
import json
|
||||||
|
|
||||||
|
from rest_framework.decorators import api_view
|
||||||
|
|
||||||
from .serializers import *
|
from .serializers import *
|
||||||
|
from .utils import *
|
||||||
|
|
||||||
|
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
|
@ -22,7 +22,8 @@ def markStatus(request, id, email, user_type):
|
||||||
application.selected = True if i[STUDENT_SELECTED] == "true" else False
|
application.selected = True if i[STUDENT_SELECTED] == "true" else False
|
||||||
|
|
||||||
email = str(application.student.roll_no) + "@iitdh.ac.in" # Only allowing for IITDh emails
|
email = str(application.student.roll_no) + "@iitdh.ac.in" # Only allowing for IITDh emails
|
||||||
subject = STUDENT_APPLICATION_STATUS_TEMPLATE_SUBJECT.format(company_name=application.placement.company_name,
|
subject = STUDENT_APPLICATION_STATUS_TEMPLATE_SUBJECT.format(
|
||||||
|
company_name=application.placement.company_name,
|
||||||
id=application.id)
|
id=application.id)
|
||||||
data = {
|
data = {
|
||||||
"company_name": application.placement.company_name,
|
"company_name": application.placement.company_name,
|
||||||
|
@ -53,15 +54,17 @@ def markStatus(request, id, email, user_type):
|
||||||
def getDashboard(request, id, email, user_type):
|
def getDashboard(request, id, email, user_type):
|
||||||
try:
|
try:
|
||||||
placements = Placement.objects.all().order_by('-created_at')
|
placements = Placement.objects.all().order_by('-created_at')
|
||||||
ongoing = placements.filter(deadline_datetime__gt=datetime.now(), offer_accepted__isnull=False)
|
ongoing = placements.filter(deadline_datetime__gt=datetime.datetime.now(), offer_accepted__isnull=False)
|
||||||
previous = placements.exclude(deadline_datetime__gt=datetime.now()).filter(offer_accepted__isnull=False)
|
previous = placements.exclude(deadline_datetime__gt=datetime.datetime.now()).filter(
|
||||||
|
offer_accepted__isnull=False)
|
||||||
new = placements.filter(offer_accepted__isnull=True)
|
new = placements.filter(offer_accepted__isnull=True)
|
||||||
ongoing = PlacementSerializerForAdmin(ongoing, many=True).data
|
ongoing = PlacementSerializerForAdmin(ongoing, many=True).data
|
||||||
previous = PlacementSerializerForAdmin(previous, many=True).data
|
previous = PlacementSerializerForAdmin(previous, many=True).data
|
||||||
new = PlacementSerializerForAdmin(new, many=True).data
|
new = PlacementSerializerForAdmin(new, many=True).data
|
||||||
|
|
||||||
return Response(
|
return Response(
|
||||||
{'action': "Get Dashboard - Admin", 'message': "Data Found", "ongoing": ongoing, "previous": previous, "new": new},
|
{'action': "Get Dashboard - Admin", 'message': "Data Found", "ongoing": ongoing, "previous": previous,
|
||||||
|
"new": new},
|
||||||
status=status.HTTP_200_OK)
|
status=status.HTTP_200_OK)
|
||||||
except Http404:
|
except Http404:
|
||||||
return Response({'action': "Get Dashboard - Admin", 'message': 'Student Not Found'},
|
return Response({'action': "Get Dashboard - Admin", 'message': 'Student Not Found'},
|
||||||
|
@ -80,7 +83,7 @@ def updateDeadline(request, id, email, user_type):
|
||||||
data = request.data
|
data = request.data
|
||||||
opening = get_object_or_404(Placement, pk=data[OPENING_ID])
|
opening = get_object_or_404(Placement, pk=data[OPENING_ID])
|
||||||
# Updating deadline date with correct format in datetime field
|
# Updating deadline date with correct format in datetime field
|
||||||
opening.deadline_datetime = datetime.strptime(data[DEADLINE_DATETIME], '%Y-%m-%d %H:%M:%S %z')
|
opening.deadline_datetime = datetime.datetime.strptime(data[DEADLINE_DATETIME], '%Y-%m-%d %H:%M:%S %z')
|
||||||
opening.save()
|
opening.save()
|
||||||
return Response({'action': "Update Deadline", 'message': "Deadline Updated"},
|
return Response({'action': "Update Deadline", 'message': "Deadline Updated"},
|
||||||
status=status.HTTP_200_OK)
|
status=status.HTTP_200_OK)
|
||||||
|
@ -92,6 +95,7 @@ def updateDeadline(request, id, email, user_type):
|
||||||
return Response({'action': "Update Deadline", 'message': "Something went wrong"},
|
return Response({'action': "Update Deadline", 'message': "Something went wrong"},
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
@isAuthorized([ADMIN])
|
@isAuthorized([ADMIN])
|
||||||
@precheck([OPENING_ID, OFFER_ACCEPTED])
|
@precheck([OPENING_ID, OFFER_ACCEPTED])
|
||||||
|
@ -111,6 +115,7 @@ def updateOfferAccepted(request, id, email, user_type):
|
||||||
return Response({'action': "Update Offer Accepted", 'message': "Something went wrong"},
|
return Response({'action': "Update Offer Accepted", 'message': "Something went wrong"},
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
@isAuthorized([ADMIN])
|
@isAuthorized([ADMIN])
|
||||||
@precheck([OPENING_ID, EMAIL_VERIFIED])
|
@precheck([OPENING_ID, EMAIL_VERIFIED])
|
||||||
|
@ -130,6 +135,7 @@ def updateEmailVerified(request, id, email, user_type):
|
||||||
return Response({'action': "Update Email Verified", 'message': "Something went wrong"},
|
return Response({'action': "Update Email Verified", 'message': "Something went wrong"},
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
@isAuthorized([ADMIN])
|
@isAuthorized([ADMIN])
|
||||||
@precheck([OPENING_ID, ADDITIONAL_INFO])
|
@precheck([OPENING_ID, ADDITIONAL_INFO])
|
||||||
|
@ -167,7 +173,7 @@ def getApplications(request, id, email, user_type):
|
||||||
opening = get_object_or_404(Placement, pk=data[OPENING_ID])
|
opening = get_object_or_404(Placement, pk=data[OPENING_ID])
|
||||||
applications = PlacementApplication.objects.filter(placement=opening)
|
applications = PlacementApplication.objects.filter(placement=opening)
|
||||||
serializer = PlacementApplicationSerializerForAdmin(applications, many=True)
|
serializer = PlacementApplicationSerializerForAdmin(applications, many=True)
|
||||||
return Response({'action': "Get Applications", 'message': 'Data Found', 'applications':serializer.data},
|
return Response({'action': "Get Applications", 'message': 'Data Found', 'applications': serializer.data},
|
||||||
status=status.HTTP_200_OK)
|
status=status.HTTP_200_OK)
|
||||||
except Http404:
|
except Http404:
|
||||||
return Response({'action': "Get Applications", 'message': 'Opening Not Found'},
|
return Response({'action': "Get Applications", 'message': 'Opening Not Found'},
|
||||||
|
@ -178,7 +184,6 @@ def getApplications(request, id, email, user_type):
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
@isAuthorized(allowed_users=[ADMIN])
|
@isAuthorized(allowed_users=[ADMIN])
|
||||||
@precheck(required_data=[OPENING_TYPE, OPENING_ID, RESUME_FILE_NAME,
|
@precheck(required_data=[OPENING_TYPE, OPENING_ID, RESUME_FILE_NAME,
|
||||||
|
@ -195,7 +200,7 @@ def submitApplication(request, id, email, user_type):
|
||||||
opening = get_object_or_404(Placement, id=data[OPENING_ID],
|
opening = get_object_or_404(Placement, id=data[OPENING_ID],
|
||||||
allowed_batch__contains=[student.batch],
|
allowed_batch__contains=[student.batch],
|
||||||
allowed_branch__contains=[student.branch],
|
allowed_branch__contains=[student.branch],
|
||||||
deadline_datetime__gte=datetime.now().date()
|
deadline_datetime__gte=datetime.datetime.now().date()
|
||||||
)
|
)
|
||||||
if not opening.offer_accepted or not opening.email_verified:
|
if not opening.offer_accepted or not opening.email_verified:
|
||||||
raise PermissionError("Placement Not Approved")
|
raise PermissionError("Placement Not Approved")
|
||||||
|
@ -231,7 +236,7 @@ def submitApplication(request, id, email, user_type):
|
||||||
"additional_info": dict(json.loads(application.additional_info)),
|
"additional_info": dict(json.loads(application.additional_info)),
|
||||||
}
|
}
|
||||||
subject = STUDENT_APPLICATION_SUBMITTED_TEMPLATE_SUBJECT.format(company_name=opening.company_name)
|
subject = STUDENT_APPLICATION_SUBMITTED_TEMPLATE_SUBJECT.format(company_name=opening.company_name)
|
||||||
student_email = str(student.roll_no)+"@iitdh.ac.in"
|
student_email = str(student.roll_no) + "@iitdh.ac.in"
|
||||||
sendEmail(student_email, subject, data, STUDENT_APPLICATION_SUBMITTED_TEMPLATE)
|
sendEmail(student_email, subject, data, STUDENT_APPLICATION_SUBMITTED_TEMPLATE)
|
||||||
|
|
||||||
application.save()
|
application.save()
|
||||||
|
@ -252,7 +257,6 @@ def submitApplication(request, id, email, user_type):
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
@isAuthorized(allowed_users=[ADMIN])
|
@isAuthorized(allowed_users=[ADMIN])
|
||||||
@precheck(required_data=[OPENING_ID])
|
@precheck(required_data=[OPENING_ID])
|
||||||
|
@ -272,12 +276,12 @@ def generateCSV(request, id, email, user_type):
|
||||||
header_row.extend(placement.additional_info)
|
header_row.extend(placement.additional_info)
|
||||||
writer.writerow(header_row)
|
writer.writerow(header_row)
|
||||||
for apl in applications:
|
for apl in applications:
|
||||||
row_details=[]
|
row_details = []
|
||||||
|
|
||||||
row_details.append(apl.applied_at)
|
row_details.append(apl.applied_at)
|
||||||
row_details.append(apl.student.roll_no)
|
row_details.append(apl.student.roll_no)
|
||||||
row_details.append(apl.student.name)
|
row_details.append(apl.student.name)
|
||||||
row_details.append(str(apl.student.roll_no)+"@iitdh.ac.in")
|
row_details.append(str(apl.student.roll_no) + "@iitdh.ac.in")
|
||||||
row_details.append(apl.student.phone_number)
|
row_details.append(apl.student.phone_number)
|
||||||
row_details.append(apl.student.branch)
|
row_details.append(apl.student.branch)
|
||||||
row_details.append(apl.student.batch)
|
row_details.append(apl.student.batch)
|
||||||
|
@ -291,7 +295,7 @@ def generateCSV(request, id, email, user_type):
|
||||||
|
|
||||||
writer.writerow(row_details)
|
writer.writerow(row_details)
|
||||||
f.close()
|
f.close()
|
||||||
file_path = LINK_TO_APPLICATIONS_CSV + urllib.parse.quote_plus(filename+".csv")
|
file_path = LINK_TO_APPLICATIONS_CSV + urllib.parse.quote_plus(filename + ".csv")
|
||||||
return Response({'action': "Create csv", 'message': "CSV created", 'file': file_path},
|
return Response({'action': "Create csv", 'message': "CSV created", 'file': file_path},
|
||||||
status=status.HTTP_200_OK)
|
status=status.HTTP_200_OK)
|
||||||
except:
|
except:
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import json
|
import json
|
||||||
import datetime
|
|
||||||
|
|
||||||
from rest_framework.decorators import api_view
|
from rest_framework.decorators import api_view
|
||||||
|
|
||||||
|
@ -178,7 +177,8 @@ def addPlacement(request):
|
||||||
else:
|
else:
|
||||||
raise ValueError('Invalid compensation gross')
|
raise ValueError('Invalid compensation gross')
|
||||||
# Convert to date object
|
# Convert to date object
|
||||||
opening.tentative_date_of_joining = datetime.datetime.strptime(data[TENTATIVE_DATE_OF_JOINING], '%d-%m-%Y').date()
|
opening.tentative_date_of_joining = datetime.datetime.strptime(data[TENTATIVE_DATE_OF_JOINING],
|
||||||
|
'%d-%m-%Y').date()
|
||||||
|
|
||||||
# Only Allowing Fourth Year for Placement
|
# Only Allowing Fourth Year for Placement
|
||||||
opening.allowed_batch = [FOURTH_YEAR, ]
|
opening.allowed_batch = [FOURTH_YEAR, ]
|
||||||
|
@ -202,8 +202,6 @@ def addPlacement(request):
|
||||||
|
|
||||||
opening.save()
|
opening.save()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
stat, link = generateOneTimeVerificationLink(opening.email, opening.id, "Placement")
|
stat, link = generateOneTimeVerificationLink(opening.email, opening.id, "Placement")
|
||||||
if not stat:
|
if not stat:
|
||||||
raise RuntimeError("Error in generating one time verification link for placement")
|
raise RuntimeError("Error in generating one time verification link for placement")
|
||||||
|
@ -226,6 +224,7 @@ def addPlacement(request):
|
||||||
return Response({'action': "Add Placement", 'message': "Something went wrong"},
|
return Response({'action': "Add Placement", 'message': "Something went wrong"},
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
@precheck([TOKEN])
|
@precheck([TOKEN])
|
||||||
def verifyEmail(request):
|
def verifyEmail(request):
|
||||||
|
|
|
@ -5,10 +5,10 @@ import random
|
||||||
import re
|
import re
|
||||||
import string
|
import string
|
||||||
import sys
|
import sys
|
||||||
import jwt
|
|
||||||
from os import path, remove
|
from os import path, remove
|
||||||
|
|
||||||
import background_task
|
import background_task
|
||||||
|
import jwt
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.mail import EmailMultiAlternatives
|
from django.core.mail import EmailMultiAlternatives
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
|
|
Loading…
Reference in New Issue