Beispiel #1
0
def index(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'Administrative Interface'}

		# Getting recent send_events. Limit to 25 max.
		page_vars['send_events'] = Send_Event.objects.all().order_by('-send_date')[:25]
		page_vars['send_event_count'] = Send_Event.objects.count()

		# Getting recent users. Limit to 25 max.
		page_vars['users'] = User.objects.all().order_by('-last_login')[:25]
		page_vars['user_count'] = User.objects.count()

		# Getting recent 'read' events. Limit to 25 max.
		page_vars['events'] = Event.objects.all().order_by('-created_date')[:25]
		page_vars['event_count'] = Event.objects.count()

		# Getting recent messages. Limit to 25 max.
		page_vars['user_messages'] = Message.objects.all().order_by('-created_date')[:25]
		page_vars['user_message_count'] = Message.objects.count()

		# Getting recent campaigns. Limit to 25 max.
		page_vars['campaigns'] = Campaign.objects.all().order_by('-created_date')[:25]
		page_vars['campaign_count'] = Campaign.objects.count()

		return render(request, 'administrative/index.html', page_vars)

	else:
		raise Http404
Beispiel #2
0
def add_user(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'Add User'}

		# User is requesting form, build it!
		if request.method == "GET":

			# Build form object.
			page_vars['form'] = AdminCreateUserForm()

			# Generating CSRF Context.
			csrfContext = RequestContext(request, page_vars)

			# Render page for user.
			return render(request, 'administrative/add_user.html', csrfContext)

		# User is submitting form, process it!
		elif request.method == "POST":

			# Build form object from post data.
			completed_form = AdminCreateUserForm(request.POST)

			# If form validates correctly, save.
			if completed_form.is_valid():

				# Saving new user to database.
				new_user = completed_form.save(commit=False)
				new_user.save()

				# We want to create a new Profile for the user too!
				new_profile = Profile(user=new_user, time_zone='UTC')
				new_profile.save()

				# Generate message for user.
				messages.add_message(request, messages.SUCCESS, 'Success: New User Added')

				# Redirect back to admin page.
				return HttpResponseRedirect('/admin')

			# Form is NOT valid.
			else:

				# Form is not valid, re-render the page with the form.
				generate_form_errors(request, completed_form)
				page_vars['form'] = completed_form

				# Generate CSRF Context.
				csrfContext = RequestContext(request, page_vars)

				# Render page for user.
				return render(request, 'administrative/add_user.html', csrfContext)

	else:
		raise Http404
