diff --git a/recruitment/__pycache__/models.cpython-312.pyc b/recruitment/__pycache__/models.cpython-312.pyc index a8ac33d..c63aa49 100644 Binary files a/recruitment/__pycache__/models.cpython-312.pyc and b/recruitment/__pycache__/models.cpython-312.pyc differ diff --git a/recruitment/models.py b/recruitment/models.py index 3f7a86e..0e4f3cf 100644 --- a/recruitment/models.py +++ b/recruitment/models.py @@ -647,6 +647,11 @@ class Candidate(Base): return future_meetings or today_future_meetings + # @property + # def time_to_hire(self): + # time_to_hire=self.hired_date-self.created_at + # return time_to_hire + class TrainingMaterial(Base): diff --git a/templates/account/email/email_confirmation_message.html b/templates/account/email/email_confirmation_message.html index fe01de7..ef7f706 100644 --- a/templates/account/email/email_confirmation_message.html +++ b/templates/account/email/email_confirmation_message.html @@ -6,7 +6,7 @@

- {% blocktrans %}Thank you for choosing **KAAUH ATS**. To verify the ownership of your email address, please click the confirmation link below:{% endblocktrans %} + {% blocktrans %}To verify the ownership of your email address, please click the confirmation link below:{% endblocktrans %}

diff --git a/templates/recruitment/candidate_detail.html b/templates/recruitment/candidate_detail.html index 5c33e40..f579c31 100644 --- a/templates/recruitment/candidate_detail.html +++ b/templates/recruitment/candidate_detail.html @@ -11,9 +11,11 @@ /* ================================================= */ :root { --kaauh-teal: #00636e; + --kaauh-teal-light: #007a88; --kaauh-teal-dark: #004a53; --kaauh-border: #eaeff3; --kaauh-primary-text: #343a40; + --kaauh-accent: #ffcc00; } /* Primary Color Overrides */ @@ -179,30 +181,43 @@ - /* ------------------------------------------- */ /* 1. Base Spinner Styling */ /* ------------------------------------------- */ +.ai-loading-container { + /* Flex container to center content and align icon/spinner */ + display: inline-flex; + align-items: center; + gap: 5px; /* Space between robot icon and spinner */ + font-size: 14px; /* Default text size */ + color: var(--kaauh-teal-light); /* Loading text color */ +} + .kaats-spinner { - animation: kaats-spinner-rotate 1.5s linear infinite; /* Faster rotation */ - width: 40px; /* Standard size */ - height: 40px; - display: inline-block; /* Useful for table cells */ + animation: kaats-spinner-rotate 2s linear infinite; /* Slower, more deliberate rotation */ + width: 100px; /* Smaller size to be subtle */ + height: 100px; vertical-align: middle; } .kaats-spinner .path { - stroke: var(--kaauh-teal, #00636e); /* Use Teal color, fallback to dark teal */ + stroke: var(--kaauh-teal-light, #007a88); /* Lighter Teal for the active path */ stroke-linecap: round; - /* Optional: Add a lighter background circle for contrast */ - /* stroke-dashoffset will be reset by the dash animation */ } /* Optional: Background circle for better contrast (similar to Bootstrap) */ .kaats-spinner circle { stroke: var(--kaauh-border, #e9ecef); /* Light gray background */ fill: none; - stroke-width: 5; /* Keep stroke-width on both circles */ + stroke-width: 4; /* Slightly smaller stroke-width */ +} + +/* New: Robot Icon Style and Animation */ +.ai-robot-icon { + font-size: 2rem; /* Slightly larger than text */ + color: var(--kaauh-teal); + animation: ai-pulse 2s infinite ease-in-out; /* Pulsing effect for 'intelligence' */ + transform-origin: center; } /* ------------------------------------------- */ @@ -229,6 +244,22 @@ } } +/* New Keyframe: AI Pulse effect */ +@keyframes ai-pulse { + 0% { + color: var(--kaauh-teal); + transform: scale(1); + } + 50% { + color: var(--kaauh-accent); /* Accent color pulse */ + transform: scale(1.05); + } + 100% { + color: var(--kaauh-teal); + transform: scale(1); + } +} + {% endblock %} @@ -587,7 +618,7 @@ {# ACTIONS CARD #} -
+
{% trans "Management Actions" %}
+ +
+
{% trans "Time to Hire" %}
+
+ {{candidate.time_to_hire|default:"50 days"}} +
+
+
@@ -629,14 +668,23 @@ {% include 'recruitment/candidate_resume_template.html' %} {% else %} -
- - - - - AI Score Loading..... -
+
+ +
+ {# Robot Icon (Requires Font Awesome or similar library) #} + + + {# The Spinner #} + + + + + + AI Scoring... +
+ +
{% endif %} diff --git a/templates/recruitment/candidate_list.html b/templates/recruitment/candidate_list.html index 41c2be9..7b4f9df 100644 --- a/templates/recruitment/candidate_list.html +++ b/templates/recruitment/candidate_list.html @@ -254,6 +254,7 @@
+ {% if candidates %}
{# View Switcher - list_id must match the container ID #} @@ -290,13 +291,14 @@ {% endif %} {% else %} - +
+ {% trans "AI Scoring..." %}
{% endif %} diff --git a/templates/recruitment/candidate_screening_view.html b/templates/recruitment/candidate_screening_view.html index b828b8c..630e2c2 100644 --- a/templates/recruitment/candidate_screening_view.html +++ b/templates/recruitment/candidate_screening_view.html @@ -395,19 +395,20 @@
- {% if candidate.is_resume_parsed %} + {% if candidate.is_resume_parsed %} {% if candidate.match_score %} {{ candidate.match_score|default:"0" }}% {% endif %} - {% else %} -
+ {% else %} +
+ {% trans 'AI scoring..' %}
{% endif %} diff --git a/templates/recruitment/partials/stage_update_modal.html b/templates/recruitment/partials/stage_update_modal.html index 9e63894..89d11bf 100644 --- a/templates/recruitment/partials/stage_update_modal.html +++ b/templates/recruitment/partials/stage_update_modal.html @@ -52,7 +52,7 @@ Cancel -