Ejemplo n.º 1
0
    def test_paginate(self):
        # first page
        req = RequestFactory().get('/')
        page = infinite_paginator.paginate(req, self.queryset, per_page=15, lookup_field="pk")
        page_last_pk = list(self.queryset[:15])[-1].pk
        self.assertEqual(page.next_page_pk(), page_last_pk)

        # second page
        page_last_pk = list(self.queryset[:15])[-1].pk
        req = RequestFactory().get('/?id=%s' % page_last_pk)
        page = infinite_paginator.paginate(req, self.queryset, per_page=15, lookup_field="pk", page_var='id')
        second_page_last_pk = list(self.queryset[15:30])[-1].pk
        self.assertEqual(page.next_page_pk(), second_page_last_pk)

        # invalid (id) page
        last_pk = self.queryset.order_by("pk").last().pk
        req = RequestFactory().get('/?id=%s' % (last_pk + 1))
        self.assertRaises(Http404, infinite_paginator.paginate,
                          req, self.queryset, per_page=15, lookup_field="pk", page_var='id')

        # empty page
        valid_pk = self.queryset.last().pk
        req = RequestFactory().get('/?id=%s' % valid_pk)
        self.assertRaises(Http404, infinite_paginator.paginate,
                          req, self.queryset.none(), per_page=15, lookup_field="pk", page_var='id')

        # empty first page
        req = RequestFactory().get('/')
        page = infinite_paginator.paginate(req, self.queryset.none(), per_page=15, lookup_field="pk")
        self.assertEqual(len(page), 0)
Ejemplo n.º 2
0
    def test_paginate(self):
        # first page
        req = RequestFactory().get('/')
        page = infinite_paginator.paginate(req,
                                           self.queryset,
                                           per_page=15,
                                           lookup_field="pk")
        page_last_pk = list(self.queryset[:15])[-1].pk
        self.assertEqual(page.next_page_pk(), page_last_pk)

        # second page
        page_last_pk = list(self.queryset[:15])[-1].pk
        req = RequestFactory().get('/?id=%s' % page_last_pk)
        page = infinite_paginator.paginate(req,
                                           self.queryset,
                                           per_page=15,
                                           lookup_field="pk",
                                           page_var='id')
        second_page_last_pk = list(self.queryset[15:30])[-1].pk
        self.assertEqual(page.next_page_pk(), second_page_last_pk)

        # invalid (id) page
        last_pk = self.queryset.order_by("pk").last().pk
        req = RequestFactory().get('/?id=%s' % (last_pk + 1))
        self.assertRaises(Http404,
                          infinite_paginator.paginate,
                          req,
                          self.queryset,
                          per_page=15,
                          lookup_field="pk",
                          page_var='id')

        # empty page
        valid_pk = self.queryset.last().pk
        req = RequestFactory().get('/?id=%s' % valid_pk)
        self.assertRaises(Http404,
                          infinite_paginator.paginate,
                          req,
                          self.queryset.none(),
                          per_page=15,
                          lookup_field="pk",
                          page_var='id')

        # empty first page
        req = RequestFactory().get('/')
        page = infinite_paginator.paginate(req,
                                           self.queryset.none(),
                                           per_page=15,
                                           lookup_field="pk")
        self.assertEqual(len(page), 0)
Ejemplo n.º 3
0
def notification_list_unread(request):
    notifications = TopicNotification.objects.for_access(request.user)\
        .filter(is_read=False)

    page = paginate(request, query_set=notifications, lookup_field="date",
                    page_var='notif', per_page=settings.ST_NOTIFICATIONS_PER_PAGE)
    next_page_pk = None

    if page:
        next_page_pk = page[-1].pk
    return render(request, 'spirit/topic_notification/list_unread.html', {'page': page,
                                                                          'next_page_pk': next_page_pk})
Ejemplo n.º 4
0
def topic_unread_list(request):
    # TODO: add button to clean up read topics? or read all?
    # redirect to first page if empty

    topics = Topic.objects.for_access(request.user)\
        .filter(topicunread__user=request.user,
                topicunread__is_read=False)

    page = paginate(request, query_set=topics, lookup_field="last_active", page_var='topic_id')
    next_page_pk = None

    if page:
        next_page_pk = page[-1].pk

    return render(request, 'spirit/topic_unread/list.html', {'page': page,
                                                             'next_page_pk': next_page_pk})
Ejemplo n.º 5
0
def notification_list_unread(request):
    notifications = TopicNotification.objects.for_access(request.user)\
        .filter(is_read=False)

    page = paginate(request,
                    query_set=notifications,
                    lookup_field="date",
                    page_var='notif',
                    per_page=settings.ST_NOTIFICATIONS_PER_PAGE)
    next_page_pk = None

    if page:
        next_page_pk = page[-1].pk

    return render(request, 'spirit/topic_notification/list_unread.html', {
        'page': page,
        'next_page_pk': next_page_pk
    })
Ejemplo n.º 6
0
def topic_unread_list(request):
    # TODO: add button to clean up read topics? or read all?
    # redirect to first page if empty

    topics = Topic.objects\
        .for_access(user=request.user)\
        .for_unread(user=request.user)\
        .with_bookmarks(user=request.user)

    page = paginate(request, query_set=topics, lookup_field="last_active", page_var='topic_id')
    next_page_pk = None

    if page:
        next_page_pk = page[-1].pk

    context = {
        'page': page,
        'next_page_pk': next_page_pk
    }

    return render(request, 'spirit/topic_unread/list.html', context)
Ejemplo n.º 7
0
def topic_unread_list(request):
    # TODO: add button to clean up read topics? or read all?
    # redirect to first page if empty

    topics = Topic.objects.for_access(request.user)\
        .filter(topicunread__user=request.user,
                topicunread__is_read=False)

    page = paginate(request,
                    query_set=topics,
                    lookup_field="last_active",
                    page_var='topic_id')
    next_page_pk = None

    if page:
        next_page_pk = page[-1].pk

    return render(request, 'spirit/topic_unread/list.html', {
        'page': page,
        'next_page_pk': next_page_pk
    })
Ejemplo n.º 8
0
def topic_unread_list(request):
    # TODO: add button to clean up read topics? or read all?
    # redirect to first page if empty

    topics = Topic.objects\
        .for_access(user=request.user)\
        .for_unread(user=request.user)\
        .with_bookmarks(user=request.user)

    page = paginate(request,
                    query_set=topics,
                    lookup_field="last_active",
                    page_var='topic_id')
    next_page_pk = None

    if page:
        next_page_pk = page[-1].pk

    context = {'page': page, 'next_page_pk': next_page_pk}

    return render(request, 'spirit/topic_unread/list.html', context)