Beispiel #3
0
def add_template(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {'page_title': 'Add Template'}

		# User is requesting for a new form
		if request.method == "GET":

			# Creating form instance
			page_vars['form'] = AdminTemplateForm()

			# CSRF context
			csrfContext = RequestContext(request, page_vars)

			# Render page for user
			return render(request, 'administrative/add_template.html', csrfContext)

		# User is uploading new template, process it!
		elif request.method == "POST":

			# Create form instance from post data
			completed_form = AdminTemplateForm(request.POST)

			# Check to see if form is valid
			if completed_form.is_valid():

				# Save it!
				completed_form.save()

				# Generate Message for user
				messages.add_message(request, messages.SUCCESS, 'Success: New Template Added')

				# Redirect
				return HttpResponseRedirect('/admin/all_templates')

			# Form is not valid!
			else:
				
				# Generate form errors.
				generate_form_errors(request, completed_form)

				# Resend form.
				page_vars['form'] = completed_form

				# CSRF context
				csrfContext = RequestContext(request, page_vars)

				# Render Page
				return render(request, 'administrative/add_template.html', csrfContext)

	else:
		raise Http404
Beispiel #4
0
def show_messages(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'All Messages'}

		page_vars['user_messages'] = Message.objects.all().order_by('-created_date')

		return render(request, 'administrative/messages.html', page_vars)

	else:
		raise Http404
Beispiel #5
0
def show_users(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'All Users'}

		page_vars['users'] = User.objects.all().order_by('-last_login')

		return render(request, 'administrative/users.html', page_vars)

	else:
		raise Http404
Beispiel #6
0
def send_events(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'All Send Events'}

		page_vars['send_events'] = Send_Event.objects.all().order_by('-send_date')

		return render(request, 'administrative/send_events.html', page_vars)

	else:
		raise Http404
Beispiel #7
0
def edit_campaign(request, param_campaign_pk):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'Alter Campaign'}

		# Get Campaign object from database.
		try:
			requested_campaign = Campaign.objects.get(pk=param_campaign_pk)
		except Campaign.DoesNotExist:
			raise Http404

		# User is requesting the form, build it!
		if request.method == "GET":

			# Build form with requested campaign.
			page_vars['form'] = AdminCampaignForm(instance=requested_campaign)
			page_vars['requested_campaign'] = requested_campaign

			# Build CSRF context.
			csrfContext = RequestContext(request, page_vars)

			# Render page.
			return render(request, 'administrative/edit_campaign.html', csrfContext)

		# User is submitting the form, update it!
		elif request.method == "POST":

			# Build campaignform object from post data.
			completed_form = AdminCampaignForm(request.POST, instance=requested_campaign)

			# Save campaign if it's valid.
			if completed_form.is_valid():

				# Commit changes to database.
				completed_form.save()

				# Generate message for user.
				messages.add_message(request, messages.SUCCESS, 'Success: Changes Applied to Campaign')

				# Redirect back to edit page.
				return HttpResponseRedirect("/admin/edit_campaign/{0}".format(requested_campaign.pk))

			# Form is not valid!
			else:
				raise Http404

	else:
		raise Http404
Beispiel #8
0
def show_campaigns(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'All Campaigns'}

		# Getting all Campaigns from the database.
		page_vars['campaigns'] = Campaign.objects.all().order_by('-created_date')

		# Render html template for user.
		return render(request, 'administrative/campaigns.html', page_vars)

	else:
		raise Http404
Beispiel #9
0
def show_templates(request):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {}
		
		# Get all templates from database, populate list
		templates = Template.objects.all()

		page_vars['page_title'] = 'View All Templates'
		page_vars['templates'] = templates

		# Render page for user
		return render(request, 'administrative/templates.html', page_vars)

	else:
		raise Http404
Beispiel #10
0
def edit_user(request, param_user_pk):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'Alter User'}

		# Getting Requested User object from database.
		try:
			requested_user = User.objects.get(pk=param_user_pk)
		except User.DoesNotExist:
			raise Http404

		# User is requesting the form, build it!
		if request.method == "GET":

			# Get profile object from database.
			try:
				user_profile = Profile.objects.get(user=requested_user)
			except Profile.DoesNotExist:
				raise Http404

			# Build initial values for form.
			init_values = {'time_zone': user_profile.time_zone, 'email': requested_user.email}

			# Create Form object with initial values.
			page_vars['form'] = UserProfileForm(initial=init_values)

			# Getting requested_user so we can create the post link via pk.
			page_vars['requested_user'] = requested_user

			# Generating the CSRF context.
			csrfContext = RequestContext(request, page_vars)

			# Render page with form.
			return render(request, 'administrative/edit_user.html', csrfContext)

		# Okay so the user is submitting changes, apply them!
		elif request.method == "POST":

			# Build form obj from POST data.
			completed_form = UserProfileForm(request.POST)

			if completed_form.is_valid():

				# We need to get the profile obj out of the db.
				try:
					user_profile = Profile.objects.get(user=requested_user)
				except Profile.DoesNotExist:
					raise Http404

				# Update User and Profile objs in db with validated form-data.
				user_profile.time_zone = completed_form.cleaned_data['time_zone']
				requested_user.email = completed_form.cleaned_data['email']

				# Only update the password if it's not empty.
				if completed_form.cleaned_data['password'] != '':
					requested_user.set_password(completed_form.cleaned_data['password'])

				# Save the changes to the database.
				user_profile.save()
				requested_user.save()

				# Generate message for the user
				messages.add_message(request, messages.SUCCESS, 'Success: Changes Applied to User')

				# Redirect back to user-edit page.
				return HttpResponseRedirect('/admin/edit_user/{0}'.format(requested_user.pk))

			# Form data is NOT valid. Generate messages.
			else:

				# Generate error messages from form
				generate_form_errors(request, completed_form)

				# Update page_vars
				page_vars['form'] = completed_form

				# Generate CSRF Context.
				csrfContext = RequestContext(request, page_vars)

				# Render page with errors, old form.
				return render(request, 'administrative/edit_user.html', csrfContext)

	else:
		raise Http404
