feat: документация из Nextcloud, график у сотрудника, автоочистка фото, мониторинг, итог мастера, фильтр по местам; доп. сервисы в docker-compose

- docker-compose.yml: профили docs (Nextcloud), office (ONLYOFFICE Document Server), ai (Ollama + скачивание модели)
- автонастройка: адреса Nextcloud, ONLYOFFICE, портала и модели подставляются из .env или по именам сервисов
  во внутренней сети Docker; значения из интерфейса важнее
- локальная модель в своей сети (имя сервиса, частный IP) подключается без ключа API
- .env.example, docs/DEPLOY.md (раздел 7а), README
This commit is contained in:
darkorion
2026-10-13 13:27:20 +03:00
parent 3a6e1f444c
commit 0f239d5015
44 changed files with 2131 additions and 94 deletions
+4 -3
View File
@@ -122,13 +122,14 @@ def notify(user_ids, title: str, body: str, url: str = "/"):
def users_for_assignment(db: Session, user_id, position_id) -> list[int]:
"""Кого уведомлять о назначении: конкретного человека или тех, кто сейчас на смене в должности."""
"""Кого уведомлять о назначении: конкретного человека или тех, кто занимает должность и сейчас на смене
по своему графику (сменщики, которые дома, уведомлений не получают)."""
if user_id:
return [user_id]
if position_id:
pos = db.get(Position, position_id)
us = db.scalars(select(User).where(User.position_id == position_id, User.is_active.is_(True))).all()
return [u.id for u in us if pos and logic.shift_active(pos.schedule, logic.config.now())]
now = logic.config.now()
return [u.id for u in us if logic.user_on_shift(u, now)]
return []