KNOTTA research & development

Работник

Что значит быть работником в платформе и как информация о вас попадает в наряд.

Работник

Роль: worker Особенность: в большинстве случаев работник не входит в платформу. Запись User(role=worker) нужна, чтобы бригадир мог указать вас в отчёте и зафиксировать ваши часы.

Как платформа знает о вас

Администратор или сотрудник создаёт учётную запись User(role=worker, is_active=True) с вашим ФИО. Эту учётку бригадир выбирает из выпадающего списка при заполнении отчёта.

Эндпоинт /api/workers/ отдаёт всех активных пользователей с ролью worker. SurveyJS показывает их через lazy-loading с поиском по ФИО.

Как ваши часы попадают в систему

Сценарий без вашего участия в платформе:

Загрузка диаграммы…

После утверждения отчёта система:

  1. Читает survey_data.routine-care-workers и survey_data.topiary-cutting-workers.
  2. Создаёт записи ServiceVisitMember(user=вы, service_visit=наряд, role=worker).
  3. Если запись уже была — оставляет.
  4. Если бригадир убрал вас из отчёта — удаляет (роль 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
Меня вычеркнули из отчёта при доработкеПерепроверить с бригадиром — может, забыл вписать. Или восстановить через утверждение исправленного отчёта
На странице