コード例 #1
0
ファイル: views.py プロジェクト: qwer9900/forum
def comment(request):
    if request.method == "POST":
        article_id = int(request.POST.get("article_id"))
        article = Article.objects.get(id=article_id)
        content = request.POST.get("comment")
        current_no = request.POST.get("current_no")
        to_comment_id = int(request.POST.get("to_comment_id", 0))
        c = Comment(article=article, content=content, status=0)
        c.owner = request.user
        if to_comment_id != 0:
            to_comment = Comment.objects.get(id=to_comment_id)
        else:
            to_comment = None
        c.to_comment = to_comment
        c.save()
        if c.to_comment:
            msg = Message(owner=c.to_comment.owner, status=-1)
            msg.content = "{}回复了你的评论:{}".format(c.owner, c.to_comment.content)
            msg.link = "{}?page_no={}".format(c.article.id, current_no)
        else:
            msg = Message(owner=c.article.owner, status=-1)
            msg.content = "{}回复了你的文章;{}".format(c.owner, c.article.title)
            msg.link = "{}?page_no={}".format(c.article.id, current_no)
        msg.save()
        if Comment.objects.filter(id=c.id):
            a = {"status": "ok"}
            return json_response(a)
        else:
            a = "err"
            return json_response(a)
コード例 #2
0
def create_client_message(request, *args, **kwargs):
    if request.method == 'POST':
        campaign_id = request.POST.get('campaign_id')
        campaign = Campaign.objects.get(pk=campaign_id)
        content = request.POST.get('content')
        type = request.POST.get('type')

        message = Message()
        if type == 'CA':
            message.sent_by = campaign.client
            message.sent_to = campaign.agent
        else:
            message.sent_by = campaign.agent
            message.sent_to = campaign.client

        message.campaign = campaign
        message.content = content
        message.save()

        return render(
            request, 'messages/client_message_body.html', {
                'channel_messages':
                Message.objects.filter(
                    campaign__id=campaign_id).order_by('sent_at'),
                'description':
                campaign
            })
コード例 #3
0
def media_create(request, *args, **kwargs):
    if request.method == 'POST':
        contract_id = kwargs.get('pk')
        contract = Contract.objects.get(pk=contract_id)

        message = Message()
        message.sent_by = contract.discussion.influencer.user
        message.sent_to = contract.discussion.campaign.agent
        message.discussion = contract.discussion
        message.content = "I have uploaded post media. Please take a look at <a href='/campaigns/contracts/" + str(
            contract.id
        ) + "?post_actived=0d(this)'>here</a> and let me know your thought."
        message.save()

        res_dialog = asyncio.run(
            get_dialogs(request.session['chat_session_token'],
                        contract.discussion_id))
        asyncio.run(
            send_message(request.session['chat_session_token'],
                         res_dialog['_id'], message.content))

        media = Media()
        media.title = request.POST.get('media_title')
        media.media = request.FILES['media_file']
        media.file_name = request.FILES['media_file'].name
        media.upload_by = Influencer.objects.get(user=request.user)
        media.contract = contract
        media.save()

        return redirect('/campaigns/contracts/' + str(contract_id) +
                        '?post_actived=0')
コード例 #4
0
ファイル: views.py プロジェクト: jerry-sjtu/weishuku
def borrow_book(request):
    if request.method == "POST" and "bookid" in request.POST:
        borrower = request.user.id
        book = Book.objects.filter(id=request.POST["bookid"])[0]
        ownerid = book.ownerid

        msg = Message()
        msg.originid = borrower
        msg.targetid = ownerid
        msg.status = 0
        msg.createdate = datetime.datetime.now()
        msg.content = request.POST["message"]
        msg.handler = "/book/apply/"
        msg.save()

        rel = Borrowrel()
        rel.bookid = book.id
        rel.owner = ownerid
        rel.borrower = borrower
        rel.createdate = datetime.datetime.now()
        rel.updatedate = datetime.datetime.now()
        rel.status = 0
        rel.messageid = msg.id
        rel.save()
        return redirect("/book/borrowed/")
