Админам: персональное отключение уведомлений от клиентов

В админ-панели кнопка «Уведомления: вкл 🔔 / выкл 🔕» — админ (в т.ч. из ADMIN_IDS/
супер-админ) может лично отключить приём уведомлений о заявках и сообщениях клиентов.
Флаг notify_muted хранится в профиле; _notify_operators пропускает замьюченных
получателей (у остальных операторов уведомления идут как обычно).

pytest 37 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kenik
2026-07-26 10:37:58 +03:00
parent f1c984ed69
commit 81c1162ca1
3 changed files with 40 additions and 4 deletions
+13
View File
@@ -213,6 +213,19 @@ def test_admin_edit_link(app):
assert app._link("group_4") == "https://infocyber.pro/pay/group4"
def test_admin_mute_notifications(app):
"""Админ может отключить себе уведомления от клиентов — _notify_operators его пропускает."""
op = _admin()
bot.config.OPERATOR_PEER_IDS = [op]
app._sent.clear(); app._notify_operators("тест-уведомление")
assert any("тест-уведомление" in s["msg"] for s in app._sent) # по умолчанию доходит
app.handle_message(op, "Админка ⚙️")
app.handle_message(op, "Уведомления: вкл 🔔") # переключаем в «выкл»
assert bot.db.get_profile(op).get("notify_muted") is True
app._sent.clear(); app._notify_operators("второе уведомление")
assert not any("второе уведомление" in s["msg"] for s in app._sent) # больше не доходит
def test_admin_faq_crud(app):
a = _admin()
app.handle_message(a, "Быстрые ответы 💬")