Revert ".."
This reverts commit 47807ace90d52a389399f9c926da61c49505615d.
This commit is contained in:
parent
2679d0a0f5
commit
a18baa0d73
@ -93,26 +93,8 @@
|
|||||||
<i class="fas fa-tachometer-alt me-1"></i> {% trans "Dashboard" %}
|
<i class="fas fa-tachometer-alt me-1"></i> {% trans "Dashboard" %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link text-white" href="{% url 'kaauh_career' %}">
|
|
||||||
<i class="fas fa-hand me-1"></i> {% trans "KAAUH Careers" %}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% if request.user.is_authenticated %}
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link text-white" href="{% url 'user_detail' request.user.pk %}">
|
|
||||||
<i class="fas fa-user-circle me-1"></i> <span>{% trans "My Profile" %}</span></a></li>
|
|
||||||
{% endif %}
|
|
||||||
<li class="nav-item me-2">
|
|
||||||
<a class="nav-link text-white" href="{% url 'message_list' %}">
|
|
||||||
<i class="fas fa-envelope"></i> <span>{% trans "Messages" %}</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle text-white" href="#" role="button" data-bs-toggle="dropdown"
|
<a class="nav-link dropdown-toggle text-white" href="#" role="button" data-bs-toggle="dropdown"
|
||||||
data-bs-offset="0, 8" aria-expanded="false" aria-label="{% trans 'Toggle language menu' %}">
|
data-bs-offset="0, 8" aria-expanded="false" aria-label="{% trans 'Toggle language menu' %}">
|
||||||
@ -138,6 +120,16 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
{% if request.user.is_authenticated %}
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link text-white" href="{% url 'user_detail' request.user.pk %}">
|
||||||
|
<i class="fas fa-user-circle me-1"></i> <span>{% trans "My Profile" %}</span></a></li>
|
||||||
|
{% endif %}
|
||||||
|
<li class="nav-item me-2">
|
||||||
|
<a class="nav-link text-white" href="{% url 'message_list' %}">
|
||||||
|
<i class="fas fa-envelope"></i> <span>{% trans "Messages" %}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="nav-item ms-3">
|
<li class="nav-item ms-3">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
{% block customCSS %}
|
{% block customCSS %}
|
||||||
<style>
|
<style>
|
||||||
/* Kaauh Theme Variables - Assuming these are defined in portal_base */
|
/* Kaauh Theme Variables - Assuming these are defined in portal_base */
|
||||||
:root {
|
:root {
|
||||||
/* Assuming these are carried from your global CSS/base template */
|
/* Assuming these are carried from your global CSS/base template */
|
||||||
--kaauh-teal: #00636e;
|
--kaauh-teal: #00636e;
|
||||||
--kaauh-teal-dark: #004a53;
|
--kaauh-teal-dark: #004a53;
|
||||||
@ -16,21 +16,19 @@
|
|||||||
--kaauh-info: #17a2b8;
|
--kaauh-info: #17a2b8;
|
||||||
--kaauh-danger: #dc3545;
|
--kaauh-danger: #dc3545;
|
||||||
--kaauh-warning: #ffc107;
|
--kaauh-warning: #ffc107;
|
||||||
--kaauh-secondary: #6c757d;
|
--kaauh-secondary: #6c757d; /* Added secondary color for general use */
|
||||||
/* Added secondary color for general use */
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Theme Utilities */
|
/* Theme Utilities */
|
||||||
.bg-primary-theme {
|
.bg-primary-theme {
|
||||||
background-color: var(--kaauh-teal) !important;
|
background-color: var(--kaauh-teal) !important;
|
||||||
}
|
}
|
||||||
|
.text-primary-theme {
|
||||||
.text-primary-theme {
|
|
||||||
color: var(--kaauh-teal) !important;
|
color: var(--kaauh-teal) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 1. Application Progress Timeline (Improved Spacing) */
|
/* 1. Application Progress Timeline (Improved Spacing) */
|
||||||
.application-progress {
|
.application-progress {
|
||||||
position: relative;
|
position: relative;
|
||||||
/* Use flexbox for layout */
|
/* Use flexbox for layout */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -38,25 +36,12 @@
|
|||||||
gap: 1.5rem;
|
gap: 1.5rem;
|
||||||
/* Center the timeline content */
|
/* Center the timeline content */
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin: 2rem 0 3rem;
|
margin: 2rem 0 3rem; /* Extra spacing below timeline */
|
||||||
/* Extra spacing below timeline */
|
|
||||||
padding: 0 1rem;
|
padding: 0 1rem;
|
||||||
overflow-x: auto;
|
overflow-x: auto; /* Allow horizontal scroll for small screens */
|
||||||
/* Allow horizontal scroll for small screens */
|
}
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
/* Smooth scrolling on iOS */
|
|
||||||
padding-bottom: 1rem;
|
|
||||||
/* Space for scrollbar if needed */
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
.progress-step {
|
||||||
.application-progress {
|
|
||||||
justify-content: flex-start;
|
|
||||||
/* Align start to allow scrolling */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.progress-step {
|
|
||||||
/* Use fixed width or rely on content width for cleaner flow */
|
/* Use fixed width or rely on content width for cleaner flow */
|
||||||
position: relative;
|
position: relative;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@ -64,10 +49,10 @@
|
|||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
/* Added min-width for label spacing */
|
/* Added min-width for label spacing */
|
||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Timeline Connector Line */
|
/* Timeline Connector Line */
|
||||||
.progress-step::before {
|
.progress-step::before {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 20px;
|
top: 20px;
|
||||||
@ -77,23 +62,23 @@
|
|||||||
height: 2px;
|
height: 2px;
|
||||||
background: var(--kaauh-border);
|
background: var(--kaauh-border);
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hide line for the first step */
|
/* Hide line for the first step */
|
||||||
.progress-step:first-child::before {
|
.progress-step:first-child::before {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.completed::before {
|
.progress-step.completed::before {
|
||||||
background: var(--kaauh-success);
|
background: var(--kaauh-success);
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.active::before {
|
.progress-step.active::before {
|
||||||
/* Line leading up to the active step should be completed/success color */
|
/* Line leading up to the active step should be completed/success color */
|
||||||
background: var(--kaauh-success);
|
background: var(--kaauh-success);
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-icon {
|
.progress-icon {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
@ -105,96 +90,90 @@
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2; /* Ensure icon covers the line */
|
||||||
/* Ensure icon covers the line */
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.progress-step.completed .progress-icon {
|
.progress-step.completed .progress-icon {
|
||||||
background: var(--kaauh-success);
|
background: var(--kaauh-success);
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.active .progress-icon {
|
.progress-step.active .progress-icon {
|
||||||
background: var(--kaauh-teal);
|
background: var(--kaauh-teal);
|
||||||
color: white;
|
color: white;
|
||||||
/* Add a subtle shadow for focus */
|
/* Add a subtle shadow for focus */
|
||||||
box-shadow: 0 0 0 4px rgba(0, 99, 110, 0.2);
|
box-shadow: 0 0 0 4px rgba(0, 99, 110, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-label {
|
.progress-label {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.completed .progress-label,
|
.progress-step.completed .progress-label,
|
||||||
.progress-step.active .progress-label {
|
.progress-step.active .progress-label {
|
||||||
color: var(--kaauh-primary-text);
|
color: var(--kaauh-primary-text);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Status Badges - Using Kaauh Theme */
|
/* Status Badges - Using Kaauh Theme */
|
||||||
.status-badge {
|
.status-badge {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Card Header Consistency */
|
/* Card Header Consistency */
|
||||||
.card-header {
|
.card-header{
|
||||||
padding: 1rem 1.5rem;
|
padding: 1rem 1.5rem; /* Increased padding */
|
||||||
/* Increased padding */
|
|
||||||
border-top-left-radius: 0.75rem;
|
border-top-left-radius: 0.75rem;
|
||||||
border-top-right-radius: 0.75rem;
|
border-top-right-radius: 0.75rem;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Table Actions Theme */
|
/* Table Actions Theme */
|
||||||
.table .btn-primary {
|
.table .btn-primary {
|
||||||
background-color: var(--kaauh-teal);
|
background-color: var(--kaauh-teal);
|
||||||
border-color: var(--kaauh-teal);
|
border-color: var(--kaauh-teal);
|
||||||
}
|
}
|
||||||
|
.table .btn-primary:hover {
|
||||||
.table .btn-primary:hover {
|
|
||||||
background-color: var(--kaauh-teal-dark);
|
background-color: var(--kaauh-teal-dark);
|
||||||
border-color: var(--kaauh-teal-dark);
|
border-color: var(--kaauh-teal-dark);
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-main-action {
|
.btn-main-action {
|
||||||
background-color: var(--kaauh-teal);
|
background-color: var(--kaauh-teal);
|
||||||
border-color: var(--kaauh-teal);
|
border-color: var(--kaauh-teal);
|
||||||
color: white;
|
color: white;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
}
|
}
|
||||||
|
.btn-main-action:hover {
|
||||||
.btn-main-action:hover {
|
|
||||||
background-color: var(--kaauh-teal-dark);
|
background-color: var(--kaauh-teal-dark);
|
||||||
border-color: var(--kaauh-teal-dark);
|
border-color: var(--kaauh-teal-dark);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Style for action cards to make text smaller */
|
/* Style for action cards to make text smaller */
|
||||||
.action-card .card-body h6 {
|
.action-card .card-body h6 {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
.action-card .card-body p {
|
||||||
.action-card .card-body p {
|
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
margin-bottom: 0.75rem;
|
margin-bottom: 0.75rem;
|
||||||
}
|
}
|
||||||
|
.action-card .card-body {
|
||||||
.action-card .card-body {
|
|
||||||
padding: 1.5rem 1rem;
|
padding: 1.5rem 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Custom Alert for Document Review */
|
/* Custom Alert for Document Review */
|
||||||
.alert-purple {
|
.alert-purple {
|
||||||
background-color: #e5e0ff;
|
background-color: #e5e0ff;
|
||||||
border-color: #c9c0ff;
|
border-color: #c9c0ff;
|
||||||
color: #5d49a3;
|
color: #5d49a3;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
@ -206,8 +185,7 @@
|
|||||||
<a href="{% url 'candidate_portal_dashboard' %}" class=" text-decoration-none text-secondary">{% trans "Dashboard" %}</a>
|
<a href="{% url 'candidate_portal_dashboard' %}" class=" text-decoration-none text-secondary">{% trans "Dashboard" %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="breadcrumb-item">
|
<li class="breadcrumb-item">
|
||||||
<a href="{% url 'candidate_portal_dashboard' %}#applications"
|
<a href="{% url 'candidate_portal_dashboard' %}#applications" class="text-secondary text-decoration">{% trans "My Applications" %}</a>
|
||||||
class="text-secondary text-decoration-none">{% trans "My Applications" %}</a>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="breadcrumb-item active" aria-current="page" style="
|
<li class="breadcrumb-item active" aria-current="page" style="
|
||||||
color: #F43B5E; /* Rosy Accent Color */
|
color: #F43B5E; /* Rosy Accent Color */
|
||||||
@ -223,7 +201,7 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="kaauh-card">
|
<div class="kaauh-card">
|
||||||
<div class="card-header bg-primary-theme text-white">
|
<div class="card-header bg-primary-theme text-white">
|
||||||
<div class="row align-items-center gy-2">
|
<div class="row align-items-center">
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<h4 class="mb-1">
|
<h4 class="mb-1">
|
||||||
<i class="fas fa-briefcase me-2"></i>
|
<i class="fas fa-briefcase me-2"></i>
|
||||||
@ -233,9 +211,8 @@
|
|||||||
<small>{% trans "Application ID:" %} {{ application.slug }}</small>
|
<small>{% trans "Application ID:" %} {{ application.slug }}</small>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4 text-md-end text-start">
|
<div class="col-md-4 text-end">
|
||||||
<div class="d-inline-block p-1 rounded-pill"
|
<div class="d-inline-block p-1 rounded-pill" style="background-color: rgba(255, 255, 255, 0.2);">
|
||||||
style="background-color: rgba(255, 255, 255, 0.2);">
|
|
||||||
<span class="status-badge status-{{ application.stage }}">
|
<span class="status-badge status-{{ application.stage }}">
|
||||||
{{ application.get_stage_display }}
|
{{ application.get_stage_display }}
|
||||||
</span>
|
</span>
|
||||||
@ -245,8 +222,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-body pt-5">
|
<div class="card-body pt-5">
|
||||||
<div class="application-progress">
|
<div class="application-progress">
|
||||||
<div class="progress-step {% if application.stage != 'Applied' and application.stage != 'Rejected' %}completed{% else %}active{% endif %}"
|
<div class="progress-step {% if application.stage != 'Applied' and application.stage != 'Rejected' %}completed{% else %}active{% endif %}" style="flex: 0 0 auto;">
|
||||||
style="flex: 0 0 auto;">
|
|
||||||
<div class="progress-icon">
|
<div class="progress-icon">
|
||||||
<i class="fas fa-paper-plane"></i>
|
<i class="fas fa-paper-plane"></i>
|
||||||
</div>
|
</div>
|
||||||
@ -254,8 +230,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if application.stage in 'Exam,Interview,Document Review,Offer,Hired,Rejected' %}
|
{% if application.stage in 'Exam,Interview,Document Review,Offer,Hired,Rejected' %}
|
||||||
<div class="progress-step {% if application.stage not in 'Applied,Exam' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Exam' %}active{% endif %}"
|
<div class="progress-step {% if application.stage not in 'Applied,Exam' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Exam' %}active{% endif %}" style="flex: 0 0 auto;">
|
||||||
style="flex: 0 0 auto;">
|
|
||||||
<div class="progress-icon">
|
<div class="progress-icon">
|
||||||
<i class="fas fa-clipboard-check"></i>
|
<i class="fas fa-clipboard-check"></i>
|
||||||
</div>
|
</div>
|
||||||
@ -264,8 +239,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if application.stage in 'Interview,Document Review,Offer,Hired,Rejected' %}
|
{% if application.stage in 'Interview,Document Review,Offer,Hired,Rejected' %}
|
||||||
<div class="progress-step {% if application.stage not in 'Applied,Exam,Interview' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Interview' %}active{% endif %}"
|
<div class="progress-step {% if application.stage not in 'Applied,Exam,Interview' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Interview' %}active{% endif %}" style="flex: 0 0 auto;">
|
||||||
style="flex: 0 0 auto;">
|
|
||||||
<div class="progress-icon">
|
<div class="progress-icon">
|
||||||
<i class="fas fa-video"></i>
|
<i class="fas fa-video"></i>
|
||||||
</div>
|
</div>
|
||||||
@ -274,8 +248,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if application.stage in 'Document Review,Offer,Hired,Rejected' %}
|
{% if application.stage in 'Document Review,Offer,Hired,Rejected' %}
|
||||||
<div class="progress-step {% if application.stage not in 'Applied,Exam,Interview,Document Review' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Document Review' %}active{% endif %}"
|
<div class="progress-step {% if application.stage not in 'Applied,Exam,Interview,Document Review' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Document Review' %}active{% endif %}" style="flex: 0 0 auto;">
|
||||||
style="flex: 0 0 auto;">
|
|
||||||
<div class="progress-icon">
|
<div class="progress-icon">
|
||||||
<i class="fas fa-file-alt"></i>
|
<i class="fas fa-file-alt"></i>
|
||||||
</div>
|
</div>
|
||||||
@ -284,8 +257,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if application.stage in 'Offer,Hired,Rejected' %}
|
{% if application.stage in 'Offer,Hired,Rejected' %}
|
||||||
<div class="progress-step {% if application.stage not in 'Applied,Exam,Interview,Document Review,Offer' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Offer' %}active{% endif %}"
|
<div class="progress-step {% if application.stage not in 'Applied,Exam,Interview,Document Review,Offer' and application.stage != 'Rejected' %}completed{% elif application.stage == 'Offer' %}active{% endif %}" style="flex: 0 0 auto;">
|
||||||
style="flex: 0 0 auto;">
|
|
||||||
<div class="progress-icon">
|
<div class="progress-icon">
|
||||||
<i class="fas fa-handshake"></i>
|
<i class="fas fa-handshake"></i>
|
||||||
</div>
|
</div>
|
||||||
@ -294,40 +266,38 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if application.stage in 'Hired,Rejected' %}
|
{% if application.stage in 'Hired,Rejected' %}
|
||||||
<div class="progress-step {% if application.stage == 'Hired' %}completed{% elif application.stage == 'Rejected' %}active{% endif %}"
|
<div class="progress-step {% if application.stage == 'Hired' %}completed{% elif application.stage == 'Rejected' %}active{% endif %}" style="flex: 0 0 auto;">
|
||||||
style="flex: 0 0 auto;">
|
|
||||||
<div class="progress-icon">
|
<div class="progress-icon">
|
||||||
<i
|
<i class="fas {% if application.stage == 'Hired' %}fa-trophy{% else %}fa-times-circle{% endif %}"></i>
|
||||||
class="fas {% if application.stage == 'Hired' %}fa-trophy{% else %}fa-times-circle{% endif %}"></i>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="progress-label">{% trans "Final Status" %}</div>
|
<div class="progress-label">{% trans "Final Status" %}</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mt-4 g-3">
|
<div class="row mt-4 g-4">
|
||||||
<div class="col-6 col-md-3">
|
<div class="col-md-3">
|
||||||
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
||||||
<i class="fas fa-calendar-alt text-primary-theme fa-2x mb-2"></i>
|
<i class="fas fa-calendar-alt text-primary-theme fa-2x mb-2"></i>
|
||||||
<h6 class="text-muted small">{% trans "Applied Date" %}</h6>
|
<h6 class="text-muted small">{% trans "Applied Date" %}</h6>
|
||||||
<p class="mb-0 fw-bold">{{ application.created_at|date:"M d, Y" }}</p>
|
<p class="mb-0 fw-bold">{{ application.created_at|date:"M d, Y" }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 col-md-3">
|
<div class="col-md-3">
|
||||||
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
||||||
<i class="fas fa-building text-info fa-2x mb-2"></i>
|
<i class="fas fa-building text-info fa-2x mb-2"></i>
|
||||||
<h6 class="text-muted small">{% trans "Department" %}</h6>
|
<h6 class="text-muted small">{% trans "Department" %}</h6>
|
||||||
<p class="mb-0 fw-bold">{{ application.job.department|default:"-" }}</p>
|
<p class="mb-0 fw-bold">{{ application.job.department|default:"-" }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 col-md-3">
|
<div class="col-md-3">
|
||||||
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
||||||
<i class="fas fa-briefcase text-success fa-2x mb-2"></i>
|
<i class="fas fa-briefcase text-success fa-2x mb-2"></i>
|
||||||
<h6 class="text-muted small">{% trans "Job Type" %}</h6>
|
<h6 class="text-muted small">{% trans "Job Type" %}</h6>
|
||||||
<p class="mb-0 fw-bold">{{ application.get_job_type_display }}</p>
|
<p class="mb-0 fw-bold">{{ application.get_job_type_display }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 col-md-3">
|
<div class="col-md-3">
|
||||||
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
<div class="text-center p-3 bg-light rounded h-100 shadow-sm">
|
||||||
<i class="fas fa-map-marker-alt text-warning fa-2x mb-2"></i>
|
<i class="fas fa-map-marker-alt text-warning fa-2x mb-2"></i>
|
||||||
<h6 class="text-muted small">{% trans "Location" %}</h6>
|
<h6 class="text-muted small">{% trans "Location" %}</h6>
|
||||||
@ -340,9 +310,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-5 g-3">
|
<div class="row mb-5">
|
||||||
<div class="col-12 col-md-6">
|
<div class="col-md-6 col-6">
|
||||||
<div class="kaauh-card h-100 shadow-sm action-card">
|
<div class="kaauh-card h-50 shadow-sm action-card">
|
||||||
<div class="card-body text-center mb-4">
|
<div class="card-body text-center mb-4">
|
||||||
<i class="fas fa-arrow-left fa-2x text-primary-theme mb-3"></i>
|
<i class="fas fa-arrow-left fa-2x text-primary-theme mb-3"></i>
|
||||||
<h6>{% trans "Go to Dashboard" %}</h6>
|
<h6>{% trans "Go to Dashboard" %}</h6>
|
||||||
@ -355,13 +325,15 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if application.resume %}
|
{% if application.resume %}
|
||||||
<div class="col-12 col-md-6">
|
<div class="col-md-6 col-6">
|
||||||
<div class="kaauh-card h-100 shadow-sm action-card">
|
<div class="kaauh-card h-50 shadow-sm action-card">
|
||||||
<div class="card-body text-center mb-4">
|
<div class="card-body text-center mb-4">
|
||||||
<i class="fas fa-file-download fa-2x text-success mb-3"></i>
|
<i class="fas fa-file-download fa-2x text-success mb-3"></i>
|
||||||
<h6>{% trans "Download Resume" %}</h6>
|
<h6>{% trans "Download Resume" %}</h6>
|
||||||
<p class="text-muted small">{% trans "Get your submitted file" %}</p>
|
<p class="text-muted small">{% trans "Get your submitted file" %}</p>
|
||||||
<a href="{{ application.resume.url }}" target="_blank" class="btn btn-main-action btn-sm w-100">
|
<a href="{{ application.resume.url }}"
|
||||||
|
target="_blank"
|
||||||
|
class="btn btn-main-action btn-sm w-100">
|
||||||
<i class="fas fa-download me-2"></i>
|
<i class="fas fa-download me-2"></i>
|
||||||
{% trans "Download" %}
|
{% trans "Download" %}
|
||||||
</a>
|
</a>
|
||||||
@ -422,7 +394,8 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if interview.zoom_meeting and interview.zoom_meeting.join_url %}
|
{% if interview.zoom_meeting and interview.zoom_meeting.join_url %}
|
||||||
<a href="{{ interview.zoom_meeting.join_url }}" target="_blank"
|
<a href="{{ interview.zoom_meeting.join_url }}"
|
||||||
|
target="_blank"
|
||||||
class="btn btn-sm btn-primary">
|
class="btn btn-sm btn-primary">
|
||||||
<i class="fas fa-video me-1"></i>
|
<i class="fas fa-video me-1"></i>
|
||||||
{% trans "Join" %}
|
{% trans "Join" %}
|
||||||
@ -433,8 +406,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if interview.zoom_meeting and interview.zoom_meeting.join_url %}
|
{% if interview.zoom_meeting and interview.zoom_meeting.join_url %}
|
||||||
<button class="btn btn-sm btn-outline-primary"
|
<button class="btn btn-sm btn-outline-primary" onclick="addToCalendar({{ interview.interview_date|date:'Y' }}, {{ interview.interview_date|date:'m' }}, {{ interview.interview_date|date:'d' }}, '{{ interview.interview_time|time:'H:i' }}', '{{ application.job.title }}')">
|
||||||
onclick="addToCalendar({{ interview.interview_date|date:'Y' }}, {{ interview.interview_date|date:'m' }}, {{ interview.interview_date|date:'d' }}, '{{ interview.interview_time|time:'H:i' }}', '{{ application.job.title }}')">
|
|
||||||
<i class="fas fa-calendar-plus me-1"></i>
|
<i class="fas fa-calendar-plus me-1"></i>
|
||||||
{% trans "Add to Calendar" %}
|
{% trans "Add to Calendar" %}
|
||||||
</button>
|
</button>
|
||||||
@ -470,8 +442,7 @@
|
|||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<button class="btn btn-sm btn-light" data-bs-toggle="modal"
|
<button class="btn btn-sm btn-light" data-bs-toggle="modal" data-bs-target="#uploadDocumentModal">
|
||||||
data-bs-target="#uploadDocumentModal">
|
|
||||||
<i class="fas fa-plus me-1"></i>
|
<i class="fas fa-plus me-1"></i>
|
||||||
{% trans "Upload Document" %}
|
{% trans "Upload Document" %}
|
||||||
</button>
|
</button>
|
||||||
@ -496,7 +467,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
{% if document.file %}
|
{% if document.file %}
|
||||||
<a href="{{ document.file.url }}" target="_blank"
|
<a href="{{ document.file.url }}"
|
||||||
|
target="_blank"
|
||||||
class="text-decoration-none text-primary-theme">
|
class="text-decoration-none text-primary-theme">
|
||||||
<i class="fas fa-file-pdf text-danger me-2"></i>
|
<i class="fas fa-file-pdf text-danger me-2"></i>
|
||||||
{{ document.get_document_type_display }}
|
{{ document.get_document_type_display }}
|
||||||
@ -522,13 +494,13 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if document.file %}
|
{% if document.file %}
|
||||||
<a href="{{ document.file.url }}" class="btn btn-sm btn-outline-primary me-1"
|
<a href="{{ document.file.url }}"
|
||||||
|
class="btn btn-sm btn-outline-primary me-1"
|
||||||
target="_blank">
|
target="_blank">
|
||||||
<i class="fas fa-download"></i>
|
<i class="fas fa-download"></i>
|
||||||
{% trans "Download" %}
|
{% trans "Download" %}
|
||||||
</a>
|
</a>
|
||||||
<button class="btn btn-sm btn-outline-danger"
|
<button class="btn btn-sm btn-outline-danger" onclick="deleteDocument({{ document.id }})">
|
||||||
onclick="deleteDocument({{ document.id }})">
|
|
||||||
<i class="fas fa-trash"></i>
|
<i class="fas fa-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -542,8 +514,7 @@
|
|||||||
<div class="text-center py-4">
|
<div class="text-center py-4">
|
||||||
<i class="fas fa-file-upload fa-3x text-muted mb-3"></i>
|
<i class="fas fa-file-upload fa-3x text-muted mb-3"></i>
|
||||||
<p class="text-muted">{% trans "No documents uploaded." %}</p>
|
<p class="text-muted">{% trans "No documents uploaded." %}</p>
|
||||||
<button class="btn btn-main-action" data-bs-toggle="modal"
|
<button class="btn btn-main-action" data-bs-toggle="modal" data-bs-target="#uploadDocumentModal">
|
||||||
data-bs-target="#uploadDocumentModal">
|
|
||||||
<i class="fas fa-plus me-2"></i>
|
<i class="fas fa-plus me-2"></i>
|
||||||
{% trans "Upload Your First Document" %}
|
{% trans "Upload Your First Document" %}
|
||||||
</button>
|
</button>
|
||||||
@ -568,38 +539,32 @@
|
|||||||
{% if application.stage == 'Applied' %}
|
{% if application.stage == 'Applied' %}
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
<i class="fas fa-clock me-2"></i>
|
<i class="fas fa-clock me-2"></i>
|
||||||
{% trans "Your application is being reviewed by our recruitment team. You will receive an update
|
{% trans "Your application is being reviewed by our recruitment team. You will receive an update within 3-5 business days." %}
|
||||||
within 3-5 business days." %}
|
|
||||||
</div>
|
</div>
|
||||||
{% elif application.stage == 'Screening' %}
|
{% elif application.stage == 'Screening' %}
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
<i class="fas fa-search me-2"></i>
|
<i class="fas fa-search me-2"></i>
|
||||||
{% trans "Your application is currently under screening. We are evaluating your qualifications
|
{% trans "Your application is currently under screening. We are evaluating your qualifications against the job requirements." %}
|
||||||
against the job requirements." %}
|
|
||||||
</div>
|
</div>
|
||||||
{% elif application.stage == 'Document Review' %}
|
{% elif application.stage == 'Document Review' %}
|
||||||
<div class="alert alert-purple">
|
<div class="alert alert-purple">
|
||||||
<i class="fas fa-file-alt me-2"></i>
|
<i class="fas fa-file-alt me-2"></i>
|
||||||
{% trans "Please upload the required documents for review. Our team will evaluate your submitted
|
{% trans "Please upload the required documents for review. Our team will evaluate your submitted materials." %}
|
||||||
materials." %}
|
|
||||||
</div>
|
</div>
|
||||||
{% elif application.stage == 'Exam' %}
|
{% elif application.stage == 'Exam' %}
|
||||||
<div class="alert alert-purple">
|
<div class="alert alert-purple">
|
||||||
<i class="fas fa-clipboard-check me-2"></i>
|
<i class="fas fa-clipboard-check me-2"></i>
|
||||||
{% trans "You have been shortlisted for an assessment. Please check your email for exam details
|
{% trans "You have been shortlisted for an assessment. Please check your email for exam details and preparation materials." %}
|
||||||
and preparation materials." %}
|
|
||||||
</div>
|
</div>
|
||||||
{% elif application.stage == 'Interview' %}
|
{% elif application.stage == 'Interview' %}
|
||||||
<div class="alert alert-success">
|
<div class="alert alert-success">
|
||||||
<i class="fas fa-video me-2"></i>
|
<i class="fas fa-video me-2"></i>
|
||||||
{% trans "Congratulations! You have been selected for an interview. Please check the interview
|
{% trans "Congratulations! You have been selected for an interview. Please check the interview schedule above and prepare accordingly." %}
|
||||||
schedule above and prepare accordingly." %}
|
|
||||||
</div>
|
</div>
|
||||||
{% elif application.stage == 'Offer' %}
|
{% elif application.stage == 'Offer' %}
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
<i class="fas fa-handshake me-2"></i>
|
<i class="fas fa-handshake me-2"></i>
|
||||||
{% trans "You have received a job offer! Please check your email for the detailed offer letter
|
{% trans "You have received a job offer! Please check your email for the detailed offer letter and next steps." %}
|
||||||
and next steps." %}
|
|
||||||
</div>
|
</div>
|
||||||
{% elif application.stage == 'Hired' %}
|
{% elif application.stage == 'Hired' %}
|
||||||
<div class="alert alert-success">
|
<div class="alert alert-success">
|
||||||
@ -609,8 +574,7 @@
|
|||||||
{% elif application.stage == 'Rejected' %}
|
{% elif application.stage == 'Rejected' %}
|
||||||
<div class="alert alert-danger">
|
<div class="alert alert-danger">
|
||||||
<i class="fas fa-times-circle me-2"></i>
|
<i class="fas fa-times-circle me-2"></i>
|
||||||
{% trans "Thank you for your interest. Unfortunately, your application was not selected at this
|
{% trans "Thank you for your interest. Unfortunately, your application was not selected at this time. We encourage you to apply for other positions." %}
|
||||||
time. We encourage you to apply for other positions." %}
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
@ -647,15 +611,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="documentFile" class="form-label">{% trans "Choose File" %}</label>
|
<label for="documentFile" class="form-label">{% trans "Choose File" %}</label>
|
||||||
<input type="file" class="form-control" id="documentFile" name="file"
|
<input type="file" class="form-control" id="documentFile" name="file" accept=".pdf,.doc,.docx,.jpg,.png" required>
|
||||||
accept=".pdf,.doc,.docx,.jpg,.png" required>
|
|
||||||
<div class="form-text">{% trans "Accepted formats: PDF, DOC, DOCX, JPG, PNG (Max 5MB)" %}</div>
|
<div class="form-text">{% trans "Accepted formats: PDF, DOC, DOCX, JPG, PNG (Max 5MB)" %}</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="application_slug" value="{{ application.slug }}">
|
<input type="hidden" name="application_slug" value="{{ application.slug }}">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans "Cancel"
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans "Cancel" %}</button>
|
||||||
%}</button>
|
|
||||||
<button type="submit" class="btn btn-main-action">
|
<button type="submit" class="btn btn-main-action">
|
||||||
<i class="fas fa-upload me-2"></i>
|
<i class="fas fa-upload me-2"></i>
|
||||||
{% trans "Upload" %}
|
{% trans "Upload" %}
|
||||||
@ -668,7 +630,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function addToCalendar(year, month, day, time, title) {
|
function addToCalendar(year, month, day, time, title) {
|
||||||
// Create Google Calendar URL
|
// Create Google Calendar URL
|
||||||
const startDate = new Date(year, month - 1, day, time.split(':')[0], time.split(':')[1]);
|
const startDate = new Date(year, month - 1, day, time.split(':')[0], time.split(':')[1]);
|
||||||
const endDate = new Date(startDate.getTime() + 60 * 60 * 1000); // Add 1 hour
|
const endDate = new Date(startDate.getTime() + 60 * 60 * 1000); // Add 1 hour
|
||||||
@ -680,9 +642,9 @@
|
|||||||
const googleCalendarUrl = `https://calendar.google.com/calendar/render?action=TEMPLATE&text=${encodeURIComponent(title)}&dates=${formatDate(startDate)}/${formatDate(endDate)}&details=${encodeURIComponent('Interview scheduled via ATS')}`;
|
const googleCalendarUrl = `https://calendar.google.com/calendar/render?action=TEMPLATE&text=${encodeURIComponent(title)}&dates=${formatDate(startDate)}/${formatDate(endDate)}&details=${encodeURIComponent('Interview scheduled via ATS')}`;
|
||||||
|
|
||||||
window.open(googleCalendarUrl, '_blank');
|
window.open(googleCalendarUrl, '_blank');
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteDocument(documentId) {
|
function deleteDocument(documentId) {
|
||||||
if (confirm('{% trans "Are you sure you want to delete this document?" %}')) {
|
if (confirm('{% trans "Are you sure you want to delete this document?" %}')) {
|
||||||
fetch(`/documents/${documentId}/delete/`, {
|
fetch(`/documents/${documentId}/delete/`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -704,10 +666,10 @@
|
|||||||
alert('{% trans "Error deleting document. Please try again." %}');
|
alert('{% trans "Error deleting document. Please try again." %}');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper function to get CSRF token
|
// Helper function to get CSRF token
|
||||||
function getCookie(name) {
|
function getCookie(name) {
|
||||||
let cookieValue = null;
|
let cookieValue = null;
|
||||||
if (document.cookie && document.cookie !== '') {
|
if (document.cookie && document.cookie !== '') {
|
||||||
const cookies = document.cookie.split(';');
|
const cookies = document.cookie.split(';');
|
||||||
@ -720,7 +682,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return cookieValue;
|
return cookieValue;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -5,21 +5,21 @@
|
|||||||
|
|
||||||
{% block customCSS %}
|
{% block customCSS %}
|
||||||
<style>
|
<style>
|
||||||
/* Application Progress Timeline - Using Kaauh Theme Colors */
|
/* Application Progress Timeline - Using Kaauh Theme Colors */
|
||||||
.application-progress {
|
.application-progress {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin: 2rem 0;
|
margin: 2rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step {
|
.progress-step {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step::before {
|
.progress-step::before {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 20px;
|
top: 20px;
|
||||||
@ -28,21 +28,21 @@
|
|||||||
height: 2px;
|
height: 2px;
|
||||||
background: var(--kaauh-border);
|
background: var(--kaauh-border);
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step:first-child::before {
|
.progress-step:first-child::before {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.completed::before {
|
.progress-step.completed::before {
|
||||||
background: var(--kaauh-success);
|
background: var(--kaauh-success);
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.active::before {
|
.progress-step.active::before {
|
||||||
background: var(--kaauh-teal);
|
background: var(--kaauh-teal);
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-icon {
|
.progress-icon {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
@ -55,135 +55,94 @@
|
|||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.completed .progress-icon {
|
.progress-step.completed .progress-icon {
|
||||||
background: var(--kaauh-success);
|
background: var(--kaauh-success);
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.active .progress-icon {
|
.progress-step.active .progress-icon {
|
||||||
background: var(--kaauh-teal);
|
background: var(--kaauh-teal);
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-label {
|
.progress-label {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-step.completed .progress-label,
|
.progress-step.completed .progress-label,
|
||||||
.progress-step.active .progress-label {
|
.progress-step.active .progress-label {
|
||||||
color: var(--kaauh-primary-text);
|
color: var(--kaauh-primary-text);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Status Badges - Using Kaauh Theme */
|
/* Status Badges - Using Kaauh Theme */
|
||||||
.status-badge {
|
.status-badge {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-applied {
|
.status-applied { background: #e3f2fd; color: #1976d2; }
|
||||||
background: #e3f2fd;
|
.status-screening { background: #fff3e0; color: #f57c00; }
|
||||||
color: #1976d2;
|
.status-exam { background: #f3e5f5; color: #7b1fa2; }
|
||||||
}
|
.status-interview { background: #e8f5e8; color: #388e3c; }
|
||||||
|
.status-offer { background: #fff8e1; color: #f9a825; }
|
||||||
|
.status-hired { background: #e8f5e8; color: #2e7d32; }
|
||||||
|
.status-rejected { background: #ffebee; color: #c62828; }
|
||||||
|
|
||||||
.status-screening {
|
/* Alert Purple - Using Theme Colors */
|
||||||
background: #fff3e0;
|
.alert-purple {
|
||||||
color: #f57c00;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-exam {
|
|
||||||
background: #f3e5f5;
|
|
||||||
color: #7b1fa2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-interview {
|
|
||||||
background: #e8f5e8;
|
|
||||||
color: #388e3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-offer {
|
|
||||||
background: #fff8e1;
|
|
||||||
color: #f9a825;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-hired {
|
|
||||||
background: #e8f5e8;
|
|
||||||
color: #2e7d32;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-rejected {
|
|
||||||
background: #ffebee;
|
|
||||||
color: #c62828;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Alert Purple - Using Theme Colors */
|
|
||||||
.alert-purple {
|
|
||||||
color: #4a148c;
|
color: #4a148c;
|
||||||
background-color: #f3e5f5;
|
background-color: #f3e5f5;
|
||||||
border-color: #ce93d8;
|
border-color: #ce93d8;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Profile specific styles */
|
/* Profile specific styles */
|
||||||
.profile-data-list li {
|
.profile-data-list li {
|
||||||
padding: 1rem 0;
|
padding: 1rem 0;
|
||||||
border-bottom: 1px dashed var(--kaauh-border);
|
border-bottom: 1px dashed var(--kaauh-border);
|
||||||
font-size: 0.95rem;
|
font-size: 0.95rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
.profile-data-list li strong {
|
||||||
.profile-data-list li strong {
|
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--kaauh-teal-dark);
|
color: var(--kaauh-teal-dark);
|
||||||
min-width: 120px;
|
min-width: 120px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tabs styling */
|
/* Tabs styling */
|
||||||
{
|
{% comment %} .nav-tabs {
|
||||||
% comment %
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-tabs {
|
|
||||||
border-bottom: 1px solid var(--kaauh-border);
|
border-bottom: 1px solid var(--kaauh-border);
|
||||||
}
|
}
|
||||||
|
.nav-tabs .nav-link.active {
|
||||||
.nav-tabs .nav-link.active {
|
|
||||||
color: var(--kaauh-primary-text);
|
color: var(--kaauh-primary-text);
|
||||||
}
|
}
|
||||||
|
.nav-tabs .nav-link {
|
||||||
.nav-tabs .nav-link {
|
|
||||||
color: var(--kaauh-teal);
|
color: var(--kaauh-teal);
|
||||||
border: none;
|
border: none;
|
||||||
border-bottom: 3px solid transparent;
|
border-bottom: 3px solid transparent;
|
||||||
padding: 1rem 1.75rem;
|
padding: 1rem 1.75rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
.nav-tabs .nav-link:hover {
|
||||||
.nav-tabs .nav-link:hover {
|
|
||||||
color: var(--kaauh-teal-dark);
|
color: var(--kaauh-teal-dark);
|
||||||
border-color: var(--kaauh-teal-light);
|
border-color: var(--kaauh-teal-light);
|
||||||
}
|
}
|
||||||
|
.nav-tabs .nav-link.active {
|
||||||
.nav-tabs .nav-link.active {
|
|
||||||
color: #000000;
|
color: #000000;
|
||||||
border-color: var(--kaauh-teal);
|
border-color: var(--kaauh-teal);
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
.nav-tabs .nav-link i {
|
||||||
.nav-tabs .nav-link i {
|
|
||||||
color: var(--kaauh-teal) !important;
|
color: var(--kaauh-teal) !important;
|
||||||
}
|
} {% endcomment %}
|
||||||
|
|
||||||
{
|
|
||||||
% endcomment %
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Tabs Theming - Applies to the right column */
|
/* Tabs Theming - Applies to the right column */
|
||||||
.nav-tabs {
|
.nav-tabs {
|
||||||
@ -200,10 +159,7 @@
|
|||||||
padding: 0.75rem 1rem;
|
padding: 0.75rem 1rem;
|
||||||
margin-right: 0.5rem;
|
margin-right: 0.5rem;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
white-space: nowrap;
|
|
||||||
/* Ensure text doesn't wrap in tabs */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Active Link */
|
/* Active Link */
|
||||||
.nav-tabs .nav-link.active {
|
.nav-tabs .nav-link.active {
|
||||||
color: var(--kaauh-teal-dark) !important;
|
color: var(--kaauh-teal-dark) !important;
|
||||||
@ -215,93 +171,49 @@
|
|||||||
margin-bottom: -1px;
|
margin-bottom: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-scroll {
|
.nav-scroll {
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
/* Hide scrollbar for cleaner look but keep functionality */
|
}
|
||||||
scrollbar-width: none;
|
.nav-scroll .nav-tabs { flex-wrap: nowrap; border-bottom: none; }
|
||||||
/* Firefox */
|
.nav-scroll .nav-tabs .nav-item { flex-shrink: 0; }
|
||||||
-ms-overflow-style: none;
|
|
||||||
/* IE 10+ */
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-scroll::-webkit-scrollbar {
|
/* Application table styling */
|
||||||
display: none;
|
.application-table thead th {
|
||||||
/* Chrome/Safari */
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-scroll .nav-tabs {
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
border-bottom: none;
|
|
||||||
padding-bottom: 5px;
|
|
||||||
/* Space for active border */
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-scroll .nav-tabs .nav-item {
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add a subtle fade effect to indicate more content */
|
|
||||||
.nav-scroll-container {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-scroll-container::after {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
height: 100%;
|
|
||||||
width: 30px;
|
|
||||||
background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Application table styling */
|
|
||||||
.application-table thead th {
|
|
||||||
background-color: var(--kaauh-teal-light);
|
background-color: var(--kaauh-teal-light);
|
||||||
color: var(--kaauh-teal-dark);
|
color: var(--kaauh-teal-dark);
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
border-bottom: 1px solid var(--kaauh-border);
|
border-bottom: 1px solid var(--kaauh-border);
|
||||||
padding: 1rem 1.5rem;
|
padding: 1rem 1.5rem;
|
||||||
}
|
}
|
||||||
|
.application-table tbody tr {
|
||||||
.application-table tbody tr {
|
|
||||||
transition: background-color 0.2s ease;
|
transition: background-color 0.2s ease;
|
||||||
}
|
}
|
||||||
|
.application-table tbody tr:hover {
|
||||||
.application-table tbody tr:hover {
|
|
||||||
background-color: var(--kaauh-teal-light);
|
background-color: var(--kaauh-teal-light);
|
||||||
}
|
}
|
||||||
|
.badge-stage {
|
||||||
.badge-stage {
|
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
padding: 0.4em 0.8em;
|
padding: 0.4em 0.8em;
|
||||||
border-radius: 50rem;
|
border-radius: 50rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Responsive table for mobile */
|
|
||||||
@media (max-width: 767.98px) {
|
|
||||||
.application-table thead {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/* Responsive table for mobile */
|
||||||
|
@media (max-width: 767.98px) {
|
||||||
|
.application-table thead { display: none; }
|
||||||
.application-table tr {
|
.application-table tr {
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
border: 1px solid var(--kaauh-border);
|
border: 1px solid var(--kaauh-border);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: var(--kaauh-shadow-sm);
|
box-shadow: var(--kaauh-shadow-sm);
|
||||||
}
|
}
|
||||||
|
|
||||||
.application-table td {
|
.application-table td {
|
||||||
text-align: right !important;
|
text-align: right !important;
|
||||||
padding: 0.75rem 1rem;
|
padding: 0.75rem 1rem;
|
||||||
padding-left: 50%;
|
padding-left: 50%;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.application-table td::before {
|
.application-table td::before {
|
||||||
content: attr(data-label);
|
content: attr(data-label);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -310,101 +222,67 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--gray-text);
|
color: var(--gray-text);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Profile Data List Mobile Optimization */
|
/* Document management list */
|
||||||
.profile-data-list li {
|
.list-group-item {
|
||||||
flex-direction: column;
|
|
||||||
align-items: flex-start !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-data-list li>div {
|
|
||||||
margin-bottom: 0.25rem;
|
|
||||||
color: var(--kaauh-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-data-list li>span {
|
|
||||||
width: 100%;
|
|
||||||
text-align: left !important;
|
|
||||||
word-break: break-word;
|
|
||||||
/* Handle long emails/addresses */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Adjust padding for mobile */
|
|
||||||
.tab-content {
|
|
||||||
padding: 1.5rem !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-tabs .nav-link {
|
|
||||||
padding: 0.75rem 1rem;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Document management list */
|
|
||||||
.list-group-item {
|
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
border: 1px solid var(--kaauh-border);
|
border: 1px solid var(--kaauh-border);
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
}
|
}
|
||||||
|
.list-group-item:hover {
|
||||||
.list-group-item:hover {
|
|
||||||
background-color: var(--kaauh-teal-light);
|
background-color: var(--kaauh-teal-light);
|
||||||
border-color: var(--kaauh-teal-accent);
|
border-color: var(--kaauh-teal-accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Action tiles */
|
/* Action tiles */
|
||||||
.btn-action-tile {
|
.btn-action-tile {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
border: 1px solid var(--kaauh-border);
|
border: 1px solid var(--kaauh-border);
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
padding: 1.5rem 1rem;
|
padding: 1.5rem 1rem;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
box-shadow: var(--kaauh-shadow-sm);
|
box-shadow: var(--kaauh-shadow-sm);
|
||||||
}
|
}
|
||||||
|
.btn-action-tile:hover {
|
||||||
.btn-action-tile:hover {
|
|
||||||
background-color: var(--kaauh-teal-light);
|
background-color: var(--kaauh-teal-light);
|
||||||
border-color: var(--kaauh-teal-accent);
|
border-color: var(--kaauh-teal-accent);
|
||||||
transform: translateY(-2px);
|
transform: translateY(-2px);
|
||||||
box-shadow: var(--kaauh-shadow-lg);
|
box-shadow: var(--kaauh-shadow-lg);
|
||||||
}
|
}
|
||||||
|
.action-tile-icon {
|
||||||
.action-tile-icon {
|
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
color: var(--kaauh-teal-accent);
|
color: var(--kaauh-teal-accent);
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Application Cards Styling */
|
/* Application Cards Styling */
|
||||||
.hover-lift {
|
.hover-lift {
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
|
.hover-lift:hover {
|
||||||
.hover-lift:hover {
|
|
||||||
transform: translateY(-4px);
|
transform: translateY(-4px);
|
||||||
box-shadow: var(--kaauh-shadow-lg);
|
box-shadow: var(--kaauh-shadow-lg);
|
||||||
border-color: var(--kaauh-teal-accent);
|
border-color: var(--kaauh-teal-accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
.application-card .card-title a {
|
.application-card .card-title a {
|
||||||
transition: color 0.2s ease;
|
transition: color 0.2s ease;
|
||||||
}
|
}
|
||||||
|
.application-card .card-title a:hover {
|
||||||
.application-card .card-title a:hover {
|
|
||||||
color: var(--kaauh-teal-dark) !important;
|
color: var(--kaauh-teal-dark) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Responsive adjustments for application cards */
|
/* Responsive adjustments for application cards */
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.application-card .card-body {
|
.application-card .card-body {
|
||||||
padding: 1.25rem;
|
padding: 1.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.application-card .card-title {
|
.application-card .card-title {
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
@ -412,22 +290,21 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|
||||||
{# Header: Larger, more dynamic on large screens. Stacks cleanly on mobile. #}
|
{# Header: Larger, more dynamic on large screens. Stacks cleanly on mobile. #}
|
||||||
<div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-4 mb-md-5">
|
<div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-5">
|
||||||
<h1 class="display-6 display-md-5 fw-extrabold mb-3 mb-md-0 text-center text-md-start"
|
<h1 class="display-6 display-md-5 fw-extrabold mb-3 mb-md-0" style="color: var(--kaauh-teal-dark);">
|
||||||
style="color: var(--kaauh-teal-dark);">
|
|
||||||
{% trans "Your Candidate Dashboard" %}
|
{% trans "Your Candidate Dashboard" %}
|
||||||
</h1>
|
</h1>
|
||||||
{% comment %} <a href="#profile-details" data-bs-toggle="tab"
|
{% comment %} <a href="#profile-details" data-bs-toggle="tab" class="btn btn-main-action btn-sm btn-md-lg px-4 py-2 rounded-pill shadow-sm shadow-md-lg">
|
||||||
class="btn btn-main-action btn-sm btn-md-lg px-4 py-2 rounded-pill shadow-sm shadow-md-lg">
|
|
||||||
<i class="fas fa-edit me-2"></i> {% trans "Update Profile" %}
|
<i class="fas fa-edit me-2"></i> {% trans "Update Profile" %}
|
||||||
</a> {% endcomment %}
|
</a> {% endcomment %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{# Candidate Quick Overview Card: Use a softer background color #}
|
{# Candidate Quick Overview Card: Use a softer background color #}
|
||||||
<div class="card kaauh-card mb-4 mb-md-5 p-3 p-md-4 bg-white">
|
<div class="card kaauh-card mb-5 p-4 bg-white">
|
||||||
<div class="d-flex align-items-center flex-column flex-sm-row text-center text-sm-start">
|
<div class="d-flex align-items-center flex-column flex-sm-row text-center text-sm-start">
|
||||||
<img src="{% if candidate.user.profile_image %}{{ candidate.user.profile_image.url }}{% else %}{% static 'image/default_avatar.png' %}{% endif %}"
|
<img src="{% if candidate.user.profile_image %}{{ candidate.user.profile_image.url }}{% else %}{% static 'image/default_avatar.png' %}{% endif %}"
|
||||||
alt="{% trans 'Profile Picture' %}" class="rounded-circle me-sm-4 mb-3 mb-sm-0 shadow-lg"
|
alt="{% trans 'Profile Picture' %}"
|
||||||
|
class="rounded-circle me-sm-4 mb-3 mb-sm-0 shadow-lg"
|
||||||
style="width: 80px; height: 80px; object-fit: cover; border: 4px solid var(--kaauh-teal-accent);">
|
style="width: 80px; height: 80px; object-fit: cover; border: 4px solid var(--kaauh-teal-accent);">
|
||||||
<div>
|
<div>
|
||||||
<h3 class="card-title mb-1 fw-bold text-dark">{{ candidate.full_name|default:"Candidate Name" }}</h3>
|
<h3 class="card-title mb-1 fw-bold text-dark">{{ candidate.full_name|default:"Candidate Name" }}</h3>
|
||||||
@ -442,36 +319,33 @@
|
|||||||
<div class="card kaauh-card p-0 bg-white">
|
<div class="card kaauh-card p-0 bg-white">
|
||||||
|
|
||||||
{# Tab Navigation: Used nav-scroll for responsiveness #}
|
{# Tab Navigation: Used nav-scroll for responsiveness #}
|
||||||
<div class="nav-scroll-container px-3 px-md-4 pt-3">
|
<div class="nav-scroll px-4 pt-3">
|
||||||
<div class="nav-scroll">
|
|
||||||
<ul class="nav nav-tabs" id="candidateTabs" role="tablist">
|
<ul class="nav nav-tabs" id="candidateTabs" role="tablist">
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link active" id="profile-tab" data-bs-toggle="tab"
|
<button class="nav-link active" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile-details" type="button" role="tab" aria-controls="profile-details" aria-selected="true">
|
||||||
data-bs-target="#profile-details" type="button" role="tab" aria-controls="profile-details"
|
|
||||||
aria-selected="true">
|
|
||||||
<i class="fas fa-user-circle me-2"></i> {% trans "Profile Details" %}
|
<i class="fas fa-user-circle me-2"></i> {% trans "Profile Details" %}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="applications-tab" data-bs-toggle="tab"
|
<button class="nav-link" id="applications-tab" data-bs-toggle="tab" data-bs-target="#applications-history" type="button" role="tab" aria-controls="applications-history" aria-selected="false">
|
||||||
data-bs-target="#applications-history" type="button" role="tab"
|
|
||||||
aria-controls="applications-history" aria-selected="false">
|
|
||||||
<i class="fas fa-list-alt me-2"></i> {% trans "My Applications" %}
|
<i class="fas fa-list-alt me-2"></i> {% trans "My Applications" %}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="documents-tab" data-bs-toggle="tab"
|
<button class="nav-link" id="documents-tab" data-bs-toggle="tab" data-bs-target="#document-management" type="button" role="tab" aria-controls="document-management" aria-selected="false">
|
||||||
data-bs-target="#document-management" type="button" role="tab"
|
|
||||||
aria-controls="document-management" aria-selected="false">
|
|
||||||
<i class="fas fa-file-upload me-2"></i> {% trans "Documents" %}
|
<i class="fas fa-file-upload me-2"></i> {% trans "Documents" %}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
{% comment %} <li class="nav-item" role="presentation">
|
||||||
|
<button class="nav-link" id="settings-tab" data-bs-toggle="tab" data-bs-target="#account-settings" type="button" role="tab" aria-controls="account-settings" aria-selected="false">
|
||||||
|
<i class="fas fa-cogs me-2"></i> {% trans "Settings" %}
|
||||||
|
</button>
|
||||||
|
</li> {% endcomment %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
{# Tab Content #}
|
{# Tab Content #}
|
||||||
<div class="tab-content p-3 p-md-5" id="candidateTabsContent">
|
<div class="tab-content p-4 p-md-5" id="candidateTabsContent">
|
||||||
|
|
||||||
<div class="tab-pane fade show active" id="profile-details" role="tabpanel" aria-labelledby="profile-tab">
|
<div class="tab-pane fade show active" id="profile-details" role="tabpanel" aria-labelledby="profile-tab">
|
||||||
<!-- Basic Information Section -->
|
<!-- Basic Information Section -->
|
||||||
@ -480,27 +354,23 @@
|
|||||||
<i class="fas fa-user me-2 text-primary-theme"></i>{% trans "Basic Information" %}
|
<i class="fas fa-user me-2 text-primary-theme"></i>{% trans "Basic Information" %}
|
||||||
</h4>
|
</h4>
|
||||||
<ul class="list-unstyled profile-data-list p-0">
|
<ul class="list-unstyled profile-data-list p-0">
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-id-card me-2 text-primary-theme"></i> <strong>{% trans "First Name" %}</strong></div>
|
<div><i class="fas fa-id-card me-2 text-primary-theme"></i> <strong>{% trans "First Name" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.first_name|default:"" }}</span>
|
<span class="text-end">{{ candidate.first_name|default:"" }}</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-id-card me-2 text-primary-theme"></i> <strong>{% trans "Last Name" %}</strong></div>
|
<div><i class="fas fa-id-card me-2 text-primary-theme"></i> <strong>{% trans "Last Name" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.last_name|default:"" }}</span>
|
<span class="text-end">{{ candidate.last_name|default:"" }}</span>
|
||||||
</li>
|
</li>
|
||||||
{% if candidate.middle_name %}
|
{% if candidate.middle_name %}
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-id-card me-2 text-primary-theme"></i> <strong>{% trans "Middle Name" %}</strong></div>
|
<div><i class="fas fa-id-card me-2 text-primary-theme"></i> <strong>{% trans "Middle Name" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.middle_name }}</span>
|
<span class="text-end">{{ candidate.middle_name }}</span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-envelope me-2 text-primary-theme"></i> <strong>{% trans "Email" %}</strong></div>
|
<div><i class="fas fa-envelope me-2 text-primary-theme"></i> <strong>{% trans "Email" %}</strong></div>
|
||||||
<span class="text-start text-sm-end text-break">{{ candidate.email|default:"" }}</span>
|
<span class="text-end">{{ candidate.email|default:"" }}</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -511,24 +381,21 @@
|
|||||||
<i class="fas fa-address-book me-2 text-primary-theme"></i>{% trans "Contact Information" %}
|
<i class="fas fa-address-book me-2 text-primary-theme"></i>{% trans "Contact Information" %}
|
||||||
</h4>
|
</h4>
|
||||||
<ul class="list-unstyled profile-data-list p-0">
|
<ul class="list-unstyled profile-data-list p-0">
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-phone-alt me-2 text-primary-theme"></i> <strong>{% trans "Phone" %}</strong></div>
|
<div><i class="fas fa-phone-alt me-2 text-primary-theme"></i> <strong>{% trans "Phone" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.phone|default:"" }}</span>
|
<span class="text-end">{{ candidate.phone|default:"" }}</span>
|
||||||
</li>
|
</li>
|
||||||
{% if candidate.address %}
|
{% if candidate.address %}
|
||||||
<li class="d-flex flex-column flex-sm-row align-items-start">
|
<li class="d-flex align-items-start">
|
||||||
<div class="mb-1"><i class="fas fa-map-marker-alt me-2 text-primary-theme"></i> <strong>{%trans "Address" %}</strong></div>
|
<div class="mb-1"><i class="fas fa-map-marker-alt me-2 text-primary-theme"></i> <strong>{% trans "Address" %}</strong></div>
|
||||||
<span class="text-start text-sm-end text-break">{{ candidate.address|linebreaksbr }}</span>
|
<span class="text-end text-break">{{ candidate.address|linebreaksbr }}</span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if candidate.linkedin_profile %}
|
{% if candidate.linkedin_profile %}
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fab fa-linkedin me-2 text-primary-theme"></i> <strong>{% trans "LinkedIn Profile" %}</strong></div>
|
<div><i class="fab fa-linkedin me-2 text-primary-theme"></i> <strong>{% trans "LinkedIn Profile" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">
|
<span class="text-end">
|
||||||
<a href="{{ candidate.linkedin_profile }}" target="_blank"
|
<a href="{{ candidate.linkedin_profile }}" target="_blank" class="text-primary-theme text-decoration-none">
|
||||||
class="text-primary-theme text-decoration-none">
|
|
||||||
{% trans "View Profile" %} <i class="fas fa-external-link-alt ms-1"></i>
|
{% trans "View Profile" %} <i class="fas fa-external-link-alt ms-1"></i>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
@ -543,20 +410,17 @@
|
|||||||
<i class="fas fa-user-circle me-2 text-primary-theme"></i>{% trans "Personal Details" %}
|
<i class="fas fa-user-circle me-2 text-primary-theme"></i>{% trans "Personal Details" %}
|
||||||
</h4>
|
</h4>
|
||||||
<ul class="list-unstyled profile-data-list p-0">
|
<ul class="list-unstyled profile-data-list p-0">
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-calendar-alt me-2 text-primary-theme"></i> <strong>{% trans "Date of Birth" %}</strong></div>
|
<div><i class="fas fa-calendar-alt me-2 text-primary-theme"></i> <strong>{% trans "Date of Birth" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.date_of_birth|date:"M d, Y"|default:"" }}</span>
|
<span class="text-end">{{ candidate.date_of_birth|date:"M d, Y"|default:"" }}</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-venus-mars me-2 text-primary-theme"></i> <strong>{% trans "Gender" %}</strong></div>
|
<div><i class="fas fa-venus-mars me-2 text-primary-theme"></i> <strong>{% trans "Gender" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.get_gender_display|default:"" }}</span>
|
<span class="text-end">{{ candidate.get_gender_display|default:"" }}</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-globe me-2 text-primary-theme"></i> <strong>{% trans "Nationality" %}</strong></div>
|
<div><i class="fas fa-globe me-2 text-primary-theme"></i> <strong>{% trans "Nationality" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.get_nationality_display|default:"" }}</span>
|
<span class="text-end">{{ candidate.get_nationality_display|default:"" }}</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -568,22 +432,51 @@
|
|||||||
</h4>
|
</h4>
|
||||||
<ul class="list-unstyled profile-data-list p-0">
|
<ul class="list-unstyled profile-data-list p-0">
|
||||||
{% if candidate.user.designation %}
|
{% if candidate.user.designation %}
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
<div><i class="fas fa-user-tie me-2 text-primary-theme"></i> <strong>{% trans "Designation" %}</strong></div>
|
||||||
<div><i class="fas fa-user-tie me-2 text-primary-theme"></i> <strong>{% trans "Designation"
|
<span class="text-end">{{ candidate.user.designation }}</span>
|
||||||
%}</strong></div>
|
|
||||||
<span class="text-start text-sm-end">{{ candidate.user.designation }}</span>
|
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if candidate.gpa %}
|
{% if candidate.gpa %}
|
||||||
<li
|
<li class="d-flex justify-content-between align-items-center">
|
||||||
class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
|
|
||||||
<div><i class="fas fa-graduation-cap me-2 text-primary-theme"></i> <strong>{% trans "GPA" %}</strong></div>
|
<div><i class="fas fa-graduation-cap me-2 text-primary-theme"></i> <strong>{% trans "GPA" %}</strong></div>
|
||||||
<span class="text-start text-sm-end">{{ candidate.gpa }}</span>
|
<span class="text-end">{{ candidate.gpa }}</span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% comment %} <div class="alert alert-info mt-4">
|
||||||
|
<i class="fas fa-info-circle me-2"></i>
|
||||||
|
<small>{% trans "Use the 'Update Profile' button above to edit these details." %}</small>
|
||||||
|
</div> {% endcomment %}
|
||||||
|
|
||||||
|
{% comment %} <hr class="my-5"> {% endcomment %}
|
||||||
|
|
||||||
|
{% comment %} <h4 class="mb-4 fw-bold text-gray-subtle">{% trans "Quick Actions" %}</h4>
|
||||||
|
<div class="row g-3 g-md-4">
|
||||||
|
<div class="col-6 col-sm-4 col-md-4">
|
||||||
|
<a href="#applications-history" data-bs-toggle="tab" class="btn btn-action-tile w-100 d-grid text-center text-dark text-decoration-none">
|
||||||
|
<span class="action-tile-icon mb-2"><i class="fas fa-list-check"></i></span>
|
||||||
|
<span class="fw-bold">{% trans "Track Jobs" %}</span>
|
||||||
|
<span class="small text-muted d-none d-sm-block">{% trans "View stages" %}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-6 col-sm-4 col-md-4">
|
||||||
|
<a href="#document-management" data-bs-toggle="tab" class="btn btn-action-tile w-100 d-grid text-center text-dark text-decoration-none">
|
||||||
|
<span class="action-tile-icon mb-2"><i class="fas fa-cloud-upload-alt"></i></span>
|
||||||
|
<span class="fw-bold">{% trans "Manage Documents" %}</span>
|
||||||
|
<span class="small text-muted d-none d-sm-block">{% trans "Upload/View files" %}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-sm-4 col-md-4">
|
||||||
|
<a href="{% url 'kaauh_career' %}" class="btn btn-action-tile w-100 d-grid text-center text-dark text-decoration-none">
|
||||||
|
<span class="action-tile-icon mb-2"><i class="fas fa-search"></i></span>
|
||||||
|
<span class="fw-bold">{% trans "Find New Careers" %}</span>
|
||||||
|
<span class="small text-muted d-none d-sm-block">{% trans "Explore open roles" %}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> {% endcomment %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-pane fade" id="applications-history" role="tabpanel" aria-labelledby="applications-tab">
|
<div class="tab-pane fade" id="applications-history" role="tabpanel" aria-labelledby="applications-tab">
|
||||||
@ -643,8 +536,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="alert alert-info text-center p-5 rounded-3"
|
<div class="alert alert-info text-center p-5 rounded-3" style="border: 1px dashed var(--kaauh-border); background-color: var(--kaauh-teal-light);">
|
||||||
style="border: 1px dashed var(--kaauh-border); background-color: var(--kaauh-teal-light);">
|
|
||||||
<i class="fas fa-info-circle fa-2x mb-3 text-primary-theme"></i>
|
<i class="fas fa-info-circle fa-2x mb-3 text-primary-theme"></i>
|
||||||
<h5 class="mb-3 fw-bold text-primary-theme">{% trans "You haven't submitted any applications yet." %}</h5>
|
<h5 class="mb-3 fw-bold text-primary-theme">{% trans "You haven't submitted any applications yet." %}</h5>
|
||||||
<a href="{% url 'kaauh_career' %}" class="ms-3 btn btn-main-action mt-2 rounded-pill px-4">
|
<a href="{% url 'kaauh_career' %}" class="ms-3 btn btn-main-action mt-2 rounded-pill px-4">
|
||||||
@ -659,9 +551,7 @@
|
|||||||
|
|
||||||
<p class="text-gray-subtle">{% trans "You can upload and manage your resume, certificates, and professional documents here. These documents will be attached to your applications." %}</p>
|
<p class="text-gray-subtle">{% trans "You can upload and manage your resume, certificates, and professional documents here. These documents will be attached to your applications." %}</p>
|
||||||
|
|
||||||
<button type="button"
|
<button type="button" class="btn btn-main-action rounded-pill px-4 me-3 d-block d-sm-inline-block w-100 w-sm-auto mb-4" data-bs-toggle="modal" data-bs-target="#documentUploadModal">
|
||||||
class="btn btn-main-action rounded-pill px-4 me-3 d-block d-sm-inline-block w-100 w-sm-auto mb-4"
|
|
||||||
data-bs-toggle="modal" data-bs-target="#documentUploadModal">
|
|
||||||
<i class="fas fa-cloud-upload-alt me-2"></i> {% trans "Upload New Document" %}
|
<i class="fas fa-cloud-upload-alt me-2"></i> {% trans "Upload New Document" %}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
@ -670,18 +560,15 @@
|
|||||||
{# Document List #}
|
{# Document List #}
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush">
|
||||||
{% for document in documents %}
|
{% for document in documents %}
|
||||||
<li
|
<li class="list-group-item d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center bg-white p-3">
|
||||||
class="list-group-item d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center bg-white p-3">
|
|
||||||
<div class="mb-2 mb-sm-0 fw-medium">
|
<div class="mb-2 mb-sm-0 fw-medium">
|
||||||
<i class="fas fa-file-pdf me-2 text-primary-theme"></i> <strong>{{document.document_type|title }}</strong>
|
<i class="fas fa-file-pdf me-2 text-primary-theme"></i> <strong>{{ document.document_type|title }}</strong>
|
||||||
<span class="text-muted small">({{ document.file.name|split:"/"|last }})</span>
|
<span class="text-muted small">({{ document.file.name|split:"/"|last }})</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-items-center mt-2 mt-sm-0">
|
<div class="d-flex align-items-center">
|
||||||
<span class="text-muted small me-3 d-none d-sm-inline">{% trans "Uploaded:" %} {{document.uploaded_at|date:"d M Y" }}</span>
|
<span class="text-muted small me-3">{% trans "Uploaded:" %} {{ document.uploaded_at|date:"d M Y" }}</span>
|
||||||
<a href="{{ document.file.url }}" target="_blank"
|
<a href="{{ document.file.url }}" target="_blank" class="btn btn-sm btn-outline-secondary me-2"><i class="fas fa-eye"></i></a>
|
||||||
class="btn btn-sm btn-outline-secondary me-2"><i class="fas fa-eye"></i></a>
|
<a href="{% url 'candidate_document_delete' document.id %}" class="btn btn-sm btn-outline-danger" onclick="return confirm('{% trans "Are you sure you want to delete this document?" %}')"><i class="fas fa-trash-alt"></i></a>
|
||||||
<a href="{% url 'candidate_document_delete' document.id %}"
|
|
||||||
class="btn btn-sm btn-outline-danger" onclick="return confirm('{% trans " Are you sure you want to delete this document?" %}')"><i class="fas fa-trash-alt"></i></a>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
@ -694,41 +581,32 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% comment %} <div class="tab-pane fade" id="account-settings" role="tabpanel"
|
{% comment %} <div class="tab-pane fade" id="account-settings" role="tabpanel" aria-labelledby="settings-tab">
|
||||||
aria-labelledby="settings-tab">
|
|
||||||
<h4 class="mb-4 fw-bold text-gray-subtle">{% trans "Security & Preferences" %}</h4>
|
<h4 class="mb-4 fw-bold text-gray-subtle">{% trans "Security & Preferences" %}</h4>
|
||||||
|
|
||||||
<div class="row g-4">
|
<div class="row g-4">
|
||||||
<div class="col-12 col-md-6">
|
<div class="col-12 col-md-6">
|
||||||
<div class="card kaauh-card p-4 h-100 bg-white">
|
<div class="card kaauh-card p-4 h-100 bg-white">
|
||||||
<h5 class="fw-bold"><i class="fas fa-key me-2 text-primary-theme"></i> {% trans "Password
|
<h5 class="fw-bold"><i class="fas fa-key me-2 text-primary-theme"></i> {% trans "Password Security" %}</h5>
|
||||||
Security" %}</h5>
|
<p class="text-muted small">{% trans "Update your password regularly to keep your account secure." %}</p>
|
||||||
<p class="text-muted small">{% trans "Update your password regularly to keep your account
|
<button type="button" class="btn btn-outline-secondary mt-auto w-100 py-2 fw-medium" data-bs-toggle="modal" data-bs-target="#passwordModal">
|
||||||
secure." %}</p>
|
|
||||||
<button type="button" class="btn btn-outline-secondary mt-auto w-100 py-2 fw-medium"
|
|
||||||
data-bs-toggle="modal" data-bs-target="#passwordModal">
|
|
||||||
{% trans "Change Password" %}
|
{% trans "Change Password" %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-md-6">
|
<div class="col-12 col-md-6">
|
||||||
<div class="card kaauh-card p-4 h-100 bg-white">
|
<div class="card kaauh-card p-4 h-100 bg-white">
|
||||||
<h5 class="fw-bold"><i class="fas fa-image me-2 text-primary-theme"></i> {% trans "Profile
|
<h5 class="fw-bold"><i class="fas fa-image me-2 text-primary-theme"></i> {% trans "Profile Image" %}</h5>
|
||||||
Image" %}</h5>
|
<p class="text-muted small">{% trans "Update your profile picture to personalize your account." %}</p>
|
||||||
<p class="text-muted small">{% trans "Update your profile picture to personalize your
|
<button type="button" class="btn btn-outline-secondary mt-auto w-100 py-2 fw-medium" data-bs-toggle="modal" data-bs-target="#profileImageModal">
|
||||||
account." %}</p>
|
|
||||||
<button type="button" class="btn btn-outline-secondary mt-auto w-100 py-2 fw-medium"
|
|
||||||
data-bs-toggle="modal" data-bs-target="#profileImageModal">
|
|
||||||
{% trans "Change Image" %}
|
{% trans "Change Image" %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="alert mt-5 py-3"
|
<div class="alert mt-5 py-3" style="background-color: var(--danger-subtle); color: #842029; border: 1px solid #f5c2c7; border-radius: 8px;">
|
||||||
style="background-color: var(--danger-subtle); color: #842029; border: 1px solid #f5c2c7; border-radius: 8px;">
|
<i class="fas fa-exclamation-triangle me-2"></i> {% trans "To delete your profile, please contact HR support." %}
|
||||||
<i class="fas fa-exclamation-triangle me-2"></i> {% trans "To delete your profile, please contact HR
|
|
||||||
support." %}
|
|
||||||
</div>
|
</div>
|
||||||
</div> {% endcomment %}
|
</div> {% endcomment %}
|
||||||
|
|
||||||
@ -759,8 +637,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Profile Image Modal (Reused from portal_profile.html) -->
|
<!-- Profile Image Modal (Reused from portal_profile.html) -->
|
||||||
<div class="modal fade mt-4" id="profileImageModal" tabindex="-1" aria-labelledby="profileImageModalLabel"
|
<div class="modal fade mt-4" id="profileImageModal" tabindex="-1" aria-labelledby="profileImageModalLabel" aria-hidden="true">
|
||||||
aria-hidden="true">
|
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
@ -768,8 +645,7 @@
|
|||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form method="post" action="{% url 'user_profile_image_update' candidate.pk %}"
|
<form method="post" action="{% url 'user_profile_image_update' candidate.pk %}" enctype="multipart/form-data" >
|
||||||
enctype="multipart/form-data">
|
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
@ -782,8 +658,7 @@
|
|||||||
<small class="text-muted d-block">{% trans "Current Image:" %}</small>
|
<small class="text-muted d-block">{% trans "Current Image:" %}</small>
|
||||||
|
|
||||||
{# Display Link to View Current Image #}
|
{# Display Link to View Current Image #}
|
||||||
<a href="{{ profile_form.instance.profile_image.url }}" target="_blank"
|
<a href="{{ profile_form.instance.profile_image.url }}" target="_blank" class="d-inline-block me-3 text-info fw-bold">
|
||||||
class="d-inline-block me-3 text-info fw-bold">
|
|
||||||
{% trans "View/Download" %} ({{ profile_form.instance.profile_image.name }})
|
{% trans "View/Download" %} ({{ profile_form.instance.profile_image.name }})
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
@ -797,7 +672,7 @@
|
|||||||
|
|
||||||
{# 2. Explicitly render the 'Clear' checkbox and the Change input #}
|
{# 2. Explicitly render the 'Clear' checkbox and the Change input #}
|
||||||
<div class="form-check mt-3">
|
<div class="form-check mt-3">
|
||||||
|
{# The ClearableFileInput widget renders itself here. It provides the "Clear" checkbox and the "Change" input field. #}
|
||||||
{{ profile_form.profile_image }}
|
{{ profile_form.profile_image }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -826,8 +701,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Document Upload Modal -->
|
<!-- Document Upload Modal -->
|
||||||
<div class="modal fade mt-4" id="documentUploadModal" tabindex="-1" aria-labelledby="documentUploadModalLabel"
|
<div class="modal fade mt-4" id="documentUploadModal" tabindex="-1" aria-labelledby="documentUploadModalLabel" aria-hidden="true">
|
||||||
aria-hidden="true">
|
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
@ -835,8 +709,7 @@
|
|||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form method="post" action="{% url 'document_upload' candidate.id %}" enctype="multipart/form-data"
|
<form method="post" action="{% url 'document_upload' candidate.id %}" enctype="multipart/form-data" id="documentUploadForm">
|
||||||
id="documentUploadForm">
|
|
||||||
<input type="hidden" name="upload_target" value="person">
|
<input type="hidden" name="upload_target" value="person">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
@ -848,7 +721,7 @@
|
|||||||
{{ document_form.file }}
|
{{ document_form.file }}
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer mt-4">
|
<div class="modal-footer mt-4">
|
||||||
<button type="button" class="btn btn-lg btn-secondary" data-bs-dismiss="modal">{% trans "Close"%}</button>
|
<button type="button" class="btn btn-lg btn-secondary" data-bs-dismiss="modal">{% trans "Close" %}</button>
|
||||||
<button type="submit" class="btn btn-main-action">{% trans "Upload" %}</button>
|
<button type="submit" class="btn btn-main-action">{% trans "Upload" %}</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user