Работник
Что значит быть работником в платформе и как информация о вас попадает в наряд.
Работник
Роль: worker
Особенность: в большинстве случаев работник не входит в платформу. Запись User(role=worker) нужна, чтобы бригадир мог указать вас в отчёте и зафиксировать ваши часы.
Как платформа знает о вас
Администратор или сотрудник создаёт учётную запись User(role=worker, is_active=True) с вашим ФИО. Эту учётку бригадир выбирает из выпадающего списка при заполнении отчёта.
Эндпоинт /api/workers/ отдаёт всех активных пользователей с ролью worker. SurveyJS показывает их через lazy-loading с поиском по ФИО.
Как ваши часы попадают в систему
Сценарий без вашего участия в платформе:
После утверждения отчёта система:
- Читает
survey_data.routine-care-workersиsurvey_data.topiary-cutting-workers. - Создаёт записи
ServiceVisitMember(user=вы, service_visit=наряд, role=worker). - Если запись уже была — оставляет.
- Если бригадир убрал вас из отчёта — удаляет (роль
worker, не затрагиваяlead).
Так платформа всегда знает, кто фактически работал на каждом объекте.
Что вы видите, если всё-таки заходите в дашборд
Если в Supabase Auth у вас есть учётка с ролью worker и вы вошли в дашборд — вы увидите наряды, в которых числитесь участником. Это работает за счёт фильтра в ServiceVisitViewSet.get_queryset:
return qs.filter(
Q(brigadier_id=user.id) | Q(members__user_id=user.id)
).distinct()Возможности в дашборде:
- Просмотр списка ваших нарядов и их статусов.
- Просмотр отчётов, привязанных к вашим нарядам.
- Прикрепление файлов к отчёту (если бригадир делегировал).
Без:
- Создания нарядов (это делает сотрудник или администратор).
- Утверждения отчётов (это делает
staff/admin). - Подачи отчёта на проверку (это делает бригадир — автор отчёта).
Часовые пояса
Все таймстемпы в дашборде показываются в локальной зоне браузера. Бэкенд хранит UTC. Если разница в часовом поясе — например, между Москвой и Кавминводами — UI обычно нивелирует это автоматически.
Уведомления
По умолчанию работник не подписан ни на какие уведомления — у роли worker нет ролевых умолчаний в DEFAULT_PREFERENCES. Если нужно — администратор может добавить подписки вручную через Django Admin.
Если что-то не сходится
| Симптом | Что делать |
|---|---|
| Меня нет в выпадающем списке работников | Попросить админа создать User(role=worker, is_active=True) с вашим ФИО |
Меня переключили на роль worker и я вылетел из дашборда | Логично — роль worker не предполагает регулярной работы в дашборде. Если нужен доступ — попросить роль brigadier или staff |
| Меня вычеркнули из отчёта при доработке | Перепроверить с бригадиром — может, забыл вписать. Или восстановить через утверждение исправленного отчёта |