Example #1
0
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
Example #2
0
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