|
|
from django.shortcuts import get_object_or_404, render
|
|
|
from django.urls import reverse
|
|
|
|
|
|
from boards import settings
|
|
|
from boards.abstracts.constants import PARAM_PAGE
|
|
|
from boards.abstracts.paginator import get_paginator
|
|
|
from boards.models import TagAlias
|
|
|
from boards.settings import SECTION_VIEW
|
|
|
from boards.views.base import BaseBoardView
|
|
|
from boards.views.mixins import PaginatedMixin
|
|
|
|
|
|
IMAGES_PER_PAGE = settings.get_int(SECTION_VIEW, 'ImagesPerPageGallery')
|
|
|
|
|
|
TEMPLATE = 'boards/tag_gallery.html'
|
|
|
|
|
|
|
|
|
class TagGalleryView(BaseBoardView, PaginatedMixin):
|
|
|
|
|
|
def get(self, request, tag_name):
|
|
|
page = int(request.GET.get(PARAM_PAGE, 1))
|
|
|
|
|
|
params = dict()
|
|
|
tag_alias = get_object_or_404(TagAlias, name=tag_name)
|
|
|
tag = tag_alias.parent
|
|
|
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())
|
|
|
params.update(self.get_page_context(paginator, page))
|
|
|
|
|
|
return render(request, TEMPLATE, params)
|
|
|
|