From 7bbca7d746e609f68c0c9d6cdfc52e1f8e6a140c Mon Sep 17 00:00:00 2001 From: ismail Date: Sun, 2 Nov 2025 13:42:12 +0300 Subject: [PATCH] small updates --- recruitment/__pycache__/forms.cpython-313.pyc | Bin 62237 -> 64460 bytes recruitment/__pycache__/urls.cpython-313.pyc | Bin 18098 -> 18255 bytes recruitment/__pycache__/views.cpython-313.pyc | Bin 140665 -> 147382 bytes recruitment/forms.py | 65 +- recruitment/urls.py | 3 +- recruitment/views.py | 173 ++++- recruitment/views_source.py | 80 ++- .../recruitment/source_confirm_delete.html | 201 +++--- templates/recruitment/source_detail.html | 599 +++++++++++------- templates/recruitment/source_form.html | 498 +++++---------- templates/recruitment/source_list.html | 375 ++++++----- 11 files changed, 1122 insertions(+), 872 deletions(-) diff --git a/recruitment/__pycache__/forms.cpython-313.pyc b/recruitment/__pycache__/forms.cpython-313.pyc index cbf6857f87fe78c444e141fc556929b95b76132a..c3d5efb4b235e8b0d6ee130af465353ee38d2cc1 100644 GIT binary patch delta 13552 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

