Split views & remove converters

This commit is contained in:
Nyymix 2025-04-26 02:44:21 +03:00
parent a3264db994
commit 52dc390781
7 changed files with 281 additions and 266 deletions

39
gallery/views/main.py Normal file
View file

@ -0,0 +1,39 @@
from django.conf import settings
from django.core.cache import cache
from django.core.paginator import Paginator
from django.db.models import Count, F, Q, Sum
from django.http import JsonResponse
from django.shortcuts import get_object_or_404, redirect
from django.urls import reverse
from django.views import View
from django.views.generic import DetailView, ListView, TemplateView
from ..models import Album, Photo, Redir
class Main(TemplateView):
"""Main homepage."""
template_name = "gallery/main.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['canonical_url'] = self.request.build_absolute_uri(reverse('gallery:main_url'))
context['latest_albums'] = Album.objects.filter(is_public=True).order_by('-album_date')[:6]
return context
class About(TemplateView):
"""Static about page."""
template_name = "gallery/about.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['canonical_url'] = self.request.build_absolute_uri(reverse('gallery:about_url'))
return context
def redirect_to_album(request, redir_path):
"""Handles redirect logic for shortened/legacy album URLs."""
redir = get_object_or_404(Redir, path=redir_path)
return redirect('gallery:album_url', album_slug=redir.album.slug)