Esempio n. 1
0
def detail(request, pk):
    flag = get_object_or_404(CommentFlag, pk=pk)

    if request.method == 'POST':
        form = CommentFlagForm(user=request.user, data=request.POST, instance=flag)

        if form.is_valid():
            form.save()
            messages.info(request, _("The flag has been moderated!"))
            return redirect(reverse("spirit:admin:flag:index"))
    else:
        form = CommentFlagForm(instance=flag)

    flags = yt_paginate(
        Flag.objects.filter(comment=flag.comment),
        per_page=config.comments_per_page,
        page_number=request.GET.get('page', 1)
    )

    context = {
        'flag': flag,
        'flags': flags,
        'form': form
    }

    return render(request, 'spirit/comment/flag/admin/detail.html', context)
Esempio n. 2
0
def index_active(request):
    categories = (
        Category.objects
        .visible()
        .parents()
        .ordered())

    topics = (
        Topic.objects
        .visible()
        .global_()
        .with_bookmarks(user=request.user)
        .order_by('-is_globally_pinned', '-last_active')
        .select_related('category'))

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

    return render(
        request=request,
        template_name='spirit/topic/active.html',
        context={
            'categories': categories,
            'topics': topics})
Esempio n. 3
0
def index(request):
    categories = Category.objects\
        .visible()\
        .parents()
    cat = get_topic_by_mysort(*categories)

    topics = Topic.objects \
        .visible() \
        .global_() \
        .with_bookmarks(user=request.user) \
        .order_by('-is_globally_pinned', '-date') \
        .select_related('category')

    topics_true = [i for i in topics if not i.is_removed]
    topics = topics_true

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

    topics = fill_likes_count_and_first_comment_by_topics(topics)

    for t in topics:
        t.last_active = t.last_active + datetime.timedelta(hours=8)
        # strdatetime = now.strftime("%Y-%m-%d %H:%M:%S")
        t.last_active = t.last_active.strftime("%Y-%m-%d")
        t.date = t.date + datetime.timedelta(hours=8)
        t.date = t.date.strftime("%Y-%m-%d")

    context = {'categories': cat, 'topics': topics}
    return render(request, 'spirit/topic/active.html', context)
Esempio n. 4
0
def detail(request, pk):
    flag = get_object_or_404(CommentFlag, pk=pk)

    if request.method == 'POST':
        form = CommentFlagForm(user=request.user, data=request.POST, instance=flag)

        if form.is_valid():
            form.save()
            messages.info(request, _("The flag has been moderated!"))
            return redirect(reverse("spirit:admin:flag:index"))
    else:
        form = CommentFlagForm(instance=flag)

    flags = yt_paginate(
        Flag.objects.filter(comment=flag.comment),
        ##@TODO create djconfig replacement
        per_page=10,
        page_number=request.GET.get('page', 1)
    )

    context = {
        'flag': flag,
        'flags': flags,
        'form': form
    }

    return render(request, 'spirit/comment/flag/admin/detail.html', context)
Esempio n. 5
0
def detail(request, pk):
    loggedinuser = request.user
    profile = Profile.objects.get(user=loggedinuser)
    flag = get_object_or_404(CommentFlag, pk=pk)
    form = CommentFlagForm(user=request.user,
                           data=post_data(request),
                           instance=flag)

    if is_post(request) and form.is_valid():
        form.save()
        messages.info(request, _("The flag has been moderated!"))
        return redirect(reverse("spirit:admin:flag:index"))

    flags = yt_paginate(Flag.objects.filter(comment=flag.comment),
                        per_page=config.comments_per_page,
                        page_number=request.GET.get('page', 1))

    return render(request=request,
                  template_name='spirit/comment/flag/admin/detail.html',
                  context={
                      'flag': flag,
                      'flags': flags,
                      'form': form,
                      'profile': profile
                  })
Esempio n. 6
0
def _index(request, queryset, template):
    flags = yt_paginate(
        queryset,
        per_page=config.comments_per_page,
        page_number=request.GET.get('page', 1)
    )
    context = {'flags': flags, }
    return render(request, template, context)
