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')
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'), })
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)
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')