Example #1
0
def add_blogs_options(request, blog_id=None):
	"""Allows the user to specify options for adding child blogs to a blog."""

	# If the blog cannot support child blogs, raise a 404
	blog = get_object_or_404(Blog, pk=blog_id)
	if not blog.version.is_multi:
		raise Http404

	# If valid options were provided, begin adding the child blogs
	if request.POST:
		add_form = BlogAdditionForm(request.POST)
		if add_form.is_valid():
			store_action(request, AddBlogsAction(blog,
				users=add_form.cleaned_data['users'],
				blog_type=add_form.cleaned_data['blog_type']))
			return HttpResponseRedirect(reverse("pressgang:add-blogs", kwargs={'blog_id': blog.pk}))
	else:
		add_form = BlogAdditionForm()

	page = Page(request)
	page.add_render_args({
		'blog': blog,
		'add_form': add_form
	})
	return page.render('pressgang/addblogs/options.html')
Example #2
0
def create_action(request, blog_id=None, lock=None):
	"""Creates the appropriate type of lockdown action for the user."""

	# Prevent an ambiguous or redundant lockdown
	if lock is None:
		raise Http404
	blog = get_object_or_404(Blog, pk=blog_id)
	if LockdownStatus.objects.is_blog_locked(blog) == lock:
		raise Http404

	# Create the proper type of lockdown action and go to the execution page
	store_action(request, LockdownAction(blog, lock=lock))
	lock_view = 'pressgang:lock-blog' if lock else 'pressgang:unlock-blog'
	return HttpResponseRedirect(reverse(lock_view, kwargs={'blog_id': blog_id}))
Example #3
0
def install_options(request):
	"""Allows the user to provide options for installing a new blog."""

	if request.POST:
		install_form = InstallBlogForm(request.POST)
		if install_form.is_valid():
			store_action(request, install_form.create_installer())
			return HttpResponseRedirect(reverse('pressgang:install-blog', kwargs={'slug': install_form.cleaned_data['slug']}))
	else:
		install_form = InstallBlogForm()

	page = Page(request)
	page.add_render_args({
		'install_form': install_form
	})
	return page.render('pressgang/install/options.html')
Example #4
0
def reversion_options(request, blog_id=None):
	"""Allows the user to select which blog version to revert to."""

	# If the blog has no version snapshots, raise a 404
	blog = get_object_or_404(Blog, pk=blog_id)
	if not blog.has_version_snapshots:
		raise Http404

	# If a valid version was selected, begin the reversion process
	if request.POST:
		revert_form = ReversionForm(blog, request.POST)
		if revert_form.is_valid():
			store_action(request, RevertAction(blog, snapshot=revert_form.cleaned_data['snapshot']))
			return HttpResponseRedirect(reverse("pressgang:revert-blog", kwargs={'blog_id': blog.pk}))
	else:
		revert_form = ReversionForm(blog)

	page = Page(request)
	page.add_render_args({
		'blog': blog,
		'revert_form': revert_form
	})
	return page.render('pressgang/revert/options.html')