Esempio n. 7
0
def _index(request, queryset, template):
    loggedinuser = request.user
    profile = Profile.objects.get(user=loggedinuser)
    flags = yt_paginate(queryset,
                        per_page=config.comments_per_page,
                        page_number=request.GET.get('page', 1))
    context = {'flags': flags, 'profile': profile}
    return render(request, template, context)
Esempio n. 8
0
def _index(request, queryset, template):
    flags = yt_paginate(queryset,
                        per_page=config.comments_per_page,
                        page_number=request.GET.get('page', 1))
    context = {
        'flags': flags,
    }
    return render(request, template, context)
Esempio n. 9
0
def _index(request, queryset, template):
    flags = yt_paginate(
        queryset,
        ##@TODO create djconfig replacement
        per_page=10,
        page_number=request.GET.get('page', 1)
    )
    context = {'flags': flags, }
    return render(request, template, context)
Esempio n. 10
0
def index(request):
    notifications = yt_paginate(TopicNotification.objects.for_access(
        request.user).with_related_data(),
                                per_page=config.topics_per_page,
                                page_number=request.GET.get('page', 1))

    return render(request=request,
                  template_name='spirit/topic/notification/index.html',
                  context={'notifications': notifications})
Esempio n. 11
0
def _index(request, queryset, template):
    flags = yt_paginate(
        queryset,
        ##@TODO create djconfig replacement
        per_page=10,
        page_number=request.GET.get('page', 1))
    context = {
        'flags': flags,
    }
    return render(request, template, context)
Esempio n. 12
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.st.slug != slug:
        return HttpResponsePermanentRedirect(
            reverse(reverse_to, kwargs={'pk': p_user.pk, 'slug': p_user.st.slug}))
    items = yt_paginate(
        queryset,
        per_page=per_page,
        page_number=request.GET.get('page', 1))
    return render(
        request=request,
        template_name=template,
        context={'p_user': p_user, context_name: items})
Esempio n. 13
0
def index(request):
    topics = (
        Topic.objects
        .with_bookmarks(user=request.user)
        .filter(topics_private__user=request.user))
    topics = yt_paginate(
        topics,
        per_page=config.topics_per_page,
        page_number=request.GET.get('page', 1)
    )
    return render(
        request=request,
        template_name='spirit/topic/private/index.html',
        context={'topics': topics})
Esempio n. 14
0
def detail(request, pk, slug):
    categories = Category.objects\
        .visible()\
        .parents()
    cat = get_topic_by_mysort(*categories)
    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', '-date')\
        .select_related('category')

    topics_true = [i for i in topics if not i.is_removed]
    topics = topics_true

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

    topics = fill_likes_count_and_first_comment_by_topics(topics)

    for i in topics:
        i.last_active = i.last_active + datetime.timedelta(hours=8)
        # strdatetime = now.strftime("%Y-%m-%d %H:%M:%S")
        i.last_active = i.last_active.strftime("%Y-%m-%d")
        i.date = i.date + datetime.timedelta(hours=8)
        i.date = i.date.strftime("%Y-%m-%d")

    context = {
        'topcategories':
        cat,  #在渲染一个帖子分类的时候,显示所有的帖子分类,原来的情况是如果选了一个帖子分类,其他的帖子分类不会显示
        'category': category,
        'subcategories': subcategories,
        'topics': topics
    }

    return render(request, 'spirit/category/detail.html', context)
Esempio n. 15
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'))

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

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

    return render(request, 'spirit/comment/poll/voters.html', context)
Esempio n. 16
0
def index_author(request):
    # Show created topics but exclude those the user is participating on
    # TODO: show all, show join link in those the user is not participating
    # TODO: move to manager
    topics = (
        Topic.objects
        .filter(
            user=request.user,
            category_id=settings.ST_TOPIC_PRIVATE_CATEGORY_PK)
        .exclude(topics_private__user=request.user))
    topics = yt_paginate(
        topics,
        per_page=config.topics_per_page,
        page_number=request.GET.get('page', 1)
    )
    return render(
        request=request,
        template_name='spirit/topic/private/index_author.html',
        context={'topics': topics})
Esempio n. 17
0
def _index(request, queryset, template):
    users = yt_paginate(queryset.order_by('-date_joined', '-pk'),
                        per_page=config.topics_per_page,
                        page_number=request.GET.get('page', 1))
    return render(request, template, context={'users': users})