From ed0577a6efa3eb2b2bcce85bae369c3c57dd8a11 Mon Sep 17 00:00:00 2001 From: gowtham3105 <66207607+gowtham3105@users.noreply.github.com> Date: Fri, 22 Oct 2021 20:37:15 +0530 Subject: [PATCH 1/3] Constants Update --- CDC_Backend/APIs/companyViews.py | 76 ++++++++++++++++---------------- CDC_Backend/APIs/constants.py | 43 +++++++++--------- CDC_Backend/APIs/models.py | 15 ++++--- CDC_Backend/APIs/studentViews.py | 20 ++++----- 4 files changed, 79 insertions(+), 75 deletions(-) diff --git a/CDC_Backend/APIs/companyViews.py b/CDC_Backend/APIs/companyViews.py index c31f135..92c7eac 100644 --- a/CDC_Backend/APIs/companyViews.py +++ b/CDC_Backend/APIs/companyViews.py @@ -10,10 +10,10 @@ logger = logging.getLogger('db') @api_view(['POST']) -@precheck([OPENING_DESIGNATION, OPENING_DESCRIPTION, OPENING_TYPE, OPENING_CITY, OPENING_CITY_TYPE, - OPENING_COMPENSATION, OPENING_COMPENSATION_DETAILS, OPENING_ALLOWED_BATCH, OPENING_ALLOWED_BRANCH, - OPENING_ROUNDS, OPENING_CO_OP, OPENING_START_DATE, OPENING_ADDITIONAL_INFO, - OPENING_DURATION, OPENING_ROUND_DETAILS]) +@precheck([DESIGNATION, DESCRIPTION, OPENING_TYPE, CITY, CITY_TYPE, + COMPENSATION, COMPENSATION_DETAILS, ALLOWED_BATCH, ALLOWED_BRANCH, + ROUNDS, CO_OP, START_DATE, ADDITIONAL_INFO, + DURATION, ROUND_DETAILS]) def addOpening(request): try: data = request.data @@ -28,61 +28,61 @@ def addOpening(request): # Some new code above - if data[OPENING_DESIGNATION] != "": - opening.designation = data[OPENING_DESIGNATION] + if data[DESIGNATION] != "": + opening.designation = data[DESIGNATION] else: - raise ValueError(OPENING_DESIGNATION + " Not Found") + raise ValueError(DESIGNATION + " Not Found") - opening.description = data[OPENING_DESCRIPTION] + opening.description = data[DESCRIPTION] - if data[OPENING_START_DATE] != "": - opening.description = data[OPENING_START_DATE] + if data[START_DATE] != "": + opening.description = data[START_DATE] else: - raise ValueError(OPENING_START_DATE + " Not Found") - if data[OPENING_START_DATE] != "": - opening.start_date = datetime.strptime(data[OPENING_START_DATE], '%d-%m-%Y') + raise ValueError(START_DATE + " Not Found") + if data[START_DATE] != "": + opening.start_date = datetime.strptime(data[START_DATE], '%d-%m-%Y') else: - raise ValueError(OPENING_START_DATE + " Not Found") - if data[OPENING_CITY] != "": - opening.city = data[OPENING_CITY] + raise ValueError(START_DATE + " Not Found") + if data[CITY] != "": + opening.city = data[CITY] else: - raise ValueError(OPENING_CITY + " Not Found") - if data[OPENING_CITY_TYPE] != "": - opening.city_type = data[OPENING_CITY_TYPE] + raise ValueError(CITY + " Not Found") + if data[CITY_TYPE] != "": + opening.city_type = data[CITY_TYPE] else: - raise ValueError(OPENING_CITY_TYPE + " Not Found") - if data[OPENING_COMPENSATION] != "": - opening.compensation = data[OPENING_COMPENSATION] + raise ValueError(CITY_TYPE + " Not Found") + if data[COMPENSATION] != "": + opening.compensation = data[COMPENSATION] else: - raise ValueError(OPENING_COMPENSATION + " Not Found") + raise ValueError(COMPENSATION + " Not Found") - opening.compensation_details = data[OPENING_COMPENSATION_DETAILS] + opening.compensation_details = data[COMPENSATION_DETAILS] - if data[OPENING_ALLOWED_BATCH] != "": - if set(json.loads(data[OPENING_ALLOWED_BATCH])).issubset(BATCHES): - opening.allowed_batch = json.loads(data[OPENING_ALLOWED_BATCH]) + if data[ALLOWED_BATCH] != "": + if set(json.loads(data[ALLOWED_BATCH])).issubset(BATCHES): + opening.allowed_batch = json.loads(data[ALLOWED_BATCH]) else: - raise ValueError(OPENING_ALLOWED_BATCH + " is Invalid") + raise ValueError(ALLOWED_BATCH + " is Invalid") else: - raise ValueError(OPENING_ALLOWED_BATCH + " Not Found") - if data[OPENING_ALLOWED_BRANCH] != "": - if set(json.loads(data[OPENING_ALLOWED_BRANCH])).issubset(BRANCHES): - opening.allowed_branch = json.loads(data[OPENING_ALLOWED_BRANCH]) + raise ValueError(ALLOWED_BATCH + " Not Found") + if data[ALLOWED_BRANCH] != "": + if set(json.loads(data[ALLOWED_BRANCH])).issubset(BRANCHES): + opening.allowed_branch = json.loads(data[ALLOWED_BRANCH]) else: - raise ValueError(OPENING_ALLOWED_BATCH + " is Invalid") + raise ValueError(ALLOWED_BATCH + " is Invalid") else: - raise ValueError(OPENING_ALLOWED_BRANCH + " Not Found") + raise ValueError(ALLOWED_BRANCH + " Not Found") - opening.rounds = json.loads(data[OPENING_ROUNDS]) + opening.rounds = json.loads(data[ROUNDS]) - opening.additional_info = json.loads(data[OPENING_ADDITIONAL_INFO]) + opening.additional_info = json.loads(data[ADDITIONAL_INFO]) opening.status = STATUS_ACCEPTING_APPLICATIONS - opening.rounds_details = json.loads(data[OPENING_ROUND_DETAILS]) + opening.rounds_details = json.loads(data[ROUND_DETAILS]) opening.created_at = make_aware(datetime.now()) - files = request.FILES.getlist(OPENING_ATTACHMENTS) + files = request.FILES.getlist(ATTACHMENTS) attachments = [] for file in files: attachments.append(saveFile(file, STORAGE_DESTINATION_COMPANY_ATTACHMENTS)) diff --git a/CDC_Backend/APIs/constants.py b/CDC_Backend/APIs/constants.py index 2ea330b..7a4b25b 100644 --- a/CDC_Backend/APIs/constants.py +++ b/CDC_Backend/APIs/constants.py @@ -38,15 +38,16 @@ EMAIL = "email" STUDENT = 'student' ADMIN = 'Admin' COMPANY = '' + STORAGE_DESTINATION = "./Storage/Resumes/" STORAGE_DESTINATION_COMPANY_ATTACHMENTS = './Storage/Company_Attachments/' RESUME_FILE_NAME = 'resume_file_name' APPLICATION_ID = "application_id" -APPLICATION_OPENING_TYPE = "opening_type" -APPLICATION_OPENING_ID = "opening_id" -APPLICATION_ADDITIONAL_INFO = "additional_info" +OPENING_ID = "opening_id" +STUDENT_ID = "student_id" +ADDITIONAL_INFO = "additional_info" STATUS_ACCEPTING_APPLICATIONS = "Accepting Applications" @@ -54,25 +55,27 @@ PLACEMENT = "Placement" COMPANY_WEBSITE = 'website' COMPANY_ADDRESS = 'address' -COMPANY_PHONE_NUMBER = 'phone_number' -COMPANY_CONTACT_PERSON_NAME = 'contact_person_name' +PHONE_NUMBER = 'phone_number' +CONTACT_PERSON_NAME = 'contact_person_name' -OPENING_DESIGNATION = 'designation' -OPENING_DESCRIPTION = 'description' +DESIGNATION = 'designation' +DESCRIPTION = 'description' OPENING_TYPE = 'opening_type' -OPENING_CITY = 'city' -OPENING_CITY_TYPE = 'city_type' -OPENING_COMPENSATION = 'compensation' -OPENING_COMPENSATION_DETAILS = 'compensation_details' -OPENING_ALLOWED_BATCH = 'allowed_batch' -OPENING_ALLOWED_BRANCH = 'allowed_branch' -OPENING_ATTACHMENTS = 'attachments' -OPENING_ROUNDS = 'rounds' -OPENING_ADDITIONAL_INFO = 'additional_info' -OPENING_ROUND_DETAILS = 'round_details' -OPENING_DURATION = 'duration' -OPENING_CO_OP = 'co_op' -OPENING_START_DATE = 'start_date' +CITY = 'city' +CITY_TYPE = 'city_type' +COMPENSATION = 'compensation' +COMPENSATION_DETAILS = 'compensation_details' +ALLOWED_BATCH = 'allowed_batch' +ALLOWED_BRANCH = 'allowed_branch' +ATTACHMENTS = 'attachments' +ROUNDS = 'rounds' +ROUND_DETAILS = 'round_details' +DURATION = 'duration' +CO_OP = 'co_op' +START_DATE = "start_date" + +STUDENT_LIST = "student_list" +STUDENT_STATUS = "student_status" BRANCHES = [ "CSE", diff --git a/CDC_Backend/APIs/models.py b/CDC_Backend/APIs/models.py index e844dc2..7203738 100644 --- a/CDC_Backend/APIs/models.py +++ b/CDC_Backend/APIs/models.py @@ -28,12 +28,12 @@ class Admin(models.Model): class Placement(models.Model): id = models.CharField(blank=False, primary_key=True, max_length=15) - name = models.CharField(blank=False, max_length=50) - address = models.CharField(blank=False, max_length=150) - companyType = models.CharField(blank=False, max_length=50) - website = models.CharField(blank=True, max_length=50) - contact_person_name = models.CharField(blank=False, max_length=50) - phone_number = models.PositiveBigIntegerField(blank=False) + name = models.CharField(blank=False, max_length=50, default="") + address = models.CharField(blank=False, max_length=150, default="") + companyType = models.CharField(blank=False, max_length=50, default="") + website = models.CharField(blank=True, max_length=50, default="") + contact_person_name = models.CharField(blank=False, max_length=50, default="") + phone_number = models.PositiveBigIntegerField(blank=False, default=0) designation = models.CharField(blank=False, max_length=25, default=None, null=True) description = models.CharField(blank=False, max_length=200) start_date = models.DateField(blank=False, verbose_name="Start Date") @@ -90,12 +90,13 @@ class PlacementApplication(models.Model): class Meta: verbose_name_plural = "Placement Applications" + unique_together = ('placement_id', 'student_id') class PrePlacementOffer(models.Model): id = models.AutoField(primary_key=True) student = models.ForeignKey(Student, on_delete=models.CASCADE, blank=False) - company = models.CharField(max_length=50, blank=False) + company = models.CharField(max_length=50, blank=False, default="") compensation = models.IntegerField(blank=False) # Job - Per Year compensation_details = models.CharField(blank=True, max_length=200) tier = models.CharField(blank=False, choices=TIERS, max_length=10) diff --git a/CDC_Backend/APIs/studentViews.py b/CDC_Backend/APIs/studentViews.py index 6abee88..d709576 100644 --- a/CDC_Backend/APIs/studentViews.py +++ b/CDC_Backend/APIs/studentViews.py @@ -132,18 +132,18 @@ def deleteResume(request, id, email, user_type): @api_view(['POST']) @isAuthorized(allowed_users=[STUDENT]) -@precheck(required_data=[APPLICATION_OPENING_TYPE, APPLICATION_OPENING_ID, RESUME_FILE_NAME, - APPLICATION_ADDITIONAL_INFO]) +@precheck(required_data=[OPENING_TYPE, OPENING_ID, RESUME_FILE_NAME, + ADDITIONAL_INFO]) def submitApplication(request, id, email, user_type): try: data = request.data student = get_object_or_404(Student, id=id) - if data[APPLICATION_OPENING_TYPE] == PLACEMENT: + if data[OPENING_TYPE] == PLACEMENT: if not len(PlacementApplication.objects.filter( - student_id=id, placement_id=data[APPLICATION_OPENING_ID])): + student_id=id, placement_id=data[OPENING_ID])): application = PlacementApplication() - opening = get_object_or_404(Placement, id=data[APPLICATION_OPENING_ID], + opening = get_object_or_404(Placement, id=data[OPENING_ID], status=STATUS_ACCEPTING_APPLICATIONS) cond_stat, cond_msg = PlacementApplicationConditions(student, opening) print(cond_stat, cond_msg) @@ -153,7 +153,7 @@ def submitApplication(request, id, email, user_type): else: raise PermissionError("Application is already Submitted") else: - raise ValueError(APPLICATION_OPENING_TYPE + " is Invalid") + raise ValueError(OPENING_TYPE + " is Invalid") if data[RESUME_FILE_NAME] in student.resumes: application.resume = data[RESUME_FILE_NAME] @@ -163,13 +163,13 @@ def submitApplication(request, id, email, user_type): application.student = student application.id = generateRandomString() for i in opening.additional_info: - if i not in data[APPLICATION_ADDITIONAL_INFO]: + if i not in data[ADDITIONAL_INFO]: print(i) raise AttributeError(i + " not found in Additional Info") - application.additional_info = data[APPLICATION_ADDITIONAL_INFO] - if not sendApplicationEmail(email, student.name, opening.company.name, data[APPLICATION_OPENING_TYPE], - data[APPLICATION_ADDITIONAL_INFO]): + application.additional_info = data[ADDITIONAL_INFO] + if not sendApplicationEmail(email, student.name, opening.company.name, data[OPENING_TYPE], + data[ADDITIONAL_INFO]): logger.error("Submit Application: Unable to Send Email") # raise RuntimeError("Unable to Send Email") From 8aa28ed4721c824db9b5ff55169324696de95626 Mon Sep 17 00:00:00 2001 From: gowtham3105 <66207607+gowtham3105@users.noreply.github.com> Date: Fri, 22 Oct 2021 20:51:56 +0530 Subject: [PATCH 2/3] Update requirements.txt --- requirements.txt | Bin 527 -> 1382 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9fcb49120f4526f94eab894e78897f7505a09e8f..505b327c5aef46f285bd72aa4cc82de8f61a6695 100644 GIT binary patch literal 1382 zcmZ{k-Ex~y41{&vnLY}c;3Q3Z(YxOEAuwQS2LlB>j`Q$Izm+(}?o7vX{3mI5wbJ3^ zy|Bp|+uLZh?d&_R2fMRJPHvy=lPNwE?a8S;z9IIN^WgE4jM9ElJ(JU0OTJKqpv=c5 zs|I5RW5-c^WA~h#jGS*m6q}F=GAqYRIEvrj#3zqu*1U z$}BurxQa?+=&S5t8LR~w3)^zUklBfv))AHe#0ecg$S+`TKoy!i3t!ZQ&{8yWw9;P4 zm5V2;Dv-r9@o%^#A5{P3dT;AXs*X00KRcIlr6&Jx_6Ta`Gb!9j{Z1;w?dal`r$TAw zJ~e1fP6ks<>EGV8Gun>b;%seaclqUtZQTKR)q~u+vjtAfXp}DHh$mEO&pNtIieu0A zFlmC}fhO^d6S0HGI^V4t{Mb{?B)pRD7Q{EZ&|y!X2Q-vmW%#P8yb=+g^1pCG$xmuV zW>k@JM$@V&?adJs-GD84imD6M$K4s6RsO`5R_th+Mfj4K20FNa)T5`t4`C@oJtnLR zJQFJNzf9WSxHkjUDVnh@J(^GMbWC2lgtunvzI2P5isZbmxn|r773rRa*P8inuw(Lp zuKLZDZ|X7TCxy=*)eI&$UmZ2LR;MR0TiKt?@0_pqPgTV}#GXm7P~(2fi!E_wNm=v~&yF)Yx?k}03{2{@fkKQ;IWyM+4eJff IJsK>30K4DHNdN!< literal 527 zcmXw0OLoH`4BT@Ucs6$0biuCM9zq7iCMA|D$V=VRS8~&(&@ewioipPlgu#ujH&7c> zP9b=Ac7ur!7i>hOhA=wsMiY@+zGMM(zIT1+&L%Fv37aB1*O^F#7;X?kCzPW}SDT>0 z1QqR_i$0$O_I`zRCe;-w0qJBTakUFVLKekA`MdvJnrxwYMpg!uel8emyNDn@h(C`{ z>T@QV3tG6hMZ*ljlhZ1u28op`vG_f?HyN&#)=S1Bp+!(|1%7r*(-mX08`Jk5LhoK= z@d5mq=&>FoqH&86CR95wQr%YfNZagH?oH<%>e~OcaDGnqM(JKqvUNx7Z7+EhC*Jjv zNI>o9+3a8#zwQ!Eu-JFf!cRvl4~9(~2$@{M`~rdNoT&f+ From 76b22ad782e838752a88d543c7fa9b76c850c450 Mon Sep 17 00:00:00 2001 From: CDC-IITDH <76999613+CDC-IITDH@users.noreply.github.com> Date: Fri, 22 Oct 2021 21:23:23 +0530 Subject: [PATCH 3/3] Delete codacy-analysis.yml --- .github/workflows/codacy-analysis.yml | 49 --------------------------- 1 file changed, 49 deletions(-) delete mode 100644 .github/workflows/codacy-analysis.yml diff --git a/.github/workflows/codacy-analysis.yml b/.github/workflows/codacy-analysis.yml deleted file mode 100644 index 824767f..0000000 --- a/.github/workflows/codacy-analysis.yml +++ /dev/null @@ -1,49 +0,0 @@ -# This workflow checks out code, performs a Codacy security scan -# and integrates the results with the -# GitHub Advanced Security code scanning feature. For more information on -# the Codacy security scan action usage and parameters, see -# https://github.com/codacy/codacy-analysis-cli-action. -# For more information on Codacy Analysis CLI in general, see -# https://github.com/codacy/codacy-analysis-cli. - -name: Codacy Security Scan - -on: - push: - branches: [ main ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ main ] - schedule: - - cron: '20 4 * * 3' - -jobs: - codacy-security-scan: - name: Codacy Security Scan - runs-on: ubuntu-latest - steps: - # Checkout the repository to the GitHub Actions runner - - name: Checkout code - uses: actions/checkout@v2 - - # Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis - - name: Run Codacy Analysis CLI - uses: codacy/codacy-analysis-cli-action@1.1.0 - with: - # Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository - # You can also omit the token and run the tools that support default configurations - project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} - verbose: true - output: results.sarif - format: sarif - # Adjust severity of non-security issues - gh-code-scanning-compat: true - # Force 0 exit code to allow SARIF file generation - # This will handover control about PR rejection to the GitHub side - max-allowed-issues: 2147483647 - - # Upload the SARIF file generated in the previous step - - name: Upload SARIF results file - uses: github/codeql-action/upload-sarif@v1 - with: - sarif_file: results.sarif