Files
ACORE/templates/partials/employee-profile-sidebar.html
T
lokses 3359a8db13 employees: HR-заявки, приглашения на пароль, профиль и 2FA
Модель/сервисы HR-заявок с заменами, приглашения на установку пароля
(инвайты), обновлённая страница профиля сотрудника и правки 2FA.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-09 18:03:32 +03:00

54 lines
3.6 KiB
HTML

{% load common_tags %}
{% load i18n %}
{% if manager_chain %}
<div style="background:var(--color-card); border-radius:0.75rem; border:1px solid var(--color-border); padding:1rem 1.25rem;">
<h3 style="font-size:0.8125rem; font-weight:600; margin-bottom:0.75rem;">{% trans "Цепочка руководства" %}</h3>
<div style="display:flex; flex-direction:column; gap:0.5rem;">
{% for mgr in manager_chain %}
<a href="/employees/{{ mgr.pk }}/?tab=overview" hx-get="/employees/{{ mgr.pk }}/?tab=overview" hx-target="#main-content" hx-push-url="/employees/{{ mgr.pk }}/?tab=overview" hx-indicator="#loader"
style="display:flex; align-items:center; gap:0.5rem; text-decoration:none;">
<span style="width:1.5rem; height:1.5rem; border-radius:50%; background:color-mix(in srgb, var(--color-primary) 10%, transparent); color:var(--color-primary); display:flex; align-items:center; justify-content:center; font-size:0.625rem; font-weight:600; flex-shrink:0;">{{ mgr|initials }}</span>
<span style="font-size:0.8125rem; color:var(--color-foreground);">{{ mgr.get_full_name }}</span>
</a>
{% endfor %}
</div>
</div>
{% endif %}
{% if subordinates %}
<div style="background:var(--color-card); border-radius:0.75rem; border:1px solid var(--color-border); padding:1rem 1.25rem;">
<h3 style="font-size:0.8125rem; font-weight:600; margin-bottom:0.75rem;">{% trans "Подчинённые" %} · {{ subordinates|length }}</h3>
<div style="display:flex; flex-direction:column; gap:0.625rem;">
{% for sub in subordinates %}
<a href="/employees/{{ sub.pk }}/?tab=overview" hx-get="/employees/{{ sub.pk }}/?tab=overview" hx-target="#main-content" hx-push-url="/employees/{{ sub.pk }}/?tab=overview" hx-indicator="#loader"
style="display:flex; align-items:center; gap:0.5rem; text-decoration:none;">
<span style="width:1.75rem; height:1.75rem; border-radius:50%; background:color-mix(in srgb, var(--color-primary) 10%, transparent); color:var(--color-primary); display:flex; align-items:center; justify-content:center; font-size:0.625rem; font-weight:600; flex-shrink:0;">{{ sub|initials }}</span>
<div>
<div style="font-size:0.8125rem; color:var(--color-foreground);">{{ sub.get_full_name }}</div>
{% if sub.post %}<div style="font-size:0.6875rem; color:var(--color-muted-foreground);">{{ sub.post.name }}</div>{% endif %}
</div>
</a>
{% endfor %}
</div>
</div>
{% endif %}
{% if can_view_pii and last_attendance %}
<div style="background:var(--color-card); border-radius:0.75rem; border:1px solid var(--color-border); padding:1rem 1.25rem;">
<h3 style="font-size:0.8125rem; font-weight:600; margin-bottom:0.75rem;">{% trans "Последнее посещение" %}</h3>
<div style="font-size:0.8125rem;">{% if last_attendance.direction == 'in' %}{% trans "Приход" %}{% else %}{% trans "Выход" %}{% endif %} · {{ last_attendance.timestamp|date:"d.m.Y H:i" }}</div>
<div style="font-size:0.75rem; color:var(--color-muted-foreground); margin-top:0.125rem;">{{ last_attendance.location.name }}</div>
</div>
{% endif %}
{% if employee.groups.all %}
<div style="background:var(--color-card); border-radius:0.75rem; border:1px solid var(--color-border); padding:1rem 1.25rem;">
<h3 style="font-size:0.8125rem; font-weight:600; margin-bottom:0.75rem;">{% trans "Группы доступа" %}</h3>
<div style="display:flex; flex-wrap:wrap; gap:0.375rem;">
{% for group in employee.groups.all %}
<span class="badge badge-muted">{{ group.name }}</span>
{% endfor %}
</div>
</div>
{% endif %}