From bbe63fc4f0b258c5bce4341b279baf0b68964cf3 Mon Sep 17 00:00:00 2001 From: erjemin Date: Mon, 7 Sep 2026 00:17:01 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20=D0=BA=D0=B0=D0=BD=D0=BE=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=B8=20=D0=B4=D1=80=D1=83=D0=B3=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=B0-=D1=82=D0=B5=D0=B3=D0=B8=20=D0=B8=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B9=D1=82=20=D0=B2=20=D1=88=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=BD=D0=B0=D1=85.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hypn0/hypn0_site/tests.py | 6 ++++++ hypn0/templates/_base.html | 18 +++++++++--------- hypn0/templates/gallery/archive.html | 12 +++++++++++- hypn0/templates/gallery/detail.html | 10 +++++----- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/hypn0/hypn0_site/tests.py b/hypn0/hypn0_site/tests.py index bc1f01c..42458c8 100644 --- a/hypn0/hypn0_site/tests.py +++ b/hypn0/hypn0_site/tests.py @@ -1005,6 +1005,7 @@ class GalleryArchiveTests(BaseMediaTestCase): self.assertEqual(resp_p1.status_code, 200) self.assertEqual(len(resp_p1.context["page_obj"]), 16) self.assertContains(resp_p1, "Фаза 1 из 2") + self.assertContains(resp_p1, "Галерея транса — Каталог анимированных картин | HypnoSVG") # Проверяем сохранение query-параметров в ссылках пагинатора self.assertContains(resp_p1, "floor=all&sort=likes&page=2") @@ -1012,8 +1013,13 @@ class GalleryArchiveTests(BaseMediaTestCase): self.assertEqual(resp_p2.status_code, 200) self.assertEqual(len(resp_p2.context["page_obj"]), 2) self.assertContains(resp_p2, "Фаза 2 из 2") + self.assertContains(resp_p2, "Галерея транса — Каталог анимированных картин (Фаза 2) | HypnoSVG") self.assertContains(resp_p2, "floor=all&sort=likes&page=1") + # Проверяем Title при фильтрации по этажу + resp_curated = self.client.get(url, data={"floor": "curated"}) + self.assertContains(resp_curated, "Одобрено Мозговым Слизнем | HypnoSVG") + class RescoreCommandTests(BaseMediaTestCase): """Тестирование management-команды rescore.""" diff --git a/hypn0/templates/_base.html b/hypn0/templates/_base.html index e61c8a0..f0bcde3 100644 --- a/hypn0/templates/_base.html +++ b/hypn0/templates/_base.html @@ -43,24 +43,24 @@ val=>{if(val)document.documentElement.classList.add('dark');else document.docume - + - {% block PAGE_TITLE %}hypn0: SVG-matrix of Hypnotoad — инструмент цифрового гипно-маркетинга{% endblock %} - - + {% block PAGE_TITLE %}HypnoSVG (hypn0) — Генератор анимированных SVG-халфтонов и векторных матриц онлайн{% endblock %} + + - - + + - + - - + + diff --git a/hypn0/templates/gallery/archive.html b/hypn0/templates/gallery/archive.html index 1ccaf87..8d2f47b 100644 --- a/hypn0/templates/gallery/archive.html +++ b/hypn0/templates/gallery/archive.html @@ -1,7 +1,17 @@ {% extends '_base.html' %} {% load static %} -{% block TITLE %}Галерея транса — Полный архив психоделических картин HypnoSVG{% endblock %} +{% block PAGE_TITLE %}{% if current_floor == 'fresh' %}Инкубатор бессознательного{% elif current_floor == 'curated' %}Одобрено Мозговым Слизнем{% elif current_floor == 'top' %}Золотой фонд транса{% else %}Галерея транса — Каталог анимированных картин{% endif %}{% if page_obj.number > 1 %} (Фаза {{ page_obj.number }}){% endif %} | HypnoSVG{% endblock %} + +{% block META_TITLE %}{% if current_floor == 'fresh' %}Инкубатор бессознательного — Свежие SVG-картины{% elif current_floor == 'curated' %}Одобрено Мозговым Слизнем — Лучшие SVG-халфтоны{% elif current_floor == 'top' %}Золотой фонд транса — Бессмертные SVG-матрицы{% else %}Галерея транса — Каталог анимированных SVG-картин{% endif %}{% if page_obj.number > 1 %} (Фаза {{ page_obj.number }}){% endif %} | HypnoSVG{% endblock %} + +{% block META_DESCRIPTION %}{% if current_floor == 'fresh' %}Свежие кандидаты в галерею транса HypnoSVG: новые психоделические генерации и векторные матрицы.{% elif current_floor == 'curated' %}Кураторская подборка анимированных SVG-халфтонов HypnoSVG, прошедших одобрение сообщества.{% elif current_floor == 'top' %}Золотой фонд бессмертных векторных матриц и шедевров цифрового транса HypnoSVG.{% else %}Полный каталог и архив анимированных SVG-халфтонов и психоделических картин HypnoSVG.{% endif %}{% if page_obj.number > 1 %} Страница {{ page_obj.number }} из {{ page_obj.paginator.num_pages }}.{% endif %}{% endblock %} + +{% block OG_TITLE %}{% if current_floor == 'fresh' %}Инкубатор бессознательного{% elif current_floor == 'curated' %}Одобрено Мозговым Слизнем{% elif current_floor == 'top' %}Золотой фонд транса{% else %}Галерея транса{% endif %}{% if page_obj.number > 1 %} (Фаза {{ page_obj.number }}){% endif %} | HypnoSVG{% endblock %} + +{% block OG_DESCRIPTION %}{% if current_floor == 'fresh' %}Свежие кандидаты в галерею транса HypnoSVG: новые психоделические генерации.{% elif current_floor == 'curated' %}Кураторская подборка анимированных SVG-халфтонов HypnoSVG, одобренных сообществом.{% elif current_floor == 'top' %}Золотой фонд бессмертных векторных матриц и шедевров транса HypnoSVG.{% else %}Полный каталог и архив анимированных SVG-халфтонов и психоделических картин HypnoSVG.{% endif %}{% endblock %} + +{% block CANONICAL %}{{ request.scheme }}://{{ request.get_host }}{{ request.path }}{% if current_floor != 'all' or page_obj.number > 1 %}?{% if current_floor != 'all' %}floor={{ current_floor }}{% endif %}{% if current_floor != 'all' and page_obj.number > 1 %}&{% endif %}{% if page_obj.number > 1 %}page={{ page_obj.number }}{% endif %}{% endif %}{% endblock %} {% block EXTRA_HEAD %} {% if page_obj.has_previous %} diff --git a/hypn0/templates/gallery/detail.html b/hypn0/templates/gallery/detail.html index e6462d5..6c3f927 100644 --- a/hypn0/templates/gallery/detail.html +++ b/hypn0/templates/gallery/detail.html @@ -1,11 +1,11 @@ {% extends "_base.html" %} {% load static %} -{% block PAGE_TITLE %}{{ item.s_title }} — hypn0: Галерея Транса{% endblock %} -{% block META_TITLE %}{{ item.s_title }} — Векторный транс #{{ item.s_hash_id }}{% endblock %} -{% block META_DESCRIPTION %}Гипнотическая векторная картина «{{ item.s_title }}» (#{{ item.s_hash_id }}). {{ svg_stats.total_oscillators }} векторных осцилляторов, блокирующих неокортекс.{% endblock %} -{% block OG_TITLE %}{{ item.s_title }} — hypn0{% endblock %} -{% block OG_DESCRIPTION %}Гипнотическая векторная картина «{{ item.s_title }}» (#{{ item.s_hash_id }}). Векторный транс Гипножабы.{% endblock %} +{% block PAGE_TITLE %}{{ item.s_title }} — Анимированная SVG-картина #{{ item.s_hash_id }} | HypnoSVG{% endblock %} +{% block META_TITLE %}{{ item.s_title }} — Векторный транс #{{ item.s_hash_id }} | HypnoSVG{% endblock %} +{% block META_DESCRIPTION %}Гипнотическая векторная картина «{{ item.s_title }}» (#{{ item.s_hash_id }}). {{ svg_stats.total_oscillators }} векторных осцилляторов. Генератор анимированных SVG-халфтонов HypnoSVG.{% endblock %} +{% block OG_TITLE %}{{ item.s_title }} — Анимированная SVG-картина #{{ item.s_hash_id }} | HypnoSVG{% endblock %} +{% block OG_DESCRIPTION %}Гипнотическая векторная картина «{{ item.s_title }}» (#{{ item.s_hash_id }}). Векторный транс в галерее HypnoSVG.{% endblock %} {% block OG_IMAGE %}{% static 'img/og-hypn0-default.png' %}{% endblock %} {% block TWITTER_IMAGE %}{% static 'img/og-hypn0-default.png' %}{% endblock %}