tag_gallery.py
34 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
neko259
|
r1419 | from django.shortcuts import get_object_or_404, render | ||
neko259
|
r1986 | from django.urls import reverse | ||
neko259
|
r1419 | |||
from boards import settings | ||||
neko259
|
r2005 | from boards.abstracts.constants import PARAM_PAGE | ||
neko259
|
r1419 | from boards.abstracts.paginator import get_paginator | ||
neko259
|
r1986 | from boards.models import TagAlias | ||
neko259
|
r2004 | from boards.settings import SECTION_VIEW | ||
neko259
|
r1419 | from boards.views.base import BaseBoardView | ||
from boards.views.mixins import PaginatedMixin | ||||
neko259
|
r2004 | IMAGES_PER_PAGE = settings.get_int(SECTION_VIEW, 'ImagesPerPageGallery') | ||
neko259
|
r1419 | |||
TEMPLATE = 'boards/tag_gallery.html' | ||||
class TagGalleryView(BaseBoardView, PaginatedMixin): | ||||
def get(self, request, tag_name): | ||||
neko259
|
r2005 | page = int(request.GET.get(PARAM_PAGE, 1)) | ||
neko259
|
r1419 | |||
params = dict() | ||||
neko259
|
r1879 | tag_alias = get_object_or_404(TagAlias, name=tag_name) | ||
tag = tag_alias.parent | ||||
neko259
|
r1419 | params['tag'] = tag | ||
paginator = get_paginator(tag.get_images(), IMAGES_PER_PAGE, | ||||
current_page=page) | ||||
params['paginator'] = paginator | ||||
params['images'] = paginator.page(page).object_list | ||||
paginator.set_url(reverse('tag_gallery', kwargs={'tag_name': tag_name}), | ||||
request.GET.dict()) | ||||
neko259
|
r1863 | params.update(self.get_page_context(paginator, page)) | ||
neko259
|
r1419 | |||
neko259
|
r1863 | return render(request, TEMPLATE, params) | ||