diff --git a/recruitment/templates/candidate/individual.html b/recruitment/templates/candidate/individual.html index 903317a26..6c6527883 100644 --- a/recruitment/templates/candidate/individual.html +++ b/recruitment/templates/candidate/individual.html @@ -365,7 +365,6 @@ hx-target="#modalContent" >{{forloop.counter}}. {{note.title}} - {% if perms.recruitment.delete_stagenote %} - {% endif %} {{forloop.counter}}. {{note.title}} - {% if perms.recruitment.delete_stagenote %} + - {% endif %} + + {% if perms.recruitment.delete_recruitmentsurvey or perms.recruitment.change_recruitmentsurvey %} + {% if perms.recruitment.change_recruitmentsurvey %} {% trans "Edit" %} + {% endif %} + {% if perms.recruitment.delete_recruitmentsurvey %} {% trans "Delete" %} + {% endif %} + {% endif %} {% endfor %} - + {% if perms.recruitment.add_recruitmentsurvey %} {% trans "Add" %} + {% endif %} - {% if perms.add_recruitmentsurvey %} + {% if perms.recruitment.add_recruitmentsurvey %} - - - - {% trans "Edit" %} - - - {% trans "Delete" %} - + {% if perms.recruitment.change_recruitmentsurvey and perms.recruitment.delete_recruitmentsurvey %} + + + + {% trans "Edit" %} + + + {% trans "Delete" %} + + + + {% else %} + + {% if perms.recruitment.change_recruitmentsurvey %} + + + {% trans "Edit" %} + + {% endif %} + {% if perms.recruitment.delete_recruitmentsurvey %} + + {% trans "Delete" %} + + {% endif %} + {% endif %} \ No newline at end of file diff --git a/recruitment/views/actions.py b/recruitment/views/actions.py index 88eef3663..b0d1f128d 100644 --- a/recruitment/views/actions.py +++ b/recruitment/views/actions.py @@ -9,13 +9,14 @@ import json from django.contrib import messages from django.db.models import ProtectedError from django.contrib.auth.models import Permission -from django.http import HttpResponseRedirect, JsonResponse +from django.http import HttpResponse, HttpResponseRedirect, JsonResponse from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext as __ from django.views.decorators.http import require_http_methods from django.shortcuts import render, redirect from employee.models import Employee from horilla.decorators import login_required, permission_required +from recruitment.decorators import manager_can_enter, recruitment_manager_can_enter from notifications.signals import notify from recruitment.models import Candidate, Recruitment, Stage, StageNote from recruitment.views.paginator_qry import paginator_qry @@ -101,7 +102,7 @@ def recruitment_delete_pipeline(request, rec_id): @login_required -@permission_required(perm="recruitment.delete_stagenote") +@manager_can_enter(perm="recruitment.delete_stagenote") def note_delete(request, note_id): """ This method is used to delete the stage note @@ -120,7 +121,7 @@ def note_delete(request, note_id): @login_required -@permission_required(perm="recruitment.delete_stagenote") +@manager_can_enter(perm="recruitment.delete_stagenote") def note_delete_individual(request, note_id): """ This method is used to delete the stage note @@ -128,11 +129,14 @@ def note_delete_individual(request, note_id): note = StageNote.objects.get(id=note_id) cand_id = note.candidate_id.id note.delete() - return redirect("view-note", cand_id=cand_id) + messages.success(request, _("Note deleted.")) + # return redirect("view-note", cand_id=cand_id) + return HttpResponse("") + @login_required -@permission_required(perm="recruitment.delete_stage") +@manager_can_enter(perm="recruitment.delete_stage") @require_http_methods(["POST", "DELETE"]) def stage_delete(request, stage_id): """ @@ -276,7 +280,7 @@ def candidate_bulk_archive(request): @login_required -@permission_required(perm="recruitment.change_stage") +@manager_can_enter(perm="recruitment.change_stage") def remove_stage_manager(request, mid, sid): """ This method is used to remove selected stage manager and also removing the given @@ -310,7 +314,7 @@ def remove_stage_manager(request, mid, sid): @login_required -@permission_required(perm="recruitment.change_recruitment") +@manager_can_enter(perm="recruitment.change_recruitment") @require_http_methods(["POST"]) def remove_recruitment_manager(request, mid, rid): """ diff --git a/recruitment/views/surveys.py b/recruitment/views/surveys.py index 89d77c027..7312a3e2a 100644 --- a/recruitment/views/surveys.py +++ b/recruitment/views/surveys.py @@ -268,7 +268,7 @@ def application_form(request): @login_required -@permission_required(perm="recruitment.change_recruitmentsurvey") +@permission_required(perm="recruitment.view_recruitmentsurvey") def single_survey(request, survey_id): """ This view method is used to single view of question template diff --git a/recruitment/views/views.py b/recruitment/views/views.py index 48067b313..8bc6da05b 100644 --- a/recruitment/views/views.py +++ b/recruitment/views/views.py @@ -615,7 +615,7 @@ def create_note(request, cand_id=None): @login_required -@permission_required(perm="recruitment.change_stagenote") +@manager_can_enter(perm="recruitment.change_stagenote") def note_update(request, note_id): """ This method is used to update the stage not @@ -638,7 +638,7 @@ def note_update(request, note_id): @login_required -@permission_required(perm="recruitment.change_stagenote") +@manager_can_enter(perm="recruitment.change_stagenote") def note_update_individual(request, note_id): """ This method is used to update the stage not @@ -684,7 +684,7 @@ def candidate_schedule_date_update(request): @login_required -@permission_required(perm="recruitment.add_stage") +@manager_can_enter(perm="recruitment.add_stage") def stage(request): """ This method is used to create stages, also several permission assigned to the stage managers @@ -757,7 +757,7 @@ def stage_view(request): @login_required -@permission_required(perm="recruitment.change_stage") +@manager_can_enter(perm="recruitment.change_stage") @hx_request_required def stage_update(request, stage_id): """