From f99286194716743515a3145173904140643d0bdf Mon Sep 17 00:00:00 2001 From: ismail Date: Mon, 13 Oct 2025 17:33:49 +0300 Subject: [PATCH] more updates --- db.sqlite3 | Bin 696320 -> 647168 bytes recruitment/__pycache__/urls.cpython-313.pyc | Bin 7734 -> 7982 bytes recruitment/__pycache__/views.cpython-313.pyc | Bin 50975 -> 50975 bytes recruitment/urls.py | 5 +- recruitment/views.py | 12 ++-- templates/jobs/job_detail.html | 8 +-- templates/jobs/job_list.html | 54 +++++++++--------- 7 files changed, 41 insertions(+), 38 deletions(-) diff --git a/db.sqlite3 b/db.sqlite3 index 00afd75057ad98bbcedabb2f5926e00e3c723f9a..61fd87d92dbb72657eca867524aa529344be7e6c 100644 GIT binary patch delta 8391 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 byJMRl2hL;g^9|s>LmivYF4hjqC)9rf!Bes1 delta 45513 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 Aod5s; delta 740 zcmXAnO=#0#7{{A5tLsKv#Lnik-TH~RmLVK~b~)p}$6-(q!V*a{6}Q<#?GKDe^Xc zxpW^p!Ksvw{>hBC#l0OfkVb*@Kt{|WcB*=w4O6OKWjVqYEAWRaF`GC58cVb`zgINW0(S`@T!r)WlH6qSty1u?gAOx5e0K</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 %}