From d402040b20171eb430e371200356b446b3e9198c Mon Sep 17 00:00:00 2001 From: Horilla Date: Tue, 21 Oct 2025 15:43:27 +0530 Subject: [PATCH] [UPDT] RECRUITMENT: Revert rejected candidates --- recruitment/cbv/candidates.py | 1 + .../candidate/candidate_rejection_form.html | 23 +++++++++++++++++++ recruitment/urls.py | 5 ++++ recruitment/views/views.py | 20 ++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 recruitment/templates/candidate/candidate_rejection_form.html diff --git a/recruitment/cbv/candidates.py b/recruitment/cbv/candidates.py index 61f5a916f..58d38a477 100644 --- a/recruitment/cbv/candidates.py +++ b/recruitment/cbv/candidates.py @@ -989,6 +989,7 @@ class RejectReasonFormView(HorillaFormView): form_class = RejectedCandidateForm new_display_title = "Rejected Candidate" dynamic_create_fields = [("reject_reason_id", DynamicRejectReasonFormView)] + template_name = "candidate/candidate_rejection_form.html" def get_initial(self) -> dict: initial = super().get_initial() diff --git a/recruitment/templates/candidate/candidate_rejection_form.html b/recruitment/templates/candidate/candidate_rejection_form.html new file mode 100644 index 000000000..856e9185a --- /dev/null +++ b/recruitment/templates/candidate/candidate_rejection_form.html @@ -0,0 +1,23 @@ +{% load i18n %} +{% include "generic/horilla_form.html" %} + \ No newline at end of file diff --git a/recruitment/urls.py b/recruitment/urls.py index 62a79f482..99fa2488f 100644 --- a/recruitment/urls.py +++ b/recruitment/urls.py @@ -660,6 +660,11 @@ urlpatterns = [ candidates.RejectReasonFormView.as_view(), name="add-to-rejected-candidates", ), + path( + "delete-candidate-rejection//", + views.delete_candidate_rejection, + name="delete-candidate-rejection", + ), path( "skill-zone-cand-delete/", views.skill_zone_cand_delete, diff --git a/recruitment/views/views.py b/recruitment/views/views.py index f462e8e86..218ac5164 100644 --- a/recruitment/views/views.py +++ b/recruitment/views/views.py @@ -111,6 +111,7 @@ from recruitment.models import ( Recruitment, RecruitmentGeneralSetting, RecruitmentSurvey, + RejectedCandidate, RejectReason, Resume, Skill, @@ -3861,3 +3862,22 @@ def employee_profile_interview_tab(request): ).order_by("is_today", "-interview_date", "interview_time") return render(request, "tabs/scheduled_interview.html", {"interviews": interviews}) + + +@login_required +@hx_request_required +@permission_required("recruitment.delete_rejectedcandidate") +def delete_candidate_rejection(request, rej_id): + """ + This method is used to delete candidate rejection + """ + try: + instance = RejectedCandidate.objects.filter(id=rej_id).first() + if instance: + instance.delete() + messages.success(request, "Candidate rejection deleted successfully") + else: + messages.error(request, "Candidate rejection not found") + except Exception as e: + messages.error(request, "Error occurred while deleting candidate rejection") + return HttpResponse("")