Beispiel #1
0
    def paginate(self, page_number, page_size):
        photoset_id = self.kwargs.get('photoset_id')
        self.photoset = Photoset(id=photoset_id)
        photos, paginator, page = self.photoset.getPhotos(page=page_number,
                                                          per_page=page_size)

        if not photos:
            raise Http404(
                _('No photos not found for photoset %(photoset_id)s') %
                {'photoset_id': photoset_id})

        return photos, paginator, page
def get_photos_by_photoset(context,
                           photoset_id,
                           page=None,
                           per_page=None,
                           template_name="gallery/flickr/tags/photoset.html"):
    """
    Get photos by photoset_id. Allow paginator.
    :param context:
        Context object.
    :param photoset_id:
        Photoset id to get a photoset.
    :param page:
        Current page number.
    :param per_page:
        How many objects per page.
    :param template_name:
        Template to render tag.
    :return: context object.
    """
    request = context['request']

    # get page number
    if per_page is not None:
        page = page or request.GET.get(PAGE_FIELD, None)

    photoset = Photoset(id=photoset_id)
    photos, paginator, page_obj = photoset.getPhotos(page=page,
                                                     per_page=per_page)
    is_paginated = paginator is not None and page_obj is not None

    context = {
        'photoset': photoset,
        'photos': photos,
        'object_list': photos,
        'template': template_name
    }

    if is_paginated:
        context.update({
            'is_paginated': True,
            'paginator': paginator,
            'page_obj': page_obj
        })

    return context
Beispiel #3
0
 def paginate(self, page_number, page_size):
     self.photoset = Photoset(id=self.kwargs.get('photoset_id'))
     photos, paginator, page = self.photoset.getPhotos(page=page_number,
                                                       per_page=page_size)
     return photos, paginator, page