diff --git a/CDC_Backend/APIs/models.py b/CDC_Backend/APIs/models.py index 59397ca..7cb799c 100644 --- a/CDC_Backend/APIs/models.py +++ b/CDC_Backend/APIs/models.py @@ -26,7 +26,7 @@ class Student(models.Model): roll_no = models.CharField(blank=False, max_length=15, unique=True) name = models.CharField(blank=False, max_length=JNF_TEXT_MAX_CHARACTER_COUNT) batch = models.CharField(max_length=10, choices=BATCH_CHOICES, blank=False) - branch = models.CharField(choices=BRANCH_CHOICES, blank=False, max_length=10) + branch = models.CharField(choices=BRANCH_CHOICES, blank=True,default=None, null=True, max_length=10) phone_number = models.PositiveBigIntegerField(blank=True, default=None, null=True) resumes = ArrayField(models.CharField(null=True, default=None, max_length=JNF_TEXT_MAX_CHARACTER_COUNT), size=10, default=list, blank=True) diff --git a/CDC_Backend/APIs/studentViews.py b/CDC_Backend/APIs/studentViews.py index 025aebd..12d1815 100644 --- a/CDC_Backend/APIs/studentViews.py +++ b/CDC_Backend/APIs/studentViews.py @@ -121,10 +121,22 @@ def getDashboard(request, id, email, user_type): placementApplications = PlacementApplication.objects.filter(student_id=id).order_by('-updated_at') placementApplications = PlacementApplicationSerializer(placementApplications, many=True).data - internships = Internship.objects.filter(allowed_batch__contains=[studentDetails.batch], - allowed_branch__contains=[studentDetails.branch], - deadline_datetime__gte=datetime.datetime.now(), - offer_accepted=True, email_verified=True).order_by('deadline_datetime') + if studentDetails.degree == 'BSMS': # for BSMS branch is not considered + internships = Internship.objects.filter( + allowed_batch__contains=[studentDetails.batch], + deadline_datetime__gte=datetime.datetime.now(), + offer_accepted=True, + email_verified=True + ).order_by('deadline_datetime') + else: + internships = Internship.objects.filter( + allowed_batch__contains=[studentDetails.batch], + allowed_branch__contains=[studentDetails.branch], + deadline_datetime__gte=datetime.datetime.now(), + offer_accepted=True, + email_verified=True + ).order_by('deadline_datetime') + filtered_internships = internship_eligibility_filters(studentDetails, internships) internshipsdata = InternshipSerializerForStudent(filtered_internships, many=True).data diff --git a/CDC_Backend/APIs/utils.py b/CDC_Backend/APIs/utils.py index af106ad..9fe9951 100644 --- a/CDC_Backend/APIs/utils.py +++ b/CDC_Backend/APIs/utils.py @@ -286,9 +286,9 @@ def InternshipApplicationConditions(student, internship): return False, "You have already secured a Internship" if student.degree not in internship.eligiblestudents: raise PermissionError("Can't apply for this Internship") - if student.branch not in internship.allowed_branch: + if student.degree != 'BSMS' and student.branch not in internship.allowed_branch: # for BSMS branch is not considered raise PermissionError("Can't apply for this Internship") - if student.degree == 'bTech' and student.batch not in internship.allowed_batch: + if student.degree == bTech and student.batch not in internship.allowed_batch: raise PermissionError("Can't apply for this Internship") if student.can_apply_internship == False: raise PermissionError("Can't apply for this Internship")