Ejemplo n.º 1
0
def detail(request, pk, slug):
    category = get_object_or_404(Category.objects.visible(), pk=pk)

    if category.slug != slug:
        return HttpResponsePermanentRedirect(category.get_absolute_url())

    subcategories = Category.objects.visible().children(parent=category)

    topics = Topic.objects.unremoved().with_bookmarks(
        user=request.user).for_category(category=category).order_by(
            '-is_globally_pinned', '-is_pinned',
            '-last_active').select_related('category')
    side1 = topics.filter(comment_count__gte=15)[:5]
    side2 = topics.order_by('-date')[:5]

    topics_per_page = 15

    topics = yt_paginate(topics,
                         per_page=topics_per_page,
                         page_number=request.GET.get('page', 1))

    context = {
        'category': category,
        'subcategories': subcategories,
        'topics': topics,
        'side1': side1,
        'side2': side2
    }
    return render(request, 'category/detail.html', context)
Ejemplo n.º 2
0
 def build_page(self):
     paginator = None
     topics_per_page = 15
     page = yt_paginate(self.results,
                        per_page=topics_per_page,
                        page_number=self.request.GET.get('page', 1))
     page = [{'fields': r.get_stored_fields(), 'pk': r.pk} for r in page]
     return paginator, page
Ejemplo n.º 3
0
def all(request):
    topics_per_page = 15
    notifications = yt_paginate(Notification.objects.all_for_user(
        request.user),
                                per_page=topics_per_page,
                                page_number=request.GET.get('page', 1))
    template = "notifications/index.html"
    context = {
        "notifications": notifications,
    }
    return render(request, template, context)
Ejemplo n.º 4
0
def voters(request, pk):
    # TODO: check if user has access to this topic/poll
    choice = get_object_or_404(
        CommentPollChoice.objects.unremoved().select_related('poll'), pk=pk)

    if not choice.poll.can_show_results:
        raise PermissionDenied

    choice_votes = CommentPollVote.objects.unremoved().for_choice(
        choice=choice).select_related('voter__st')
    topics_per_page = 15
    choice_votes = yt_paginate(choice_votes,
                               per_page=topics_per_page,
                               page_number=request.GET.get('page', 1))

    context = {'choice': choice, 'votes': choice_votes}

    return render(request, 'poll/voters.html', context)
Ejemplo n.º 5
0
def _activity(request, pk, slug, queryset, template, reverse_to, context_name,
              per_page):
    p_user = get_object_or_404(User, pk=pk)

    if p_user.u.slug != slug:
        url = reverse(reverse_to,
                      kwargs={
                          'pk': p_user.pk,
                          'slug': p_user.u.slug
                      })
        return HttpResponsePermanentRedirect(url)

    items = yt_paginate(queryset,
                        per_page=per_page,
                        page_number=request.GET.get('page', 1))

    context = {'p_user': p_user, context_name: items}

    return render(request, template, context)
Ejemplo n.º 6
0
def index_active(request):
    categories = Category.objects.visible().parents()
    topics = Topic.objects.visible().global_().with_bookmarks(
        user=request.user).order_by('-is_globally_pinned',
                                    '-last_active').select_related('category')
    side1 = topics.filter(comment_count__gte=15)[:5]
    side2 = topics.order_by('-date')[:5]
    topics_per_page = 15
    topics = yt_paginate(topics,
                         per_page=topics_per_page,
                         page_number=request.GET.get('page', 1))

    context = {
        'categories': categories,
        'topics': topics,
        'side1': side1,
        'side2': side2
    }
    template = 'topic/active.html'
    return render(request, template, context)