def user_campaign_message_new(request, param_username, param_campaign_pk): if current_user(request) and request.user.username == param_username: try: campaign = Campaign.objects.get(pk = param_campaign_pk) except Campaign.DoesNotExist: raise Http404 if campaign.user == request.user: page_vars = {"page_title": "New Message"} page_vars['campaign'] = campaign if request.method == "POST": completed_form = MessageForm(request.POST) if completed_form.is_valid(): message = completed_form.save(commit=False) message.campaign_id = param_campaign_pk message.save() messages.add_message(request, messages.SUCCESS, 'Successfully Created Message') return HttpResponseRedirect('/'+ request.user.username + "/campaign-" + str(message.campaign.id) + "/messages") else: generate_form_errors(request, completed_form) page_vars['form'] = completed_form return render(request, 'message/new.html', page_vars) else: # Process GET DATA... page_vars['form'] = MessageForm() csrfContext = RequestContext(request, page_vars) return render(request, 'message/new.html', csrfContext) else: raise Http404
def user_campaign_message(request, param_username, param_campaign_pk, param_message_pk): page_vars = {"page_title": 'Campaign Message'} if current_user(request) and request.user.username == param_username: try: message = Message.objects.get(campaign__pk = param_campaign_pk, campaign__user__username = request.user.username, pk = param_message_pk) except Message.DoesNotExist: raise Http404 action = request.GET.get('action') # Check to see if the campaign is disabled. if message.campaign.active == False: # Campaign is locked, generate message for user, return. messages.add_message(request, messages.SUCCESS, 'Campaign disabled by MailPrime Administrator') page_vars['templates'] = Template.objects.all() page_vars['sample_link'] = "/api/{0}/c-{1}/m-{2}/sample_message.html".format( request.user.username, message.campaign.pk, message.pk) page_vars['message'] = message page_vars['form'] = MessageForm(instance=message) page_vars['campaign'] = message.campaign page_vars['slick_present'] = True csrfContext = RequestContext(request, page_vars) return render(request, 'message/show.html', csrfContext) # Deploy message if deploy GET param is set if (action is not None) and (action == 'deploy'): if message.deployed == False: os.system('python /var/www/mailprime/manage.py deploy_messages ' + str(message.pk) + '&') messages.add_message(request, messages.SUCCESS, 'SUCCESS: Your Message Has Been Deployed') else: messages.add_message(request, messages.SUCCESS, 'ERROR: Message Has Already Been Deployed') return HttpResponseRedirect('/' + request.user.username + '/campaign-' + str(message.campaign.pk) + '/messages') elif (action is not None) and (action == 'delete'): # Storing the campaign in a var so we can delete the message. campaign_pk = message.campaign.pk # Add message for user. messages.add_message(request, messages.SUCCESS, 'SUCCESS: Deleted Message') # Delete the message from the database. message.delete() # Redirect back to the campaign homepage. return HttpResponseRedirect('/{0}/campaign-{1}'.format(request.user.username, campaign_pk)) # Else, GET param not set, render regular page else: # Request method is GET, generate new form if request.method == "GET": page_vars['templates'] = Template.objects.all() page_vars['sample_link'] = "/api/{0}/c-{1}/m-{2}/sample_message.html".format( request.user.username, message.campaign.pk, message.pk) page_vars['message'] = message page_vars['form'] = MessageForm(instance=message) page_vars['campaign'] = message.campaign page_vars['slick_present'] = True csrfContext = RequestContext(request, page_vars) return render(request, 'message/show.html', csrfContext) # Request method is POST, process form data to model elif request.method == "POST": # Creating Message instance from modelform completed_form = MessageForm(request.POST, instance=message) # Running validation w/ clean(), if valid if completed_form.is_valid(): new_message = completed_form.save(commit=False) if new_message.can_update(): new_message.save() messages.add_message(request, messages.SUCCESS, 'Successfully Updated Message') return HttpResponseRedirect('/{0}/campaign-{1}/message-{2}'.format(request.user.username, message.campaign.pk, message.pk)) else: messages.add_message(request, messages.SUCCESS, 'ERROR: Message has already been deployed') return HttpResponseRedirect('/{0}/campaign-{1}/message-{2}'.format(request.user.username, message.campaign.pk, message.pk)) # Validation errors occurred, regenerate form with vars else: generate_form_errors(request, completed_form) page_vars['form'] = completed_form page_vars['campaign'] = message.campaign page_vars['message'] = message page_vars['templates'] = Template.objects.all() page_vars['slick_present'] = True page_vars['sample_link'] = "/api/{0}/c-{1}/m-{2}/sample_message.html".format( request.user.username, message.campaign.pk, message.pk) csrfContext = RequestContext(request, page_vars) return render(request, 'message/show.html', csrfContext) else: raise Http404