示例#1
0
文件: views.py 项目: jgruca/Dinette
def postReply(request):
    mlogger.info("in post reply.................")
    freply = ReplyForm(request.POST,request.FILES)

    if not freply.is_valid():
        d = {"is_valid":"false","response_html":freply.as_table()}
        json = simplejson.dumps(d)
        if request.FILES :
            json = "<textarea>"+simplejson.dumps(d)+"</textarea>"
        else:
            json = simplejson.dumps(d)
        return HttpResponse(json, content_type=json_mimetype)



    #code which checks for flood control
    if (timezone.now() -(request.user.get_profile().last_posttime)).seconds <= settings.FLOOD_TIME:
    #oh....... user trying to flood us Stop him
        d2 = {"is_valid":"flood","errormessage":"You have posted message too recently. Please wait a while before trying again."}
        if request.FILES :
            json = "<textarea>"+simplejson.dumps(d2)+"</textarea>"
        else :
            json = simplejson.dumps(d2)
        return HttpResponse(json, content_type=json_mimetype)


    reply = freply.save(commit=False)
     #only if there is any file
    if len(request.FILES.keys()) == 1 :
        if(request.FILES['file'].content_type.find("image") >= 0 ) :
            reply.attachment_type = "image"
        else :
            reply.attachment_type = "text"

        reply.filename = request.FILES['file'].name

    reply.posted_by = request.user
    mlogger.debug("toipcid= %s" %request.POST['topicid'])
    reply.topic = Ftopics.objects.get(pk = request.POST['topicid'])
    #Assigning user rank
    mlogger.debug("Assigning an user rank, and last posted datetime")
    assignUserElements(request.user)
    reply.save()
    payload = {'reply':reply}
    mlogger.debug("what is the replymesage = %s" %reply.message)
    response_html = render_to_string('dinette/replydetail_frag.html', payload ,RequestContext(request))
    mlogger.debug("what is the response = %s " % response_html)

    d2 = {"is_valid":"true","response_html":response_html}

    if request.FILES :
        #this the required for ajax file uploads
        json = "<textarea>"+simplejson.dumps(d2)+"</textarea>"
    else:
        json = simplejson.dumps(d2)

    return HttpResponse(json, content_type=json_mimetype)
示例#2
0
文件: views.py 项目: jgruca/Dinette
def editReply(request, reply_id):
    reply = get_object_or_404(Reply, pk=reply_id)
    if not (reply.posted_by == request.user or request.user in reply.topic.category.moderated_by.all()):
        return HttpResponseForbidden()

    if request.POST:
        form = ReplyForm(request.POST, request.FILES, instance=reply)
        if form.is_valid():
            form.save()
            #redirect to prev page
            return HttpResponseRedirect(reply.get_url_with_fragment())
    else:
        # message should be original input, not the rendered one
        form = ReplyForm(instance=reply, initial={'message': reply.message.raw})

    return render_to_response('dinette/edit_reply.html', {'replyform': form, 'reply_id': reply_id}, context_instance=RequestContext(request))
示例#3
0
def topic_detail(request, categoryslug, topic_slug, pageno=1):
    topic = get_object_or_404(Ftopics, slug=topic_slug)
    show_moderation_items = False
    if request.user in topic.category.moderated_by.all():
        show_moderation_items = True
    #some body has viewed this topic
    topic.viewcount = topic.viewcount + 1
    topic.save()
    #we also need to display the reply form
    replylist = topic.reply_set.all()
    reply_page_size = getattr(settings, "REPLY_PAGE_SIZE", 10)
    replyform = ReplyForm()
    payload = {
        'topic': topic,
        'replyform': replyform,
        'reply_list': replylist,
        'show_moderation_items': show_moderation_items,
        "reply_page_size": reply_page_size
    }
    return render_to_response("dinette/topic_detail.html", payload,
                              RequestContext(request))
示例#4
0
文件: views.py 项目: jgruca/Dinette
def editReply(request, reply_id):
    reply = get_object_or_404(Reply, pk=reply_id)
    if not (reply.posted_by == request.user
            or request.user in reply.topic.category.moderated_by.all()):
        return HttpResponseForbidden()

    if request.POST:
        form = ReplyForm(request.POST, request.FILES, instance=reply)
        if form.is_valid():
            form.save()
            #redirect to prev page
            return HttpResponseRedirect(reply.get_url_with_fragment())
    else:
        # message should be original input, not the rendered one
        form = ReplyForm(instance=reply,
                         initial={'message': reply.message.raw})

    return render_to_response('dinette/edit_reply.html', {
        'replyform': form,
        'reply_id': reply_id
    },
                              context_instance=RequestContext(request))
示例#5
0
文件: views.py 项目: jgruca/Dinette
def postReply(request):
    mlogger.info("in post reply.................")
    freply = ReplyForm(request.POST, request.FILES)

    if not freply.is_valid():
        d = {"is_valid": "false", "response_html": freply.as_table()}
        json = simplejson.dumps(d)
        if request.FILES:
            json = "<textarea>" + simplejson.dumps(d) + "</textarea>"
        else:
            json = simplejson.dumps(d)
        return HttpResponse(json, content_type=json_mimetype)

    #code which checks for flood control
    if (timezone.now() - (request.user.get_profile().last_posttime)
        ).seconds <= settings.FLOOD_TIME:
        #oh....... user trying to flood us Stop him
        d2 = {
            "is_valid":
            "flood",
            "errormessage":
            "You have posted message too recently. Please wait a while before trying again."
        }
        if request.FILES:
            json = "<textarea>" + simplejson.dumps(d2) + "</textarea>"
        else:
            json = simplejson.dumps(d2)
        return HttpResponse(json, content_type=json_mimetype)

    reply = freply.save(commit=False)
    #only if there is any file
    if len(request.FILES.keys()) == 1:
        if (request.FILES['file'].content_type.find("image") >= 0):
            reply.attachment_type = "image"
        else:
            reply.attachment_type = "text"

        reply.filename = request.FILES['file'].name

    reply.posted_by = request.user
    mlogger.debug("toipcid= %s" % request.POST['topicid'])
    reply.topic = Ftopics.objects.get(pk=request.POST['topicid'])
    #Assigning user rank
    mlogger.debug("Assigning an user rank, and last posted datetime")
    assignUserElements(request.user)
    reply.save()
    payload = {'reply': reply}
    mlogger.debug("what is the replymesage = %s" % reply.message)
    response_html = render_to_string('dinette/replydetail_frag.html', payload,
                                     RequestContext(request))
    mlogger.debug("what is the response = %s " % response_html)

    d2 = {"is_valid": "true", "response_html": response_html}

    if request.FILES:
        #this the required for ajax file uploads
        json = "<textarea>" + simplejson.dumps(d2) + "</textarea>"
    else:
        json = simplejson.dumps(d2)

    return HttpResponse(json, content_type=json_mimetype)