9)`tD@&(#A6s*^>0l&E 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 WXS;f}%aYUajL3OqTWXzu>Hh(hL;M^7 delta 2151 zcmXw)NlcqZ6vz4OaRMYEgsot(S&i9AN{nr66N52k2V+4NRzu9b6Lu2P9x4t^L^Mi^ z+NwgWR9S7+I;96x^;EToHivvql{(6;m3oMBXeO=HOAqaQ^HNLxYu^0cd-LYac>LtP z^3^>h>92F=663^2AJR`h^F2t))cu|IsKlA1kmIqWM+$v$K2Q0cCMUn9{BYcn+^ti7 zryr#JBlIveU$5`|lX`X4$4^p|6@}1W)6!A`N=OMMIQ2cs%3eU3)RpLu+tRuJ1KfLszo_5(X$)G5LMr`}Jcg0|3Taz74b~U-J$sJAh z=!M#C{C>**FgsTU=gMN)Ks;O@riJ!`Y>mE5 zj58$cn-9}jRw-na#?ET|Oqh<^vz0L2wP)r?uN2{>CgdDOn7InfRk1-JjXX6>WA-fJ z_LDu^Dc#J{E%zv$<=Y_Nrn)}Lak{5(#kg!2{$#UCgdO4SfK|BJ!;bpAOn0$r1ZMA1&5{XN_|i2iQD9nvCTRe zdns1WYWkt3UmaQna*GFalC~hVpO~3*2%JOe%^e`Syj2&bDV|C#zenbmx+`Zs^=Mmv z;wi%XqyOi(v6?=p=~D-{f$Z=w<{v|PITm5HA*cn6(M4O=|lHkWn5I*G-lFf7Dxqf7%sI>#k^ZPDy=7&U`D!&#%0?OG}vT z^_Zxz7ixOdYqExAz3jk>M)z|LBJVCfSd6-W*!ikhr{1d_;egaluL{5H}%gf9Eii}%p-8f2HtqJCD<1{I>q zvq0u}gF#l&NSAyW@jf(~=zX85*pEgV#uY~mtRw&>0kvxy$P8~s+Cf3Yb)wNlU-(S= zZbO(p_Z98Qyc1gVe(s@#8Ee2;qt=Or^zcdapTgAg<#T~qJX>;e(@1BKmPT!?ya&pA z)T^67w)ia4Iiz(be&&vVJHq4Q=9OOE%eXj0NXO?5;SuctUO=zHqdsP71xu^iBVV^g z%&~+t>(IusZICUV)LtMVzKnDosV%m~?AO75T^+pxWRGtk-J}=%rm-zFnor5zRzxGL zss*aVEsOw}-~qhy9Y{;GpGY&5HLIPIK&E&n(q5!;n*k^n{S~)ufrpR|(*u7-{0JJO z^b3E+UKourjB}pYnCmLIuByZ9KsNX|(wj(KCwq6gVF!9 zQEV#=WQ?z(*Dbo=oEyJ}#yb5{7#nD8(qEc$^;@UH6q<`K$vfmdEmA^4w;Jqc!378| Zh(lgiy5(8-=y=0v&FjrGE04r~^M7}Ex@Z6Z diff --git a/recruitment/__pycache__/views.cpython-313.pyc b/recruitment/__pycache__/views.cpython-313.pyc index 4ce6a383fa278c1050294d0cadfbdc48208547f2..15a2a16a96ea2c6be243d68337db9639ac3436b5 100644 GIT binary patch delta 30197 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

+
-
-
-
- - {% trans "Delete Source" %} -
-
-
-
-
{% trans "Confirm Deletion" %}
-

{% trans "Are you sure you want to delete the following source? This action cannot be undone." %}

-
+
+

{{ title }}

+ + Back to Source + +
- -
-
-
{% trans "Source Information" %}
-
- - - - - - - - - - - - - - - - - - - - - -
{% trans "Name" %}{{ source.name }}
{% trans "Type" %} - {{ source.source_type }} -
{% trans "Status" %} - {% if source.is_active %} - - - {% trans "Active" %} - - {% else %} - - - {% trans "Inactive" %} - - {% endif %} -
{% trans "Created By" %}{{ source.created_by }}
{% trans "Created At" %}{{ source.created_at|date:"M d, Y H:i" }}
-
-
-
- - -
-
-
-
- - {% trans "Important Note" %} -
-
    -
  • {% trans "All associated API keys will be permanently deleted." %}
  • -
  • {% trans "Integration logs related to this source will remain but will show 'Source deleted'." %}
  • -
  • {% trans "Any active integrations using this source will be disconnected." %}
  • -
-
-
-
- - -
-
-
+
+
+
+
+
+
- - - {% trans "Cancel" %} - + Warning: This action cannot be undone. + Deleting this source will also remove all associated integration logs and API credentials.
-
- {% csrf_token %} +
+ +
+
Source to be deleted:
+
+
+
+
+ Name:
+ {{ source.name }} +
+
+ Type:
+ {{ source.get_source_type_display }} +
+
+ {% if source.description %} +
+
+ Description:
+ {{ source.description|linebreaks }} +
+ {% endif %} +
+
+
+ Created:
+ {{ source.created_at|date:"M d, Y H:i" }} +
+
+ Total API Calls:
+ {{ source.integration_logs.count }} +
+
+
+
+
+ + + {% csrf_token %} +
+ + Cancel + - +
+ +
+
+
+ +
+
+
+
Impact Summary
+
+
+
+ +
+ {{ source.integration_logs.count }} will be deleted +
+
+
+ +
+ API Key & Secret will be permanently lost +
+
+
+ +
+ Any systems using this API will lose access +
@@ -110,19 +109,3 @@
{% endblock %} - -{% block extra_js %} - -{% endblock %} diff --git a/templates/recruitment/source_detail.html b/templates/recruitment/source_detail.html index 5203f82..05cf88c 100644 --- a/templates/recruitment/source_detail.html +++ b/templates/recruitment/source_detail.html @@ -1,228 +1,287 @@ -{% extends 'base.html' %} -{% load i18n %} +{% extends "base.html" %} +{% load static %} -{% block title %} - {{ source.name }} | {% trans "Source Details" %} | {% trans "Recruitment System" %} -{% endblock %} +{% block title %}{{ source.name }} - Source Details{% endblock %} {% block content %} -
- -
-
-
-
-

{{ source.name }}

- -
- -
-
-
- - -
-
-
-
-
- - {% trans "Source Information" %} -
-
-
-
-
- - - - - - - - - - - - - -
{% trans "Name" %}{{ source.name }}
{% trans "Type" %} - {{ source.source_type }} -
{% trans "Status" %} - {% if source.is_active %} - - - {% trans "Active" %} - - {% else %} - - - {% trans "Inactive" %} - - {% endif %} -
-
-
- - - - - - - - - - - - - -
{% trans "Created By" %}{{ source.created_by }}
{% trans "Created At" %}{{ source.created_at|date:"M d, Y H:i" }}
{% trans "Updated At" %}{{ source.updated_at|date:"M d, Y H:i" }}
-
-
-
-
-
{% trans "Description" %}
-

{{ source.description|default:"-" }}

-
-
-
-
-
-
- +
- -
-
-
-
- - {% trans "Network Configuration" %} -
+
+
+

{{ source.name }}

+
+ + Edit + + + Generate Keys + + + + Delete +
-
-
- {% trans "IP Address" %}: - {{ source.ip_address|default:"Not specified" }} -
-
- {% trans "Trusted IPs" %}: -
- {% if source.trusted_ips %} -
- {% for ip in source.trusted_ips|split:"," %} - {{ ip|strip }} - {% endfor %} +
+ + +
+
+
+
+
Source Information
+
+
+
+
+
+ +
{{ source.name }}
+
+
+
+
+ +
+ {{ source.get_source_type_display }} +
+
+
+
+ + {% if source.description %} +
+ +
{{ source.description|linebreaks }}
+
+ {% endif %} + +
+
+
+ +
+ {% if source.contact_email %} + {{ source.contact_email }} + {% else %} + Not specified + {% endif %} +
+
+
+
+
+ +
+ {% if source.contact_phone %} + {{ source.contact_phone }} + {% else %} + Not specified + {% endif %} +
+
+
+
+ +
+
+
+ +
+ {% if source.is_active %} + Active + {% else %} + Inactive + {% endif %} +
+
+
+
+
+ +
+ {% if source.requires_auth %} + Yes + {% else %} + No + {% endif %} +
+
+
+
+ + {% if source.webhook_url %} +
+ +
{{ source.webhook_url }}
+
+ {% endif %} + + {% if source.api_timeout %} +
+ +
{{ source.api_timeout }} seconds
+
+ {% endif %} + + {% if source.notes %} +
+ +
{{ source.notes|linebreaks }}
+
+ {% endif %} + +
+
+
+ +
{{ source.created_at|date:"M d, Y H:i" }}
+
+
+
+
+ +
{{ source.updated_at|date:"M d, Y H:i" }}
+
+
+
+
+
+
+ +
+ +
+
+
API Credentials
+
+
+
+ +
+ + +
+
+
+ +
+ + + +
+
+ +
+
+ + +
+
+
Integration Statistics
+
+
+
+ +
{{ total_logs }}
+
+
+ +
{{ successful_logs }}
+
+
+ +
{{ failed_logs }}
+
+ {% if total_logs > 0 %} +
+ +
+ {% widthratio successful_logs total_logs 100 %}% +
- {% else %} - Not specified {% endif %}
-
- -
-
-
-
- - {% trans "API Configuration" %} -
+ +
+
+
Recent Integration Logs
+ Last 10 logs
-
- {% trans "Integration Version" %}: - {{ source.integration_version|default:"Not specified" }} -
-
- {% trans "API Key" %}: -
- - -
-
-
- {% trans "API Secret" %}: -
- - -
-
-
-
-
-
- - -
-
-
-
-
- - {% trans "Recent Integration Logs" %} -
- - - {% trans "Back to List" %} - -
-
- {% if recent_logs %} + {% if integration_logs %}
- - +
+ - - - - - + + + + + - {% for log in recent_logs %} + {% for log in integration_logs %} - - + + @@ -230,20 +289,10 @@
{% trans "Time" %}{% trans "Action" %}{% trans "Endpoint" %}{% trans "Method" %}{% trans "Status" %}TimestampMethodStatusResponse TimeDetails
{{ log.created_at|date:"M d, Y H:i:s" }} - {{ log.get_action_display }} - - {{ log.endpoint }} + {{ log.created_at|date:"M d, Y H:i:s" }} {{ log.method }} - {% if log.success %} - Success + {% if log.status_code >= 200 and log.status_code < 300 %} + {{ log.status_code }} + {% elif log.status_code >= 400 %} + {{ log.status_code }} {% else %} - Failed + {{ log.status_code }} + {% endif %} + + {% if log.response_time_ms %} + {{ log.response_time_ms }}ms + {% else %} + - + {% endif %} + + {% if log.request_data %} + + {% else %} + No data {% endif %}
- {% if recent_logs.has_previous %} - - {% endif %} {% else %} -
- -
{% trans "No integration logs found" %}
-

- {% trans "Integration logs will appear here when this source is used for external integrations." %} -

+
+ +

No integration logs found

{% endif %}
@@ -251,35 +300,119 @@
+ + +{% for log in integration_logs %} + {% if log.request_data %} + + {% endif %} +{% endfor %} {% endblock %} {% block extra_js %} {% endblock %} diff --git a/templates/recruitment/source_form.html b/templates/recruitment/source_form.html index 05f789a..c630388 100644 --- a/templates/recruitment/source_form.html +++ b/templates/recruitment/source_form.html @@ -1,293 +1,177 @@ -{% extends 'base.html' %} -{% load i18n %} +{% extends "base.html" %} +{% load static %} +{% load widget_tweaks %} -{% block title %} - {% if title %}{{ title }} | {% endif %}{% trans "Source" %} | {% trans "Recruitment System" %} -{% endblock %} +{% block title %}{{ title }}{% endblock %} {% block content %} - - - - -
+
-
-
-
- {% if title %}{{ title }}{% else %}{% trans "Create New Source" %}{% endif %} -
-
+
+

{{ title }}

+ + Back to Sources + +
+ +
-
+ {% csrf_token %} - - {% if form.errors %} + {% if form.non_field_errors %}
-
{% trans "Please correct the errors below:" %}
- {% for field in form %} - {% if field.errors %} -

{{ field.label }}: {{ field.errors|join:", " }}

- {% endif %} + {% for error in form.non_field_errors %} + {{ error }} {% endfor %}
{% endif %} - {% if messages %} - {% for message in messages %} -