Add canonical url

This commit is contained in:
Nyymix 2025-04-18 20:10:41 +03:00
parent e1cbc3a7fb
commit 1928623ea8
2 changed files with 33 additions and 3 deletions

View file

@ -3,6 +3,7 @@ from django.core.cache import cache
from django.core.paginator import Paginator
from django.db.models import Count, Q, Sum
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from django.views.generic import DetailView, ListView, TemplateView
from .models import Album, Photo, Redir
@ -32,6 +33,18 @@ class AlbumsList(ListView):
cache.set(key, queryset, 60 * 5)
return queryset
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
page = int(self.request.GET.get('page', 1))
# Canonical_url
canonical_url = self.request.build_absolute_uri(reverse('gallery:albums_url'))
if page > 1:
canonical_url += f'?page={page}'
context['canonical_url'] = canonical_url
return context
class AlbumDetail(DetailView):
@ -50,9 +63,16 @@ class AlbumDetail(DetailView):
paginator = Paginator(photos, 30)
page_obj = paginator.get_page(self.request.GET.get('page'))
# Canonical_url
page = int(self.request.GET.get('page', 1))
canonical_url = self.request.build_absolute_uri(self.object.get_absolute_url())
if page > 1:
canonical_url += f'?page={page}'
context.update({
'photos': page_obj.object_list,
'page_obj': page_obj
'page_obj': page_obj,
'canonical_url': canonical_url,
})
return context
@ -75,6 +95,7 @@ class PhotosList(ListView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['order'] = self.request.GET.get('order', 'latest')
context['canonical_url'] = self.request.build_absolute_uri(reverse('gallery:photos_url'))
return context
@ -101,7 +122,8 @@ class PhotoDetail(DetailView):
context = super().get_context_data(**kwargs)
context.update({
"next": self.object.get_next(),
"prev": self.object.get_prev()
"prev": self.object.get_prev(),
"canonical_url": self.request.build_absolute_uri(self.object.get_absolute_url()),
})
return context
@ -144,7 +166,8 @@ class Search(TemplateView):
'results': page_obj.object_list,
'page_obj': page_obj,
'paginator': paginator,
'is_paginated': page_obj.has_other_pages()
'is_paginated': page_obj.has_other_pages(),
'canonical_url': self.request.build_absolute_uri(reverse('gallery:search_url'))
})
return context
@ -152,6 +175,10 @@ class Search(TemplateView):
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):

View file

@ -7,6 +7,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="{{ site_config.site_head_description }}">
<title>{{ site_config.site_head_title }} : {% block title %}{% endblock %}</title>
{% if canonical_url %}
<link rel="canonical" href="{{ canonical_url }}">
{% endif %}
<!-- UIkit CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.23.6/dist/css/uikit.min.css" />
<!-- Muistox CSS -->