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