[UPDT] GENERAL: Added kwargs in path

This commit is contained in:
Horilla
2023-11-08 16:12:02 +05:30
parent a42e91b3fb
commit d65cf748cc
4 changed files with 79 additions and 36 deletions

View File

@@ -5,6 +5,7 @@ This module is used to map url path with view methods.
"""
from django.urls import path
from onboarding import views
from recruitment.models import Candidate
urlpatterns = [
path("stage-creation/<str:obj_id>", views.stage_creation, name="stage-creation"),
@@ -22,14 +23,27 @@ urlpatterns = [
name="task-update",
),
path("candidate-creation", views.candidate_creation, name="candidate-creation"),
path("candidate-update/<int:obj_id>", views.candidate_update, name="candidate-update"),
path("candidate-delete/<int:obj_id>", views.candidate_delete, name="candidate-delete"),
path("candidate-single-view/<int:id>", views.candidates_single_view, name="candidate-single-view"),
path("candidates-view", views.candidates_view, name="candidates-view"),
path("hired-candidates-view", views.hired_candidate_view, name="hired-candidates-view"),
path(
"candidate-update/<int:obj_id>", views.candidate_update, name="candidate-update"
),
path(
"candidate-delete/<int:obj_id>", views.candidate_delete, name="candidate-delete"
),
path(
"candidate-single-view/<int:id>",
views.candidates_single_view,
name="candidate-single-view",
kwargs={"model": Candidate},
),
path("candidates-view/", views.candidates_view, name="candidates-view"),
path(
"hired-candidates-view",
views.hired_candidate_view,
name="hired-candidates-view",
),
path("candidate-filter", views.candidate_filter, name="candidate-filter"),
path("email-send", views.email_send, name="email-send"),
path("onboarding-view", views.onboarding_view, name="onboarding-view"),
path("onboarding-view/", views.onboarding_view, name="onboarding-view"),
path("kanban-view", views.kanban_view, name="kanban-view"),
path(
"candidate-task-update/<int:obj_id>",
@@ -41,9 +55,16 @@ urlpatterns = [
views.candidate_stage_update,
name="candidate-stage-update",
),
path("candidate-stage-bulk-update", views.candidate_stage_bulk_update, name="candidate-stage-bulk-update"),
path("candidate-task-bulk-update", views.candidate_task_bulk_update, name="candidate-task-bulk-update"),
path(
"candidate-stage-bulk-update",
views.candidate_stage_bulk_update,
name="candidate-stage-bulk-update",
),
path(
"candidate-task-bulk-update",
views.candidate_task_bulk_update,
name="candidate-task-bulk-update",
),
path(
"stage-name-update/<int:stage_id>/",
views.stage_name_update,
@@ -72,9 +93,13 @@ urlpatterns = [
views.onboard_candidate_chart,
name="onboard-candidate-chart",
),
path("update-joining",views.update_joining,name="update-joining"),
path("view-onboarding-dashboard",views.view_dashboard,name="view-onboarding-dashboard"),
path("stage-chart",views.dashboard_stage_chart,name="stage-chart"),
path("update-joining", views.update_joining, name="update-joining"),
path(
"view-onboarding-dashboard",
views.view_dashboard,
name="view-onboarding-dashboard",
),
path("stage-chart", views.dashboard_stage_chart, name="stage-chart"),
path(
"candidate-sequence-update",
views.candidate_sequence_update,
@@ -85,6 +110,9 @@ urlpatterns = [
views.stage_sequence_update,
name="onboarding-stage-sequence-update",
),
path('send-mail/<int:candidate_id>/',views.onboarding_send_mail,name = "onboarding-send-mail"),
path(
"send-mail/<int:candidate_id>/",
views.onboarding_send_mail,
name="onboarding-send-mail",
),
]

View File

@@ -402,11 +402,12 @@ def candidate_delete(request, obj_id):
)
return redirect(candidates_view)
@login_required
@permission_required("recruitment.view_candidate")
def candidates_single_view(request,id):
def candidates_single_view(request, id, **kwargs):
"""
Canidate individual view for the onboarded candidates
Candidate individual view for the onboarding candidates
"""
candidate = Candidate.objects.get(id=id)
if not CandidateStage.objects.filter(candidate_id=candidate).exists():
@@ -434,13 +435,13 @@ def candidates_single_view(request,id):
candidate_id=candidate, onboarding_task_id=task
).save()
recruitment =candidate.recruitment_id
recruitment = candidate.recruitment_id
choices = CandidateTask.choice
context = {
"recruitment": recruitment,
"choices": choices,
"candidate": candidate,
}
"recruitment": recruitment,
"choices": choices,
"candidate": candidate,
}
return render(
request,
"onboarding/single_view.html",
@@ -543,12 +544,12 @@ def email_send(request):
if request.method != "POST":
return JsonResponse("", safe=False)
candidates = request.POST.get("candidates")
json_mylist = json.loads(candidates)
if len(json_mylist) <= 0:
json_list = json.loads(candidates)
if len(json_list) <= 0:
return JsonResponse(
{"message": _("No candidate has chosen."), "tags": "danger"}
)
for cand_id in json_mylist:
for cand_id in json_list:
candidate = Candidate.objects.get(id=cand_id)
if candidate.start_onboard is False:
token = secrets.token_hex(15)
@@ -1035,8 +1036,10 @@ def candidate_stage_bulk_update(request):
recruitment = Recruitment.objects.get(id=int(recrutment_id))
choices = CandidateTask.choice
count = CandidateStage.objects.filter(candidate_id__id__in=candidate_id_list).update(onboarding_stage_id = stage)
count = CandidateStage.objects.filter(
candidate_id__id__in=candidate_id_list
).update(onboarding_stage_id=stage)
response = render(
request,
"onboarding/onboarding_table.html",
@@ -1048,7 +1051,8 @@ def candidate_stage_bulk_update(request):
)
return HttpResponse(
response.content.decode("utf-8") + '<div><div class="oh-alert-container"><div class="oh-alert oh-alert--animated oh-alert--info">candidate stage updated successfully</div> </div></div>'
response.content.decode("utf-8")
+ '<div><div class="oh-alert-container"><div class="oh-alert oh-alert--animated oh-alert--info">candidate stage updated successfully</div> </div></div>'
)
@@ -1061,7 +1065,9 @@ def candidate_task_bulk_update(request):
task = request.POST["task"]
status = request.POST["status"]
count = CandidateTask.objects.filter(candidate_id__id__in=candidate_id_list,onboarding_task_id = task).update(status=status)
count = CandidateTask.objects.filter(
candidate_id__id__in=candidate_id_list, onboarding_task_id=task
).update(status=status)
# messages.success(request,f"{count} candidate's task status updated successfully")
return JsonResponse(
@@ -1099,11 +1105,12 @@ def hired_candidate_chart(request):
"data": data,
"background_color": background_color,
"border_color": border_color,
"message": _("No data Found...")
"message": _("No data Found..."),
},
safe=False,
)
@login_required
def onboard_candidate_chart(request):
"""
@@ -1136,7 +1143,7 @@ def onboard_candidate_chart(request):
"data": data,
"background_color": background_color,
"border_color": border_color,
"message": _("No data Found...")
"message": _("No data Found..."),
},
safe=False,
)