コード例 #5
0
def create_message(request, *args, **kwargs):
    if request.method == 'POST':
        discussion_id = request.POST.get('discussion_id')
        if request.POST.get('dialog_id'):
            dialog_id = request.POST.get('dialog_id')
        discussion = Discussion.objects.get(pk=discussion_id)
        content = request.POST.get('content')
        type = request.POST.get('type')

        if type == 'CO':
            budget = request.POST.get('budget')
            contract = Contract()
            contract.contract_title = request.POST.get('title')
            contract.contract_terms = request.POST.get('terms')
            contract.contract_status = 'OF'
            contract.contract_budget = budget
            contract.discussion = discussion
            contract.save()
            content = content + "<br/>You can accept or decline this offer <a href='#' onclick='contract_agree(this)' data-id='" + str(
                contract.id) + "'>here</a>!"

        # QB chat send message from agent to influencer
        # asyncio.run(send_message(
        #     request.session['chat_session_token'],
        #     dialog_id,
        #     content
        # ))

        message = Message()
        if type == 'IA':
            message.sent_by = discussion.influencer.user
            message.sent_to = discussion.campaign.agent
        if type == 'AI' or type == 'CO':
            message.sent_by = discussion.campaign.agent
            message.sent_to = discussion.influencer.user

        message.discussion = discussion
        message.content = content
        message.save()

        if dialog_id:
            return HttpResponse(contract.id)
        else:
            return render(
                request, 'messages/message_body.html', {
                    'channel_messages':
                    Message.objects.filter(
                        discussion__id=discussion_id).order_by('sent_at'),
                })
コード例 #6
0
ファイル: models.py プロジェクト: yindashan/nuri
def host_auto_find():
    # 通过硬件检查结果得到
    key_list = settings.REDIS_DB.keys("GD*_hc")
    host_list = [ key.split('_')[0] for key in key_list ]
    new_host_set = set(host_list)
    
    host_list = settings.REDIS_DB.get("all_host_list")
    if host_list is None:
        host_list = []
    else:
        host_list = host_list.split(',')
    old_host_set = set(host_list)
    
    margin_set = new_host_set - old_host_set
    
    app = AppService.objects.get(app_name='HOST_STATUS')
    
    if margin_set:
        add_ip  = get_ip(margin_set)
        msg = Message()
        msg.create_time = datetime.now()
        msg.occur_time =  datetime.now()
        msg.content = "发现新主机, 主机ID:%s, 对应IP:%s" % (','.join(margin_set), ','.join(add_ip))
        msg.save()
        
        ip_list = []
        if  app.ip_list:
            ip_list  = app.ip_list.split(',')
        ip_list.extend(add_ip)
        app.ip_list = ','.join(filterIP(ip_list))
        
        host_list = []
        if app.host_list:
            host_list = app.host_list.split(',')
        app.host_list = ','.join( set(host_list) | margin_set )
        
        app.save()
        
        # 根据监控项变化情况,同步监控点
        sync_monitor_point(app)
        
        # 同步应用配置
        sync_app_info(app)
        
        # 变更redis    
        settings.REDIS_DB.set("all_host_list", ','.join(new_host_set))
コード例 #7
0
def contract_offer_agreement(request, *args, **kwargs):
    if request.method == 'POST':
        contract_id = kwargs.get('pk')
        contract = Contract.objects.get(pk=contract_id)
        agreement = request.POST.get('agreement')
        comment = request.POST.get('comment')

        message = Message()
        message.sent_by = contract.discussion.influencer.user
        message.sent_to = contract.discussion.campaign.agent
        message.discussion = contract.discussion

        content = ''
        contract_status = 'AC'
        if (agreement == 0):
            content = "The contract <span class='font-weight-bold'>" + contract.contract_title + "</span> has been declined.<br/>" + comment
            contract_status = 'DE'
        else:
            content = "<span class='text-success'>Congratulations!</span><br/>The contract <span class='font-weight-bold'>" + contract.contract_title + "</span> has been accepted.<br/>" + comment
        message.content = content
        message.save()

        contract.contract_status = contract_status
        contract.save()

        if request.POST.get('message_id'):
            message_id = request.POST.get('message_id')
            offer_message = Message.objects.get(pk=message_id)
            offer_message.content = offer_message.content.replace(
                "contract_agree(this)", "")
            offer_message.save()
            return render(
                request, 'messages/message_body.html', {
                    'channel_messages':
                    Message.objects.filter(
                        discussion=contract.discussion).order_by('sent_at'),
                })
        else:
            return HttpResponse(content)