Beispiel #11
0
def edit_template(request, param_template_pk):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": "Edit Template"}

		# Get the desired template out of DB
		try:
			template = Template.objects.get(pk=param_template_pk)
		except Template.DoesNotExist:
			raise Http404

		# Okay, we have the template now.
		# Method is GET, load form object.
		if request.method == "GET":

			# Check for 'delete' action
			action = request.GET.get('action')

			# If action == 'delete' delete template from system
			if action == 'delete':

				# Generate message for user.
				messages.add_message(request, messages.SUCCESS, 'Success: Template Deleted')

				# Delete template from db.
				template.delete()

				# Redirect
				return HttpResponseRedirect('/admin/all_templates')

			# We can assume that the delete action was not called now

			page_vars['form'] = AdminTemplateForm(instance=template)
			page_vars['template'] = template

			# Generating CSRF context.
			csrfContext = RequestContext(request, page_vars)

			# Render page w/ form for user.
			return render(request, 'administrative/edit_template.html', csrfContext)

		# User is posting the form, update the template obj.
		elif request.method == "POST":

			# Build templateform obj.
			completed_form = AdminTemplateForm(request.POST, instance=template)

			# Save template if valid
			if completed_form.is_valid():

				# Save it to DB
				completed_form.save()

				# Generate message for user
				messages.add_message(request, messages.SUCCESS, 'Success: Changes Applied to Template')

				# Redirect back to edit page
				return HttpResponseRedirect('/admin/edit_template/{0}'.format(template.pk))

			# Form is not valid
			else:

				# Generate form errors.
				generate_form_errors(request, completed_form)

				# Resend form.
				page_vars['form'] = completed_form
				page_vars['template'] = template

				# CSRF context
				csrfContext = RequestContext(request, page_vars)

				# Render Page
				return render(request, 'administrative/edit_template.html', csrfContext)
	else:
		raise Http404
Beispiel #12
0
def edit_message(request, param_message_pk):

	# If current user is authenticated and it staff.
	if current_staff(request):

		page_vars = {"page_title": 'Alter Message'}

		# Get Message object from database.
		try:
			requested_message = Message.objects.get(pk=param_message_pk)
		except Message.DoesNotExist:
			raise Http404

		# Check to see if the user wants to delete the message.
		action = request.GET.get('action')

		if (action is not None) and (action == 'delete'):

			# Delete the message.
			requested_message.delete()

			# Add message to user.
			messages.add_message(request, messages.SUCCESS, 'Success: Deleted Message')

			# Redirect.
			return HttpResponseRedirect('/admin')

		# User is requesting the form, build it!
		if request.method == "GET":
			
			# Build form with requested message.
			page_vars['form'] = AdminMessageForm(instance=requested_message)
			page_vars['requested_message'] = requested_message

			# Build CSRF context.
			csrfContext = RequestContext(request, page_vars)

			# Render page.
			return render(request, 'administrative/edit_message.html', csrfContext)

		# User is submitting the form, apply it!
		elif request.method == "POST":

			# Build messageform object from post data.
			completed_form = AdminMessageForm(request.POST, instance=requested_message)

			# Save message if it passes validation.
			if completed_form.is_valid():

				# Commit to database.
				completed_form.save()

				# Generate message for user.
				messages.add_message(request, messages.SUCCESS, 'Success: Changes Applied to Message')

				# Redirect user back to edit page.
				return HttpResponseRedirect('/admin/edit_message/{0}'.format(requested_message.pk))

			else:
				raise Http404

	else:
		raise Http404