kaauh_ats/templates/jobs/job_detail.html
2025-10-05 12:19:45 +03:00

293 lines
12 KiB
HTML

{% extends "base.html" %}
{% block title %}{{ job.title }} - University ATS{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-8">
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h2>{{ job.title }}</h2>
<span class="badge bg-{{ job.status|lower }} status-badge">
{{ job.get_status_display }}
</span>
</div>
<div class="card-body">
<!-- Job Details -->
<div class="row mb-3">
<div class="col-md-6">
<strong>Department:</strong> {{ job.department|default:"Not specified" }}
</div>
<div class="col-md-6">
<strong>Position Number:</strong> {{ job.position_number|default:"Not specified" }}
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<strong>Job Type:</strong> {{ job.get_job_type_display }}
</div>
<div class="col-md-6">
<strong>Workplace:</strong> {{ job.get_workplace_type_display }}
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<strong>Location:</strong> {{ job.get_location_display }}
</div>
<div class="col-md-6">
<strong>Created By:</strong> {{ job.created_by|default:"Not specified" }}
</div>
</div>
{% if job.salary_range %}
<div class="row mb-3">
<div class="col-12">
<strong>Salary Range:</strong> {{ job.salary_range }}
</div>
</div>
{% endif %}
{% if job.start_date %}
<div class="row mb-3">
<div class="col-12">
<strong>Start Date:</strong> {{ job.start_date }}
</div>
</div>
{% endif %}
{% if job.application_deadline %}
<div class="row mb-3">
<div class="col-12">
<strong>Application Deadline:</strong> {{ job.application_deadline }}
{% if job.is_expired %}
<span class="badge bg-danger">EXPIRED</span>
{% endif %}
</div>
</div>
{% endif %}
<!-- Description -->
{% if job.description %}
<div class="mb-3">
<h5>Description</h5>
<div>{{ job.description|linebreaks }}</div>
</div>
{% endif %}
{% if job.qualifications %}
<div class="mb-3">
<h5>Qualifications</h5>
<div>{{ job.qualifications|linebreaks }}</div>
</div>
{% endif %}
{% if job.benefits %}
<div class="mb-3">
<h5>Benefits</h5>
<div>{{ job.benefits|linebreaks }}</div>
</div>
{% endif %}
{% if job.application_instructions %}
<div class="mb-3">
<h5>Application Instructions</h5>
<div>{{ job.application_instructions|linebreaks }}</div>
</div>
{% endif %}
<!-- Application URL -->
{% if job.application_url %}
<div class="mb-3">
<button type="button" class="btn btn-info" data-bs-toggle="modal" data-bs-target="#myModalForm">
Upload Image for Post
</button>
</div>
{% endif %}
</div>
</div>
</div>
<div class="col-lg-4">
<!-- LinkedIn Integration Card -->
<div class="card mb-4">
<div class="card-header">
<h5><i class="fab fa-linkedin"></i> LinkedIn Integration</h5>
</div>
<div class="card-body">
{% if job.posted_to_linkedin %}
<div class="alert alert-success">
<i class="fas fa-check-circle"></i> Posted to LinkedIn successfully!
</div>
{% if job.linkedin_post_url %}
<a href="{{ job.linkedin_post_url }}" target="_blank" class="btn btn-primary w-100 mb-2">
<i class="fab fa-linkedin"></i> View on LinkedIn
</a>
{% endif %}
<small class="text-muted">Posted on: {{ job.linkedin_posted_at|date:"M d, Y" }}</small>
{% else %}
<p class="text-muted">This job has not been posted to LinkedIn yet.</p>
{% endif %}
<form method="post" action="{% url 'post_to_linkedin' job.slug %}" class="mt-3">
{% csrf_token %}
<button type="submit" class="btn btn-primary w-100"
{% if not request.session.linkedin_authenticated %}disabled{% endif %}>
<i class="fab fa-linkedin"></i>
{% if job.posted_to_linkedin %}Re-post to LinkedIn{% else %}Post to LinkedIn{% endif %}
</button>
</form>
{% if not request.session.linkedin_authenticated %}
<small class="text-muted">You need to <a href="{% url 'linkedin_login' %}">authenticate with LinkedIn</a> first.</small>
{% endif %}
{% if job.linkedin_post_status and 'ERROR' in job.linkedin_post_status %}
<div class="alert alert-danger mt-2">
<small>{{ job.linkedin_post_status }}</small>
</div>
{% endif %}
</div>
</div>
<div class="card border-secondary shadow-sm mb-4">
<div class="card-header bg-secondary text-white">
<h5 class="mb-0">Applicant Form Management</h5>
</div>
<div class="card-body d-grid gap-2">
<p class="text-muted mb-3">
Manage the custom application forms associated with this job posting.
</p>
{# Primary Action: Highlight the creation of a NEW form #}
<a href=""
class="btn btn-lg btn-success">
<i class="fas fa-plus-circle me-2"></i> Create New Form
</a>
{# Secondary Action: Make the list button less prominent #}
<a href=""
class="btn btn-sm btn-outline-primary">
View All Existing Forms
</a>
</div>
</div>
<!-- Applicants List Card -->
<div class="card mb-4">
<div class="card-header bg-primary text-white">
<h5 class="mb-0">
<i class="fas fa-users"></i> Applicants ({{ total_candidates }})
</h5>
</div>
<div class="card-body">
{% if total_candidates > 0 %}
<!-- Quick Stats -->
<div class="row mb-4">
<div class="col-12">
<div class="d-flex justify-content-around text-center">
<div class="p-2">
<div class="h5 text-primary">{{ applied_count }}</div>
<small class="text-muted">Applied</small>
</div>
<div class="p-2">
<div class="h5 text-info">{{ interview_count }}</div>
<small class="text-muted">Interview</small>
</div>
<div class="p-2">
<div class="h5 text-success">{{ offer_count }}</div>
<small class="text-muted">Offer</small>
</div>
</div>
</div>
</div>
<!-- Applicants List -->
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Stage</th>
<th>Date Applied</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for candidate in candidates %}
<tr>
<td>
<strong>{{ candidate.first_name }} {{ candidate.last_name }}</strong>
</td>
<td>{{ candidate.email }}</td>
<td>
<span class="badge bg-{% if candidate.stage == 'Applied' %}primary{% elif candidate.stage == 'Interview' %}info{% elif candidate.stage == 'Offer' %}success{% else %}secondary{% endif %}">
{{ candidate.stage }}
</span>
</td>
<td>{{ candidate.created_at|date:"M d, Y" }}</td>
<td>
<a href="{% url 'candidate_detail' candidate.slug %}" class="btn btn-sm btn-outline-primary">
<i class="fas fa-eye"></i> View
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% if candidates|length > 5 %}
<div class="text-center mt-3">
<a href="{% url 'job_candidates_list' job.slug %}" class="btn btn-sm btn-outline-primary">
View All Applicants ({{ total_candidates }})
</a>
</div>
{% endif %}
{% else %}
<div class="text-center py-4">
<i class="fas fa-user-slash fa-3x text-muted mb-3"></i>
<h6 class="text-muted">No applicants yet</h6>
<p class="text-muted small">Candidates will appear here once they apply for this position.</p>
</div>
{% endif %}
</div>
</div>
<!-- Internal Info Card -->
<div class="card">
<div class="card-header">
<h5>Internal Information</h5>
</div>
<div class="card-body">
<p><strong>Internal Job ID:</strong> {{ job.internal_job_id }}</p>
<p><strong>Created:</strong> {{ job.created_at|date:"M d, Y" }}</p>
<p><strong>Last Updated:</strong> {{ job.updated_at|date:"M d, Y" }}</p>
{% if job.reporting_to %}
<p><strong>Reports To:</strong> {{ job.reporting_to }}</p>
{% endif %}
</div>
</div>
</div>
</div>
<div class="mt-3 mb-5">
<a href="{% url 'job_update' job.slug %}" class="btn btn-outline-primary me-2">
<i class="fas fa-edit"></i> Edit Job
</a>
<a href="{% url 'candidate_create_for_job' job.slug %}" class="btn btn-success me-2">
<i class="fas fa-user-plus"></i> Create Candidate
</a>
<a href="{% url 'job_list' %}" class="btn btn-outline-secondary">
<i class="fas fa-arrow-left"></i> Back to Jobs
</a>
</div>
<!--modal class for upload file-->
{% include "jobs/partials/image_upload.html" %}
{% endblock %}