示例#1
0
文件: views.py 项目: daevaorn/cicero
def topic(request, slug, id):
    t = get_object_or_404(Topic, pk=id)
    if t.forum.slug != slug:  # topic was moved
        return redirect(topic, t.forum.slug, t.pk)
    if request.method == 'POST':
        form = forms.ArticleForm(t, request.user,
                                 request.META.get('REMOTE_ADDR'), request.POST)
        if form.is_valid():
            article = form.save()
            return _process_new_article(request, article, False, True)
    else:
        form = forms.ArticleForm(t, request.user,
                                 request.META.get('REMOTE_ADDR'))
    if request.user.is_authenticated():
        profile = request.user.cicero_profile
        changed = profile.add_read_articles(t.article_set.all())
        if changed:
            profile.save()
            caching.invalidate_by_user(request)
    return object_list(
        request,
        t.article_set.filter(spam_status='clean').select_related(), {
            'topic': t,
            'form': form,
            'page_id': 'topic',
            'show_last_link': True,
        })
示例#2
0
def mark_read(request, slug=None):
    qs = Article.objects.all()
    if slug:
        qs = qs.filter(topic__forum__slug=slug)
    if request.user.is_authenticated():
        profile = request.user.cicero_profile
        profile.add_read_articles(qs)
        profile.save()
        caching.invalidate_by_user(request)
    return HttpResponseRedirect(request.META.get('HTTP_REFERER') or '../')
示例#3
0
文件: views.py 项目: daevaorn/cicero
def mark_read(request, slug=None):
    qs = Article.objects.all()
    if slug:
        qs = qs.filter(topic__forum__slug=slug)
    if request.user.is_authenticated():
        profile = request.user.cicero_profile
        profile.add_read_articles(qs)
        profile.save()
        caching.invalidate_by_user(request)
    return redirect(request.META.get('HTTP_REFERER') or '../')
示例#4
0
def user_authenticated(sender, user, op=None, acquire=None, **kwargs):
    if op == 'login':
        caching.invalidate_by_user(sender)
    if acquire is not None:
        try:
            article = Article.objects.get(pk=acquire)
            article.author = user.cicero_profile
            article.save()
            return _process_new_article(sender, article,
                                        article.topic.article_set.count() == 1,
                                        False)
        except Article.DoesNotExist:
            pass
示例#5
0
文件: views.py 项目: daevaorn/cicero
def user_authenticated(sender, user, op=None, acquire=None, **kwargs):
    if op == 'login':
        caching.invalidate_by_user(sender)
    if acquire is not None:
        try:
            article = Article.objects.get(pk=acquire)
            article.author = user.cicero_profile
            article.save()
            return _process_new_article(
                sender,
                article,
                article.topic.article_set.count() == 1,
                False
            )
        except Article.DoesNotExist:
            pass
示例#6
0
def topic(request, slug, id, **kwargs):
    topic = get_object_or_404(Topic, forum__slug=slug, pk=id)
    if request.method == 'POST' and is_user_can_add_topic_or_article(request):
        form = forms.ArticleForm(topic, request.user,
                                 request.META.get('REMOTE_ADDR'), request.POST)
        if form.is_valid():
            article = form.save()
            inc_article_cntr(request)
            r = _process_new_article(request, article, False, True)
            return r
    else:
        form = forms.ArticleForm(topic, request.user,
                                 request.META.get('REMOTE_ADDR'))
    if request.user.is_authenticated():
        profile = request.user.cicero_profile
        is_can_change_carmas = profile.today_change_carmas < profile.max_change_carmas
        changed = profile.add_read_articles(topic.article_set.all())
        if changed:
            profile.save()
            caching.invalidate_by_user(request)
    else:
        is_can_change_carmas = False

    kwargs['queryset'] = topic.article_set.filter(
        spam_status='clean', is_forum=True).select_related()
    kwargs['extra_context'] = {
        'topic':
        topic,
        'form':
        form,
        'page_id':
        'topic',
        'show_last_link':
        True,
        'groups':
        _get_left_side_cont(),
        'summary':
        _get_summary_cont(request),
        'is_user_can_add_topic_or_article':
        is_user_can_add_topic_or_article(request),
        'is_can_change_carmas':
        is_can_change_carmas
    }
    return object_list(request, **kwargs)
示例#7
0
def carma(request, tgt_user, inc_dec, **kwargs):
    #print tgt_user
    u = '%s' % (request.user, )
    #print u
    if request.user.is_authenticated() and tgt_user != u and (
            inc_dec == "inc" or inc_dec == "dec"):
        profile = request.user.cicero_profile
        is_can_change_carmas = profile.today_change_carmas < profile.max_change_carmas
        #print is_can_change_carmas
        if is_can_change_carmas:
            profile.today_change_carmas += 1
            profile.save()

            from my_django.contrib.auth.models import User
            try:
                u = User.objects.get(username__exact=tgt_user)
                profile = Profile.objects.filter(user=u).get()
                if inc_dec == "inc":
                    profile.carma += 1
                else:
                    profile.carma -= 1
                profile.save()
            except User.DoesNotExist:
                pass

            caching.invalidate_by_user(request)
    else:
        is_can_change_carmas = False

    #kwargs['queryset'] = topic.article_set.filter(spam_status='clean', is_forum=True).select_related()
    #kwargs['extra_context'] = {'topic': topic, 'form': form, 'page_id': 'topic', 'show_last_link': True,
    #                           'groups': _get_left_side_cont(),
    #                           'is_user_can_add_topic_or_article': is_user_can_add_topic_or_article(request)}
    #return object_list(request, **kwargs)
    if is_can_change_carmas:
        return HttpResponseRedirect(
            post_redirect(request)
        )  #HttpResponse(u"carma of %s succesfully changed" % (tgt_user,))
    else:
        return HttpResponse(u"you can not change this carma")
示例#8
0
文件: views.py 项目: daevaorn/cicero
def topic(request, slug, id):
    t = get_object_or_404(Topic, pk=id)
    if t.forum.slug != slug: # topic was moved
        return redirect(topic, t.forum.slug, t.pk)
    if request.method == 'POST':
        form = forms.ArticleForm(t, request.user, request.META.get('REMOTE_ADDR'), request.POST)
        if form.is_valid():
            article = form.save()
            return _process_new_article(request, article, False, True)
    else:
        form = forms.ArticleForm(t, request.user, request.META.get('REMOTE_ADDR'))
    if request.user.is_authenticated():
        profile = request.user.cicero_profile
        changed = profile.add_read_articles(t.article_set.all())
        if changed:
            profile.save()
            caching.invalidate_by_user(request)
    return object_list(request, t.article_set.filter(spam_status='clean').select_related(), {
        'topic': t,
        'form': form,
        'page_id': 'topic',
        'show_last_link': True,
    })