mod: галерея (8) Общая галерея с фильтрами стала универсальной для всех "этажей"

This commit is contained in:
2026-09-06 19:30:43 +03:00
parent 60fda39bb3
commit 0d941dc662
5 changed files with 4 additions and 214 deletions
-49
View File
@@ -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)