diff --git a/db.sqlite3 b/db.sqlite3 index 00afd75..61fd87d 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/recruitment/__pycache__/urls.cpython-313.pyc b/recruitment/__pycache__/urls.cpython-313.pyc index 8ea1b3f..fef6675 100644 Binary files a/recruitment/__pycache__/urls.cpython-313.pyc and b/recruitment/__pycache__/urls.cpython-313.pyc differ diff --git a/recruitment/__pycache__/views.cpython-313.pyc b/recruitment/__pycache__/views.cpython-313.pyc index 0837bdf..e73d9b1 100644 Binary files a/recruitment/__pycache__/views.cpython-313.pyc and b/recruitment/__pycache__/views.cpython-313.pyc differ diff --git a/recruitment/urls.py b/recruitment/urls.py index bd02d46..aa42625 100644 --- a/recruitment/urls.py +++ b/recruitment/urls.py @@ -77,8 +77,8 @@ urlpatterns = [ path('htmx//candidate_set_exam_date/', views.candidate_set_exam_date, name='candidate_set_exam_date'), path('htmx/bulk_candidate_move_to_exam/', views.bulk_candidate_move_to_exam, name='bulk_candidate_move_to_exam'), - # path('forms/form//submit/', views.submit_form, name='submit_form'), - # path('forms/form//', views.form_wizard_view, name='form_wizard'), + path('forms/form//submit/', views.submit_form, name='submit_form'), + path('forms/form//', views.form_wizard_view, name='form_wizard'), path('forms//submissions//', views.form_submission_details, name='form_submission_details'), path('forms/template//submissions/', views.form_template_submissions_list, name='form_template_submissions_list'), path('forms/template//all-submissions/', views.form_template_all_submissions, name='form_template_all_submissions'), @@ -91,6 +91,7 @@ urlpatterns = [ # path('api/forms/save/', views.save_form_builder, name='save_form_builder'), # path('api/forms//load/', views.load_form, name='load_form'), # path('api/forms//update/', views.update_form_builder, name='update_form_builder'), + path('jobs//calendar/', views.interview_calendar_view, name='interview_calendar'), path('jobs//calendar/interview//', views.interview_detail_view, name='interview_detail'), ] diff --git a/recruitment/views.py b/recruitment/views.py index 2e1437b..964836a 100644 --- a/recruitment/views.py +++ b/recruitment/views.py @@ -333,7 +333,7 @@ def job_detail(request, slug): status_form = JobPostingStatusForm(instance=job) image_upload_form=JobPostingImageForm(instance=job) - + # 2. Check for POST request (Status Update Submission) if request.method == 'POST': @@ -387,13 +387,13 @@ def job_image_upload(request, slug): def kaauh_career(request): - active_jobs = JobPosting.objects.select_related( - 'form_template' + active_jobs = JobPosting.objects.select_related( + 'form_template' ).filter( status='ACTIVE', form_template__is_active=True ) - + return render(request,'jobs/career.html',{'active_jobs':active_jobs}) @@ -923,7 +923,7 @@ def delete_form_template(request, template_id): def form_wizard_view(request, template_id): """Display the form as a step-by-step wizard""" - template = get_object_or_404(FormTemplate, id=template_id, is_active=True) + template = get_object_or_404(FormTemplate, pk=template_id, is_active=True) job_id = template.job.internal_job_id return render( request, @@ -1010,7 +1010,7 @@ def submit_form(request, template_id): job=submission.template.job, ) return redirect('application_success') - + except Exception as e: logger.error(f"Candidate creation failed,{e}") pass diff --git a/templates/jobs/job_detail.html b/templates/jobs/job_detail.html index daa9ce7..92a3658 100644 --- a/templates/jobs/job_detail.html +++ b/templates/jobs/job_detail.html @@ -494,13 +494,13 @@
{% comment %} STAGE 1: Applied {% endcomment %} -
-
{% trans "Applied" %}
+
{% trans "Screened" %}
{{ applied_count|default:"0" }}
@@ -508,7 +508,7 @@
{% comment %} STAGE 2: Exam {% endcomment %} -
@@ -522,7 +522,7 @@
{% comment %} STAGE 3: Interview {% endcomment %} -
diff --git a/templates/jobs/job_list.html b/templates/jobs/job_list.html index a47f532..aac62e9 100644 --- a/templates/jobs/job_list.html +++ b/templates/jobs/job_list.html @@ -89,10 +89,10 @@ .table-hover tbody tr:hover { background-color: #f3f7f9; } - + /* Optimized Main Table Column Widths (Total must be 100%) */ .table th:nth-child(1) { width: 22%; } /* Job ID (Tight) */ - + .table th:nth-child(2) { width: 12%; } /* Source (Tight) */ .table th:nth-child(3) { width: 8%; } /* Actions (Tight, icon buttons) */ .table th:nth-child(4) { width: 8%; } /* Form (Tight, icon buttons) */ @@ -114,17 +114,17 @@ text-align: center; color: #6c757d; font-size: 0.75rem; /* Even smaller font for nested headers */ - width: calc(100% / 7); + width: calc(100% / 7); } /* Explicit widths are technically defined by the 1/7 rule, but keeping them for clarity/safety */ .nested-header-table thead th:nth-child(1), .nested-header-table thead th:nth-child(2), - .nested-header-table thead th:nth-child(5) { - width: calc(100% / 7); + .nested-header-table thead th:nth-child(5) { + width: calc(100% / 7); } .nested-header-table thead th:nth-child(3), - .nested-header-table thead th:nth-child(4) { - width: calc(100% / 7 * 2); + .nested-header-table thead th:nth-child(4) { + width: calc(100% / 7 * 2); } /* Inner Nested Table (P/F) */ @@ -157,9 +157,9 @@ font-size: 0.9rem; /* Keep data readable */ border-left: 1px solid var(--kaauh-border); } - .candidate-data-cell a { - display: block; - text-decoration: none; + .candidate-data-cell a { + display: block; + text-decoration: none; padding: 0.4rem 0; /* Minimized vertical padding */ } @@ -232,7 +232,7 @@ {% trans "Source" %} {% trans "Actions" %} {% trans "Manage Forms" %} - + {% trans "Applicants Metrics" %} @@ -240,7 +240,7 @@ - + - +
{% trans "Applied" %} {% trans "Screened" %}{% trans "Exam" %} @@ -249,7 +249,7 @@
{% trans "Interview" %} @@ -285,21 +285,23 @@ - + {# CANDIDATE MANAGEMENT DATA - 7 SEPARATE COLUMNS CORRESPONDING TO THE HEADER #} - - + + @@ -313,7 +315,7 @@ - + {% comment %} Fallback/Empty State {% endcomment %} {% if not jobs and not job_list_data and not page_obj %}
- - - - - - - - - + {% if job.form_template %} + + + + + + + + + + {% endif %}
{% if job.metrics.applied %}{{ job.metrics.applied }}{% else %}-{% endif %}{% if job.metrics.screening %}{{ job.metrics.screening }}{% else %}-{% endif %}{% if job.metrics.applied %}{{ job.metrics.applied }}{% else %}-{% endif %}{% if job.metrics.screening %}{{ job.metrics.screening }}{% else %}-{% endif %} {% if job.metrics.exam_p %}{{ job.metrics.exam_p }}{% else %}-{% endif %} {% if job.metrics.exam_f %}{{ job.metrics.exam_f }}{% else %}-{% endif %} {% if job.metrics.interview_p %}{{ job.metrics.interview_p }}{% else %}-{% endif %}