diff --git a/hypn0/hypn0_site/tests.py b/hypn0/hypn0_site/tests.py index 030d00a..a757220 100644 --- a/hypn0/hypn0_site/tests.py +++ b/hypn0/hypn0_site/tests.py @@ -794,35 +794,7 @@ class GalleryFreshFloorTests(BaseMediaTestCase): item = TbHypn0Item.objects.first() self.assertContains(response, f"gallery-card-{item.s_hash_id}") - def test_gallery_floor_fresh_pagination(self): - # Создаем 20 картин - svg_bytes = b'' - for i in range(20): - item = TbHypn0Item( - s_title=f"Кандидат #{i}", - file_svg=ContentFile(svg_bytes, name=f"cand_{i}.svg"), - i_views_count=i, - i_level=TbHypn0Item.Level.CANDIDATE, - is_public=True, - ) - item.save(visitor_uuid_or_fp=self.vid) - - # Страница 1 (должно быть 16 штук) - url = reverse("hypn0_site:gallery_floor", kwargs={"floor_slug": "fresh"}) - response_p1 = self.client.get(url) - self.assertEqual(response_p1.status_code, 200) - self.assertContains(response_p1, "Плеск бессознательного") - self.assertContains(response_p1, "FRESH STREAM") - self.assertEqual(len(response_p1.context["page_obj"]), 16) - self.assertContains(response_p1, "Фаза 1 из 2") - - # Страница 2 (должно быть 4 штуки) - response_p2 = self.client.get(url, data={"page": 2}) - self.assertEqual(response_p2.status_code, 200) - self.assertEqual(len(response_p2.context["page_obj"]), 4) - self.assertContains(response_p2, "Фаза 2 из 2") - - def test_gallery_floors_curated_and_top(self): + def test_gallery_floors_curated_and_top_getters(self): from hypn0_site.views import get_floor_curated, get_floor_top svg_bytes = b'' @@ -854,30 +826,12 @@ class GalleryFreshFloorTests(BaseMediaTestCase): self.assertEqual(len(top_res), 1) self.assertEqual(top_res[0].pk, item_top.pk) - # Проверяем рендеринг страниц этажей - url_curated = reverse("hypn0_site:gallery_floor", kwargs={"floor_slug": "curated"}) - resp_c = self.client.get(url_curated) - self.assertEqual(resp_c.status_code, 200) - self.assertContains(resp_c, "Одобрено Мозговым Слизнем") - self.assertContains(resp_c, "CURATED") - - url_top = reverse("hypn0_site:gallery_floor", kwargs={"floor_slug": "top"}) - resp_t = self.client.get(url_top) - self.assertEqual(resp_t.status_code, 200) - self.assertContains(resp_t, "Глубокий транс") - self.assertContains(resp_t, "TOP TIER") - # Проверяем отображение на главной странице resp_idx = self.client.get(reverse("hypn0_site:index")) self.assertEqual(resp_idx.status_code, 200) self.assertContains(resp_idx, f"gallery-card-{item_curated.s_hash_id}") self.assertContains(resp_idx, f"gallery-card-{item_top.s_hash_id}") - def test_gallery_floor_unknown_404(self): - url = reverse("hypn0_site:gallery_floor", kwargs={"floor_slug": "non_existent"}) - response = self.client.get(url) - self.assertEqual(response.status_code, 404) - class CardBgStyleTests(BaseMediaTestCase): """Тестирование вычисления адаптивных стилей подложки карточки.""" diff --git a/hypn0/hypn0_site/urls.py b/hypn0/hypn0_site/urls.py index dd1ab26..5ea8b41 100644 --- a/hypn0/hypn0_site/urls.py +++ b/hypn0/hypn0_site/urls.py @@ -11,8 +11,6 @@ urlpatterns = [ path("publish", views.publish, name="publish"), path("gallery", views.gallery_archive, name="gallery_archive"), path("gallery/random", views.gallery_random, name="gallery_random"), - path("gallery/random-pool", views.gallery_random, name="gallery_random_pool"), - path("gallery/floor/", views.gallery_floor, name="gallery_floor"), path("gallery/", views.gallery_detail, name="gallery_detail"), path("gallery//download", views.gallery_download, name="gallery_download"), path("gallery//vote", views.gallery_vote, name="gallery_vote"), diff --git a/hypn0/hypn0_site/views.py b/hypn0/hypn0_site/views.py index eeaecf6..54ee28f 100644 --- a/hypn0/hypn0_site/views.py +++ b/hypn0/hypn0_site/views.py @@ -141,55 +141,6 @@ def gallery_archive(request: HttpRequest) -> HttpResponse: return render(request, "gallery/archive.html", context) -def gallery_floor(request: HttpRequest, floor_slug: str) -> HttpResponse: - """ - Страница полного просмотра конкретного этажа галереи с пагинацией (по 16 карточек). - """ - floors_config = { - "fresh": { - "title": "Плеск бессознательного", - "badge": "FRESH STREAM", - "badge_color": "amber", - "subtitle": "Свежие галлюцинации из инкубатора • Первичная оценка сообщества", - "getter": get_floor_fresh, - }, - "curated": { - "title": "Одобрено Мозговым Слизнем", - "badge": "CURATED", - "badge_color": "cyan", - "subtitle": "Проверено контролем качества • Высокий психоделический резонанс", - "getter": get_floor_curated, - }, - "top": { - "title": "Глубокий транс", - "badge": "TOP TIER", - "badge_color": "emerald", - "subtitle": "Золотой фонд гипноза • Абсолютное подчинение воли", - "getter": get_floor_top, - }, - } - - if floor_slug not in floors_config: - raise Http404("Этаж транса не обнаружен в матрице") - - cfg = floors_config[floor_slug] - items_qs = cfg["getter"](limit=None) - - paginator = Paginator(items_qs, 16) - page_number = request.GET.get("page", 1) - page_obj = paginator.get_page(page_number) - - context = { - "floor_slug": floor_slug, - "floor_title": cfg["title"], - "floor_badge": cfg["badge"], - "floor_badge_color": cfg["badge_color"], - "floor_subtitle": cfg["subtitle"], - "page_obj": page_obj, - } - return render(request, "gallery/floor.html", context) - - @ensure_csrf_cookie def index(request: HttpRequest | None) -> HttpResponse: fresh_items = get_floor_fresh(limit=8) diff --git a/hypn0/templates/gallery/floor.html b/hypn0/templates/gallery/floor.html deleted file mode 100644 index 423a3d1..0000000 --- a/hypn0/templates/gallery/floor.html +++ /dev/null @@ -1,113 +0,0 @@ -{% extends '_base.html' %} -{% load static %} - -{% block TITLE %}{{ floor_title }} — Галерея транса HypnoSVG{% endblock %} - -{% block CONTENT %} -
- - -
- - - - - К генератору и витрине - - - - Фаза {{ page_obj.number }} из {{ page_obj.paginator.num_pages }} (Всего: {{ page_obj.paginator.count }}) - -
- - -
-
-

