From 73e83e2413accfaa699582b39e02f9bf4fe6020b Mon Sep 17 00:00:00 2001 From: MpakobecEx Date: Mon, 26 Oct 2026 01:54:34 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D0=BD=D1=8E=20=D0=B2=20=D1=88?= =?UTF-8?q?=D0=B0=D0=BF=D0=BA=D0=B5=20=D1=81=D0=BE=D0=B1=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=B2=20=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Вместо длинного ряда ссылок теперь «Сообщения» (шаблоны, расписания, отправка) и «Пользователи» (список, админы, звания); на десктопе группы раскрываются при наведении и по клику, на телефоне — по нажатию. Служебный текст «админ» и версия из шапки убраны, версия осталась в подвале. --- README.md | 2 +- admin/templates/base.html | 89 +++++++++++++++++++++++++++++++++------ common/version.py | 2 +- tests/test_version.py | 2 +- 4 files changed, 79 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8a77cc4..e6badaa 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ make backup E=test # на домашнем сервере: ./scripts/clickho ## Версионирование -- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.3`. +- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.4`. - Схема — SemVer-подобная (`MAJOR.MINOR.PATCH`); git-тег = `v` + версия (`v0.1`). - Docker-образы тегируются версией (Блок 2), события ClickHouse получают `bot_version` (Блок 3). - Выпуск: изменить `common/version.py` → коммит → аннотированный тег `vX.Y` → `git push --tags`. diff --git a/admin/templates/base.html b/admin/templates/base.html index 5b04595..cd58930 100644 --- a/admin/templates/base.html +++ b/admin/templates/base.html @@ -22,24 +22,58 @@ @@ -63,6 +97,35 @@ }); } + var groups = document.querySelectorAll("[data-group]"); + groups.forEach(function (group) { + var toggle = group.querySelector("[data-group-toggle]"); + var dropdown = group.querySelector("[data-group-dropdown]"); + if (!toggle || !dropdown) return; + + function setOpen(open) { + dropdown.classList.toggle("hidden", !open); + toggle.setAttribute("aria-expanded", String(open)); + } + + toggle.addEventListener("click", function (event) { + event.stopPropagation(); + setOpen(dropdown.classList.contains("hidden")); + }); + + if (window.matchMedia("(min-width: 640px)").matches) { + group.addEventListener("mouseenter", function () { setOpen(true); }); + group.addEventListener("mouseleave", function () { setOpen(false); }); + } + }); + + document.addEventListener("click", function () { + groups.forEach(function (group) { + var dropdown = group.querySelector("[data-group-dropdown]"); + if (dropdown) dropdown.classList.add("hidden"); + }); + }); + var tags = { b: ["", ""], i: ["", ""], diff --git a/common/version.py b/common/version.py index a0d7363..41c3baf 100644 --- a/common/version.py +++ b/common/version.py @@ -7,4 +7,4 @@ from __future__ import annotations -__version__ = "0.6.3" +__version__ = "0.6.4" diff --git a/tests/test_version.py b/tests/test_version.py index 2b6b99a..c747b3c 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -7,4 +7,4 @@ from common import __version__ def test_version_is_set(): assert __version__ - assert __version__ == "0.6.3" + assert __version__ == "0.6.4"