コード例 #8
0
def media_agreement(request, *args, **kwargs):
    if request.method == 'GET':
        media_id = kwargs.get('pk')
        media = Media.objects.get(pk=media_id)
        agreement = request.GET.get('accepted')
        content = ''
        if agreement == 'true':
            media.status = 'AC'
            content = "Your post <span class='font-weight-bold'>" + media.title + "</span> has been accepted. Please post and let me know the post url."
        else:
            media.status = 'DE'
            content = "Your post <span class='font-weight-bold'>" + media.title + "</span> has been declined."
        media.save()

        if agreement == 'true':
            post = Post()
            post.media = media
            post.campaign = media.contract.discussion.campaign
            post.influencer = media.contract.discussion.influencer
            post.save()

        message = Message()
        message.sent_by = media.contract.discussion.campaign.agent
        message.sent_to = media.contract.discussion.influencer.user
        message.discussion = media.contract.discussion
        message.content = content
        message.save()

        res_dialog = asyncio.run(
            get_dialogs(request.session['chat_session_token'],
                        media.contract.discussion_id))
        asyncio.run(
            send_message(request.session['chat_session_token'],
                         res_dialog['_id'], message.content))

        return redirect('/campaigns/contracts/' + str(media.contract.id) +
                        '?post_actived=1')
コード例 #9
0
ファイル: views.py プロジェクト: qzhsjz/AICollege_backend
def addEvaluation(request):
    uid = request.session['uid']
    sid = request.POST['sid']  #篇id
    rid = request.POST.get('reply')

    try:
        user = User.objects.get(id=int(uid))
    except User.DoesNotExist:
        raise Http404("用户查找失败")
    try:
        section = Section.objects.get(id=int(sid))
    except Section.DoesNotExist:
        raise Http404("视频查找失败")
    if rid:
        try:
            reply = Discussion.objects.get(id=int(rid))
        except Discussion.DoesNotExist:
            raise Http404("不存在回复对象")

    d = Discussion(section=section,
                   publisher=user,
                   reply=reply if rid else None,
                   content=request.POST['content'])
    d.save()

    if rid:
        msg = Message(sender=user)
        msg.receiver = reply.publisher
        msg.subject = '用户' + user.username + '回复了你的消息:'
        msg.content = request.POST['content']
        msg.save()
    #pian1.length = pian1.length+1
    dict = {'Success': '添加成功'}
    return JsonResponse(dict,
                        safe=False,
                        json_dumps_params={'ensure_ascii': False})
コード例 #10
0
def borrow_book(request):
    if request.method == 'POST' and 'bookid' in request.POST:
        borrower = request.user.id
        book = Book.objects.filter(id=request.POST['bookid'])[0]
        ownerid = book.ownerid

        msg = Message()
        msg.originid = borrower
        msg.targetid = ownerid
        msg.status = 0
        msg.createdate = datetime.datetime.now()
        msg.content = request.POST['message']
        msg.handler = '/book/library/'
        msg.save()

        rel = Borrowrel()
        rel.bookid = book.id
        rel.owner = ownerid
        rel.borrower = borrower
        rel.createdate = datetime.datetime.now()
        rel.status = 0
        rel.messageid = msg.id
        rel.save()
        return redirect('/book/library/')
コード例 #11
0
ファイル: views.py プロジェクト: davideuler/weishuku
def borrow_book(request):
    if request.method == 'POST' and 'bookid' in request.POST:
        borrower = request.user.id
        book = Book.objects.filter(id=request.POST['bookid'])[0]
        ownerid = book.ownerid

        msg = Message()
        msg.originid = borrower
        msg.targetid = ownerid
        msg.status = 0
        msg.createdate = datetime.datetime.now()
        msg.content = request.POST['message'] 
        msg.handler = '/book/library/'
        msg.save()

        rel = Borrowrel()
        rel.bookid = book.id
        rel.owner = ownerid
        rel.borrower = borrower
        rel.createdate = datetime.datetime.now()
        rel.status = 0
        rel.messageid = msg.id
        rel.save()
        return redirect('/book/library/')