View File

@@ -5,6 +5,7 @@ This module is used to map url path with view methods.
"""
from django.urls import path
from recruitment.models import Candidate
from recruitment.views import views
import recruitment.views.actions
import recruitment.views.dashboard
@@ -39,7 +40,7 @@ urlpatterns = [
recruitment.views.actions.recruitment_delete,
name="recruitment-delete",
),
path("pipeline", views.recruitment_pipeline, name="pipeline"),
path("pipeline/", views.recruitment_pipeline, name="pipeline"),
path("pipeline-card", views.recruitment_pipeline_card, name="pipeline-card"),
path(
"pipeline-search-candidate",
@@ -113,7 +114,7 @@ urlpatterns = [
name="note-delete-individual",
),
path("send-mail/<int:cand_id>/", views.form_send_mail, name="send-mail"),
path("candidate-view", views.candidate_view, name="candidate-view"),
path("candidate-view/", views.candidate_view, name="candidate-view"),
path(
"candidate-filter-view",
recruitment.views.search.candidate_filter_view,
@@ -131,11 +132,13 @@ urlpatterns = [
"candidate-view/<int:cand_id>/",
views.candidate_view_individual,
name="candidate-view-individual",
kwargs={'model':Candidate}
),
path(
"candidate-update/<int:cand_id>/",
views.candidate_update,
name="rec-candidate-update",
kwargs={'model':Candidate}
),
path(
"delete-profile-image/<int:obj_id>/",

View File

@@ -33,7 +33,12 @@ from horilla.decorators import permission_required, login_required, hx_request_r
from base.methods import get_key_instances
from recruitment.views.paginator_qry import paginator_qry
from recruitment.models import Recruitment, Candidate, Stage, StageNote
from recruitment.filters import CandidateFilter, CandidateReGroup, RecruitmentFilter, StageFilter
from recruitment.filters import (
CandidateFilter,
CandidateReGroup,
RecruitmentFilter,
StageFilter,
)
from recruitment.methods import recruitment_manages
from recruitment.decorators import manager_can_enter, recruitment_manager_can_enter
from recruitment.forms import (
@@ -843,7 +848,7 @@ def candidate_view(request):
"export_obj": export_obj,
"view_type": view_type,
"filter_dict": data_dict,
"gp_fields" : CandidateReGroup.fields
"gp_fields": CandidateReGroup.fields,
},
)
@@ -938,7 +943,7 @@ def candidate_view_card(request):
@login_required
@permission_required(perm="recruitment.view_candidate")
def candidate_view_individual(request, cand_id):
def candidate_view_individual(request, cand_id, **kwargs):
"""
This method is used to view profile of candidate.
"""
@@ -948,7 +953,7 @@ def candidate_view_individual(request, cand_id):
@login_required
@manager_can_enter(perm="recruitment.change_candidate")
def candidate_update(request, cand_id):
def candidate_update(request, cand_id, **kwargs):
"""
Used to update or change the candidate
Args: