Чат: сортировка по активности, непрочитанные, кнопка «Написати»
- Порядок каналов/ЛС — по реальному времени последнего поста (тянем per-channel, т.к. last_post_at из списка каналов ненадёжен), архивные (delete_at>0) — вниз - Непрочитанные: счётчик по websocket, бейдж на строке + жирное имя, префикс «(N)» в тайтле, браузерное уведомление; сброс при открытии канала - Кнопка «Написати в чат» на карточке сотрудника → /chat/?dm=<mm_id>, чат открывает/создаёт ЛС с этим человеком (идемпотентный /channels/direct) - Тесты кнопки чата в EmployeeDetailTests Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -12,8 +12,15 @@
|
||||
До списку співробітників
|
||||
</a>
|
||||
<div style="display:flex; align-items:center; gap:0.5rem;">
|
||||
<a href="/tasks/?responsible={{ employee.pk }}" hx-get="/tasks/?responsible={{ employee.pk }}" hx-target="#main-content" hx-push-url="/tasks/?responsible={{ employee.pk }}" hx-indicator="#loader"
|
||||
{% if employee.mattermost_user_id and employee.pk != request.user.pk %}
|
||||
<a href="/chat/?dm={{ employee.mattermost_user_id }}" hx-get="/chat/?dm={{ employee.mattermost_user_id }}" hx-target="#main-content" hx-push-url="/chat/?dm={{ employee.mattermost_user_id }}" hx-indicator="#loader"
|
||||
class="btn btn-primary" style="font-size:0.8125rem; text-decoration:none; display:inline-flex; align-items:center; gap:0.375rem;">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
|
||||
Написати в чат
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="/tasks/?responsible={{ employee.pk }}" hx-get="/tasks/?responsible={{ employee.pk }}" hx-target="#main-content" hx-push-url="/tasks/?responsible={{ employee.pk }}" hx-indicator="#loader"
|
||||
class="btn btn-secondary" style="font-size:0.8125rem; text-decoration:none; display:inline-flex; align-items:center; gap:0.375rem;">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" x2="12" y1="5" y2="19"/><line x1="5" x2="19" y1="12" y2="12"/></svg>
|
||||
Призначити задачу
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user