- {{ floor_title }} -

- - {{ floor_badge }} - -
-

- {{ floor_subtitle }} -

-
- - -
- {% for item in page_obj %} - {% include "block/gallery_card.html" %} - {% empty %} -
- - - -

В этой зоне психо-матрицы пока нет зафиксированных картин.

-
- {% endfor %} -
- - - {% if page_obj.has_other_pages %} -
-
- {% if page_obj.has_previous %} - - - - - Предыдущая фаза - - {% else %} - - - - - Предыдущая фаза - - {% endif %} -
- - - - -
- {% if page_obj.has_next %} - - Следующая фаза - - - - - {% else %} - - Следующая фаза - - - - - {% endif %} -
-
- {% endif %} - -
-{% endblock CONTENT %} diff --git a/hypn0/templates/index.html b/hypn0/templates/index.html index 6a9b8a5..847644f 100644 --- a/hypn0/templates/index.html +++ b/hypn0/templates/index.html @@ -517,7 +517,7 @@

Свежие галлюцинации из инкубатора • Первичная оценка сообщества

- + Смотреть весь поток → @@ -546,7 +546,7 @@

Проверено контролем качества • Высокий психоделический резонанс

- + Смотреть все одобренные → @@ -575,7 +575,7 @@

Золотой фонд гипноза • Абсолютное подчинение воли

- + Смотреть весь золотой фонд →