Date: Mon, 22 Sep 2025 10:30:00 +0300
Subject: [requests] Drawer «Рассмотреть», корректный чекбокс «Черновик», дружелюбные даты,
robust-обработка ошибок reject, и глобальный бейдж непрочитанных чатов
- Список заявлений:
- вместо россыпи кнопок добавлен аккуратный выезжающий блок действий (collapse drawer)
по клику «Рассмотреть»; компактные нейтральные стили, мягкая анимация.
- в модале «Изменить» добавлена галочка «Сохранить как черновик» с правильной
семантикой: hidden `_save_as=submit` по умолчанию + checkbox `_save_as=draft`.
Теперь снятие галочки действительно снимает draft.
- улучшены стили и структура разметки.
- Даты:
- на фронт-обёртке нормализуем datetime-поля (created_at/updated_at/decided_at)
в человекочитаемый вид, чтобы не светить сырые ISO 8601.
- Обработка ошибок:
- фикс падения при попытке отклонить уже одобренную заявку: ответ 400 у DRF
может приходить списком ошибок; теперь сообщение извлекается безопасно.
- Чаты:
- синхронизировали название ключа контекста с проектом (`chat_unread_total`);
- бейдж «Чаты» обновляется глобальным событием `chats:unread-total`, даже если
список чатов не открыт (fallback — суммирование счётчиков на странице).
Примечание: пути к шаблонам могут отличаться в вашем проекте — ниже даны
типовые варианты (`backend/requests_app/templates/...`). Если у вас другой
layout, внесите изменения в соответствующие файлы шаблонов.
49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
# backend\employees\constants.py
|
||
GENDER_CHOICES = (
|
||
(1, "Мужской"),
|
||
(2, "Женский"),
|
||
(0, "Не указан"),
|
||
)
|
||
|
||
|
||
ACTION_HIRED = "hired"
|
||
ACTION_DISMISSED = "dismissed"
|
||
ACTION_ON_LEAVE = "on_leave"
|
||
ACTION_RETURNED_FROM_LEAVE = "returned_from_leave"
|
||
ACTION_ON_MATERNITY = "on_maternity"
|
||
ACTION_RETURNED_FROM_MATERNITY = "returned_from_maternity"
|
||
ACTION_TRANSFERRED = "transferred"
|
||
ACTION_REHIRED = "rehired"
|
||
|
||
ACTION_CHOICES = [
|
||
(ACTION_HIRED, "Принят"),
|
||
(ACTION_DISMISSED, "Уволен"),
|
||
(ACTION_ON_LEAVE, "В отпуске"),
|
||
(ACTION_RETURNED_FROM_LEAVE, "Вернулся из отпуска"),
|
||
(ACTION_ON_MATERNITY, "В декрете"),
|
||
(ACTION_RETURNED_FROM_MATERNITY, "Вернулся из декрета"),
|
||
(ACTION_TRANSFERRED, "Переведен"),
|
||
(ACTION_REHIRED, "Восстановлен"),
|
||
]
|
||
|
||
|
||
class DeptPerm:
|
||
MANAGE = "manage_department"
|
||
CHANGE_HEAD = "change_department_head"
|
||
ASSIGN_ROLE = "assign_department_role"
|
||
MANAGE_CALENDAR = "manage_department_events"
|
||
CREATE_POST = "publish_department_post"
|
||
MANAGE_FEED = "manage_department_feed"
|
||
VIEW_REQUESTCOMMENT = "view_requestcomment"
|
||
ADD_REQUESTCOMMENT = "add_requestcomment"
|
||
|
||
CHOICES = (
|
||
(MANAGE, "Управлять отделом"),
|
||
(CHANGE_HEAD, "Назначать руководителя"),
|
||
(ASSIGN_ROLE, "Назначать роли участникам"),
|
||
(MANAGE_CALENDAR, "Управлять календарём отдела"),
|
||
(CREATE_POST, "Публиковать новости на странице отдела"),
|
||
(MANAGE_FEED, "Редактировать публикации отдела"),
|
||
(VIEW_REQUESTCOMMENT, "Просмотр комментариев по заявлениям"),
|
||
(ADD_REQUESTCOMMENT, "Добавление коментариев по заявлениям"),
|
||
) |